OSDN Git Service

* config/frv/frv.h (EPILOGUE_USES): New. Use LR.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 14c97c6..0f8b36e 100644 (file)
@@ -1,3 +1,427 @@
+2004-07-28  Richard Sandiford <rsandifo@redhat.com>
+
+       * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
+
+2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
+
+       * cse.c (validate_canon_reg): New function, split out from...
+       (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
+
+2004-07-28  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-alias.c (maybe_create_global_var): Don't just
+       return if .GLOBAL_VAR has been created.
+
+2004-07-28  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa.c (verify_flow_insensitive_alias_info): Process
+       every variable that may have aliases, not just tags.
+
+2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
+       move_from_CR_eq_bit.
+       Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
+       
+
+       * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
+       e500_flip_eq_bit.
+
+       * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
+       output_e500_flip_eq_bit.
+
+       * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
+       output_e500_flip_eq_bit.
+       (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
+       output_e500_flip_eq_bit.
+       Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
+       (print_operand): case D.  Get to EQ bit.
+
+2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
+
+       * gcov.c (function_summary): Add missing \n.
+
+2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       Introduce sh4a support.
+       * config.gcc: Handle sh4a multilibs and cpu selection.
+       * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
+       * config/sh/t-mlib-sh4a: New.
+       * config/sh/t-mlib-sh4al: New.
+       * config/sh/t-mlib-sh4a-nofpu: New.
+       * config/sh/t-mlib-sh4a-single: New.
+       * config/sh/t-mlib-sh4a-single-only: New.
+       2004-02-20  DJ Delorie  <dj@redhat.com>
+       * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
+       * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
+       2003-08-22  Eric Christopher  <echristo@redhat.com>
+       * config/sh/sh4a.md: Update for chip errata.
+       2003-08-07  Eric Christopher  <echristo@redhat.com>
+       * config/sh/sh4a.md: New file. sh4a processor description.
+       2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
+       of -m4a-nofpu.
+       (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
+       * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
+       * doc/invoke.texi (SH Options): Document -m4al.
+       2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (expand_block_move): Remove commented-out code
+       checked in by mistake.
+       (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
+       single elements from SFmode vectors.
+       * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
+       register.
+       (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
+       2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
+       sh_fsca_int2sf): Remove variable declarations.
+       * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
+       sh_fsca_int2sf): New functions.
+       (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
+       sh_fsca_int2sf_rtx): New static variables.
+       * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
+       sh_fsca_int2sf): Declare.
+       * config/sh/sh.md: Adjust.
+       * doc/invoke.texi (SH Options): Document new options.
+       * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
+       compatibility from SH4 code.
+       2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
+       early.
+       (memory_movsrc_operand): Renamed to...
+       (unaligned_load_operand): ... this.  Simplified.
+       * config/sh/sh.h (PREDICATE_CODES): Adjust.
+       * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
+       input operand to SImode, and adjust the others.  Introduce
+       post-increment by peephole.
+       * config/sh/sh.c (expand_block_move): Give the target address the
+       same mode as the temp reg.
+       * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
+       copying.
+       2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
+       Introduce support for SH4a.
+       * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
+       __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
+       * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
+       sh_fsca_int2sf): New.
+       (sh_init_builtins): Initialize them.
+       (print_operand): Support `d'.
+       (expand_block_move): Use movua if src is misaligned.
+       (memory_movsrc_operand): New.
+       * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
+       and one of the SH4 macros.
+       (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
+       SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
+       SELECT_SH4A_SINGLE): New.
+       (TARGET_NONE): Add SH4A_BIT.
+       (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
+       (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
+       (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
+       (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
+       (enum processor_type): Added PROCESSOR_SH4A.
+       (PREDICATE_CODES): Add memory_movsrc_operand.
+       * config/sh/sh.md: Removed unused variables.
+       (attr cpu): Add sh4a.
+       (attr type): Add movua, fsrra and fsca.
+       (prefetch): New, for SH4.
+       (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
+       (toggle_sz): Set type to fp.
+       (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
+       (movua, extv, extzv): New.
+       * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
+       and 4a-single-only.
+
+2004-07-28  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-optimize.c (init_tree_optimization_passes): Schedule
+       pass_may_alias right after the program is renamed into SSA.
+       * tree-pass.h (PROP_alias): Define.
+       * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
+       * tree-sra.c (pass_sra): Likewise.
+       * tree-ssa-ccp.c (pass_ccp): Likewise.
+       * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
+       * tree-ssa-dce.c (pass_dce): Likewise.
+       * tree-ssa-dom.c (pass_dominator): Likewise.
+       * tree-ssa-dse.c (pass_dse): Likewise.
+       * tree-ssa-forwprop.c (pass_forwprop): Likewise.
+       * tree-ssa-loop-ch.c (pass_ch): Likewise.
+       * tree-ssa-phiopt.c (pass_phiopt): Likewise.
+       * tree-ssa-pre.c (pass_pre): Likewise.
+       * tree-tailcall.c (pass_tail_recursion): Likewise.
+       * tree-ssa.c (pass_redundant_phi): Likewise.
+       * tree-ssa-alias.c (aliases_computed_p): Remove.
+       Update all users.
+       (init_alias_info): Do not mark all type tags for renaming
+       unconditionally.
+       Clear may_aliases from every symbol.
+       (setup_pointers_and_addressables): If a pointer has not been
+       dereferenced and it had a type tag, clear it and mark the old
+       tag for renaming.
+
+2004-07-28  Diego Novillo  <dnovillo@redhat.com>
+
+       PR tree-optimization/16705
+       * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
+       .GLOBAL_VAR.
+
+2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
+       check.
+
+       * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
+       don't make another one.
+
+       PR optimization/15077
+       * function.h (struct function): Add field saved_static_chain_decl.
+       Fix comment for static_chain_decl.
+       * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
+       * tree-inline.h (save_body): Add new arg.
+       * tree-optimize.c (tree_rest_of_compilation): Handle saving
+       static_chain_decl.
+
+2004-07-27  Richard Henderson  <rth@redhat.com>
+
+       * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
+       (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
+       is_gimple_addressable.
+       * tree-gimple.c (is_gimple_addressable): Rename from
+       is_gimple_addr_expr_arg; accept INDIRECT_REF.
+       (is_gimple_lvalue): Don't test INDIRECT_REF directly.
+       * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
+       rename to is_gimple_addressable.
+
+2004-07-28  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
+
+2004-07-27  Richard Henderson  <rth@redhat.com>
+
+       * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
+       before rounding.
+
+2004-07-27  Zack Weinberg  <zack@codesourcery.com>
+
+       * libgcc2.c: Change all conditionals testing
+       LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
+       * libgcc2.h: Likewise.
+       * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
+       TYPE_PRECISION of float80_type to 80.
+       * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
+       of fpreg_type and float80_type to 80.
+       * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
+       * config/m68k/netbsd-elf.h:
+       Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+       to evaluate to 80 whenever they would formerly have evaluated to 96.
+       * config/i386/sco5.h: Remove unnecessary redefinition of
+       LONG_DOUBLE_TYPE_SIZE.
+       * doc/rtl.texi: Clarify uses of XFmode and TFmode.
+       * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
+       XFmode, with a bitsize of 80.  Update commentary.
+       * config/ia64/ia64-modes.def: Likewise.
+       * config/m68k/m68k-modes.def: Likewise.
+
+2004-07-27  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgexpand.c (tree_expand_cfg): Fix comment.
+
+       * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
+       * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
+       Remove.
+       (prepare_function_start): Don't set rtx_equal_function_value_matters.
+       * integrate.c (copy_rtx_and_substitute): Don't test for it.
+       * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
+       Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
+       here again.  Update leading comment.
+       * rtl.c (rtx_equal_function_value_matters): Remove.
+       (rtx_equal_p): Don't test for it.
+       * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
+       Likewise.
+
+       * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
+       * rtl.c (note_insn_name): Likewise.
+       * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
+       * final.c (final_scan_insn): Likewise.
+
+       * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
+       * passes.c (rest_of_handle_eh): Do it here.
+
+       * stmt.c (struct nesting): Remove struct nesting block member.
+       (struct stmt_status): Remove x_block_start_count field.
+       (current_block_start_count): Remove.
+
+2004-07-27  Brian Booth  <bbooth@redhat.com>
+
+       * tree-optimize.c (register_one_dump_file): Update condition that uses
+       static_pass_number.
+       (dup_pass_1): Replace with...
+       (next_pass_1): This.
+       (NEXT_PASS): Call next_pass_1.
+       (DUP_PASS): Remove.
+       (init_tree_optimization_passes): Remove uses of DUP_PASS.
+       (execute_one_pass): Update condition that uses
+       static_pass_number.
+       * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
+       integer.
+
+2004-07-27  Nick Clifton  <nickc@redhat.com>
+
+       * config/m32r/m32r.c: Include integrate.h in order to get the
+       prototype for get_hard_reg_initial_val().
+
+       * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
+       and tidy up indentation.
+       (final_presence_set): Use absence_set instead, so that if there is
+       nothing in the "o" pipe the "s" pipe can be scheduled.
+
+2004-07-27  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-alias.c (create_name_tags): Ignore pointers that
+       don't have PT_VARS nor PT_MALLOC set.
+       Clear name tag from pointers that have not been dereferenced.
+       (set_pt_anything, set_pt_malloc): Forward declare.
+       * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
+       not type compatibility when determining if a pointer can be
+       copy propagated.
+
+2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
+
+       * expr.h (canonicalize_condition, get_condition): Add an int argument.
+       * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
+       it to check whether the condition is still valid at the jump insn.
+       * ifcvt.c (noce_get_condition): Likewise.
+       (noce_get_alt_condition): Update call to canonicalize_condition.
+       * loop-iv.c (simplify_using_initial_values): Update call to
+       get_condition.  Remove FIXME.
+       (check_simple_exit): Update call to get_condition.
+       * loop-unswitch.c (may_unswitch_on): Likewise.
+       * loop.c (check_dbra_loop): Likewise.
+       (canonicalize_condition, get_condition): Add an argument to say whether
+       the condition must still be valid at INSN.
+       (get_condition_for_loop): Update call to get_condition.  Require that
+       the condition be valid at INSN.
+       * predict.c (estimate_probability): Update call to get_condition.
+       Remove unused earliest parameter.
+       (expected_value_to_br_prob): Update call to canonicalize_condition.
+
+2004-07-26  Eric Christopher  <echristo@redhat.com>
+
+       * tree-dfa.c (add_referenced_var): Register initializers of global
+       variables.
+
+2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/i386/i386.c (function_arg): Always treat 8-
+       and 16-byte wide vectors the same, even if MMX/SSE
+       are disabled.
+       (contains_128bit_aligned_vector_p): Add comment.
+
+2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * ra.h (enum node_type): Rename to:
+       (enum ra_node_type).
+       * ra-colorize.c: Likewise.
+
+2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
+
+       * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
+       after simplifying the jump.
+
+2004-06-26  Richard Henderson  <rth@redhat.com>
+
+       * calls.c (combine_pending_stack_adjustment_and_call): Make
+       preferred_unit_stack_boundary argument unsigned.  Make
+       unadjusted_alignment unsigned.
+       (expand_call): Make preferred_stack_boundary and
+       preferred_unit_stack_boundary variables unsigned.
+       * function.c (assign_stack_local_1): Make alignment unsigned.
+       * function.h (struct function): Make stack_alignment_needed,
+       preferred_stack_boundary unsigned.
+       * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
+       (ix86_compute_frame_layout): Make stack_alignment_needed,
+       preferred_alignment variables unsigned.
+       * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
+
+2004-07-26  Tom Tromey  <tromey@redhat.com>
+
+       * tree.h: Fix typo in comment.
+
+2004-07-26  Daniel Jacobowitz  <dan@debian.org>
+
+       PR bootstrap/12804
+       * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
+       (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
+       (ggc_free): Remove incorrect freeing.
+       (sweep_pages): Advance PP for large pages.  Fix indentation.
+
+2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR rtl-optimization/16643
+       * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
+       * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
+       * basic-block.h (reorder_basic_blocks): Add a flags parameter.
+       * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
+       (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
+       * function.c (thread_prologue_and_epilogue_insns): Likewise.
+       * rtl.h (tracer): Add a flags parameter.
+       * tracer.c (tracer): Pass it to cfg_layout_initialise.
+       * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
+       (rest_of_handle_reorder_blocks): Update calls to tracer and
+       reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
+       (rest_of_handle_tracer): Pass 0 to tracer.
+       (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
+
+2004-07-25  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/16239
+       * config/rs6000/rs6000.md (movdi_internal64): Further disparage
+       f->f.
+
+2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
+       (BINFO_BASE_ACCESS): Adjust.
+       (BINFO_BASE_ACCESS_APPEND): New.
+       (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
+       * dbxout.c (dbxout_type): Adjust binfo access accessing.
+       * dwarf2out.c (gen_member_die): Likewise.
+       * tree-dump.c (deque_and_dump): Likewise.
+
+2004-07-26  Falk Hueffner  <falk@debian.org>
+
+       * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
+       costs.
+
+2004-07-25  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
+       value off of the stack if TARGET_USE_FFREEP.
+
+2004-07-26  Bernardo Innocenti  <bernie@develer.com>
+
+       * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
+       * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
+       * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
+       check on invocation of XRESIZEVEC ().
+
+2004-07-26  Bernardo Innocenti  <bernie@develer.com>
+
+       * c-common.c (disable_builtin_function): Rename variable n to
+       new_disabled_builtin.
+       * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
+       Rename local variable old to old_decl.
+       * gensupport.c (shift_output_template): Rename parameter old to src.
+       * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
+       old_rtx and newx to new_rtx.
+
+2004-07-26  Bernardo Innocenti  <bernie@develer.com>
+
+       * Makefile.in (C_PRAGMA_H): New variable to track dependencies
+       of c-pragma.h.
+       * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
+       enum cpp_ttype.
+       * c-lex.c: Likewise.
+
 2004-07-25  Roger Sayle  <roger@eyesopen.com>
 
        * fold-const.c (constant_boolean_node): Make extern.
 
 2004-07-23  Mike Stump  <mrs@apple.com>
 
-       * c-typeck.c (convert_for_assignment): Tightened up pointer converstions
-       that differ in signedness.
+       * c-typeck.c (convert_for_assignment): Tightened up pointer
+       converstions that differ in signedness.
 
 2004-07-23  Zack Weinberg  <zack@codesourcery.com>