+2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
+ (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
+ SUBREG and MEM, respectively.
+
+2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * fold-const.c (fold_binary): Avoid directly using the original
+ expression t as much as possible.
+
+2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-semantics.c (build_stmt): Use TYPE_P instead of
+ IS_NON_TYPE_CODE_CLASS.
+ * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
+ (NON_TYPE_CHECK): Use TYPE_P instead of
+ IS_NON_TYPE_CODE_CLASS.
+
+ * fold-const.c (fold): Remove handling of binary expressions.
+
+2005-03-05 James A. Morrison <phython@gcc.gnu.org>
+
+ * doc/c-tree.texi: Wrap comments in @r{}.
+ * doc/cpp.texi: Likewise.
+ * doc/cppinternals.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/objc.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/tree-ssa.texi
+
+2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
+
+ * predict.c (apply_return_prediction): Standardize PHI chain
+ walking.
+ * tree-ssa.c (ssa_redirect_edge): Likewise.
+
+ * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
+ gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
+ Update copyright.
+
+ * tree-phinodes.c (remove_phi_node): Drop the last argument.
+ * tree-flow.h: Adjust the prototype for remove_phi_node.
+ * lambda-code.c (perfect_nestify): Adjust a call to
+ remove_phi_node.
+ * tree-cfg.c
+ (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
+ * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
+ Likewise.
+ * tree-ssa-dce.c (remove_dead_phis): Likewise.
+ * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
+ * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
+ * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
+
+ * combine.c (simplify_and_const_int): Use gen_int_mode instead
+ of GEN_INT (trunc_int_for_mode (...)).
+ * loop-iv.c (iv_number_of_iterations): Likewise.
+ * postreload.c (reload_cse_move2add): Likewise.
+ * simplify-rtx.c (simplify_const_unary_operation,
+ simplify_const_binary_operation): Likewise.
+ * stor-layout.c (get_mode_bounds): Likewise.
+
+ * fold-const.c (fold_binary): New.
+ (fold): Call fold_binary on binary expressions.
+
+2005-03-05 Richard Sandiford <rsandifo@redhat.com>
+
+ * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
+ * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
+ (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
+ (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
+ (ASM_SPEC): Pass down -msym32 and -mno-sym32.
+
+2005-03-04 Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/18815
+ * tree-if-conv.c (combine_blocks): Adjust loop header edges for
+ loops with zero exit edges.
+
+2005-03-04 Devang Patel <dpatel@apple.com>
+
+ * doc/invoke.texi: Remove reference to webpage that does not exist.
+
+2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c++/19797
+ * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
+ (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
+ * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
+ * pa.c (get_plabel): Change argument to symbol_ref. Call
+ maybe_get_identifier instead of get_identifier.
+ (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
+ (struct deferred_plabel): Replace name field with symbol field.
+ (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
+ ASM_OUTPUT_EXTERNAL_REAL is defined.
+ (output_global_address): Use output_addr_const for output of all
+ symbol_refs.
+ (output_deferred_plabels): Use symbol_ref instead of name for address
+ output.
+ * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
+ ASM_OUTPUT_SYMBOL_REF): New macros.
+ * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
+ comment.
+ (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
+ label.
+
+2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
+ *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
+
+2005-03-04 Jeff Law <law@redhat.com>
+
+ * basic-block.h (rediscover_loops_after_threading): Declare.
+ * tree-ssa-dom.c: Include cfgloop.h.
+ (tree_ssa_dominator_optimize): Discover loops and some basic
+ properties. Remove forwarder blocks recreated by loop header
+ canonicalization. Also mark backedges in the CFG.
+ * tree-ssa-threadupdate.c: Include cfgloop.h
+ (rediscover_loops_after_threading): Define.
+ (struct local_info): New field, JUMP_THREADED.
+ (prune_undesirable_thread_requests): New function.
+ (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
+ then record that fact for the callers of redirct_edges.
+ (thread_block): If BB has incoming backedges, then call
+ prune_undesirable_thraed_requests. Note when we are
+ going to have to rediscover loop information. Return a
+ boolean indicating if any jumps were threaded.
+ (thread_through_all_blocks): Bubble up boolean indicating
+ if any jumps were threaded.
+ * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
+ (tree-ssa-threadupdate.o): Similarly.
+
+2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * fold-const.c (fold_ternary): Unroll the "for" loop to
+ extract operands.
+
+2005-03-04 Andrew Haley <aph@redhat.com>
+
+ * unwind-dw2-fde-glibc.c (struct
+ unw_eh_callback_data.check_cache): New field.
+ (frame_hdr_cache): New.
+ (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
+ Cache frame header info.
+
+2005-03-04 Richard Sandiford <rsandifo@redhat.com>
+
+ * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
+ (print_c_condition): Declare.
+ * read-rtl.c (ptr_loc): New structure.
+ (ptr_locs, ptr_loc_obstack, joined_conditions)
+ (joined_conditions_obstack): New variables.
+ (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
+ (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
+ (join_c_conditions, print_c_condition): New functions.
+ (apply_macro_to_string): Associate the new string with the same
+ source location as the old one.
+ (add_condition_to_string): Use join_c_conditions.
+ (read_string): Use set_rtx_ptr_loc to record a filename and line
+ number for the string.
+ (read_rtx): Initialize the new variables above.
+ * genattrtab.c (write_test_expr, write_attr_value): Use
+ print_c_condition.
+ * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
+ comment above the GCC_VERSION check.
+ (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
+ Inline the definition of MAYBE_EVAL.
+ * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
+ * genoutput.c (process_template): Likewise.
+ * genpreds.c (write_predicate_subfunction): Likewise.
+ (write_predicate_expr): Use print_c_condition.
+ * genrecog.c (write_cond): Likewise.
+ * gensupport.c (process_rtx): Use join_c_conditions to join the
+ conditions of a define_insn_and_split. Record a source location
+ for the string after the "&&".
+ (alter_test_for_insn): Use join_c_conditions.
+
+2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
+
+ Revert for now:
+ 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
+ PR tree-optimization/15784
+ * fold-const.c (fold): Fold ~A + 1 to -1. Fold -A - 1
+ and -1 - A to ~A.
+
+2005-03-04 Ben Elliston <bje@au.ibm.com>
+
+ * gcc.c (option_map): Add --coverage.
+ (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
+ (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
+ * config/darwin.h: Pass -lgcov for `coverage'.
+ * doc/invoke.texi (Debugging Options): Document --coverage.
+
+2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcse.c (bypass_block): Use find_edge wherever possible.
+
+2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
+
+ Fix PR debug/20253
+
+ * c-opts.c (c_common_parse_file): Call start_source_file
+ and end_source_file at the approriate times.
+
+ * dwarf2out.c (dwarf2out_finish): Don't auto-end
+ the main file, it will be done for us now.
+
+2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * fold-const.c (fold_ternary): New.
+ (fold): Call fold_ternary on ternary expressions. Remove
+ handling of ternary expressions.
+
+2005-03-03 James A. Morrison <phython@gcc.gnu.org>
+
+ PR tree-optimization/15784
+ * fold-const.c (fold): Fold ~A + 1 to -1. Fold -A - 1
+ and -1 - A to ~A.
+
+2005-03-03 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/predicates.md (branch_comparison_operator):
+ Convert from C block to conditional format.
+
+2005-03-03 Jan Hubicka <jh@suse.cz>
+
+ * tree-dfa.c (add_referenced_var): Don't walk initializer of external
+ and non-constant public variables.
+
+2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
+ with LABEL_EXPR.
+
+ * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
+ EDGE_I.
+
+ * tree-phinodes.c (remove_phi_node): Clean up by factoring out
+ calls to release_ssa_name and release_phi_node.
+
+ * fold-const.c (fold): Remove handling of unary expressions.
+
+ * fold-const.c (fold_unary): Avoid directly using the original
+ expression t as much as possible.
+
+2005-03-03 Roger Sayle <roger@eyesopen.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
+ RETURN rtx, and not a LABEL_REF containing a NULL pointer.
+
+2005-03-03 Hans-Peter Nilsson <hp@axis.com>
+
+ Describe special registers SRP and MOF as allocatable registers.
+ * config/cris/cris.c (cris_md_asm_clobbers): New function.
+ (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
+ (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
+ TARGET_HAS_MUL_INSNS.
+ (cris_print_operand) <case 'd'>: New case.
+ <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
+ * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
+ define.
+ (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
+ (REG_ALLOC_ORDER): Update for MOF.
+ (enum reg_class): New members MOF_REGS, GENERAL_REGS and
+ SPECIAL_REGS.
+ (GENERAL_REGS): No longer a define of ALL_REGS.
+ (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
+ (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
+ Adjust accordingly.
+ (CRIS_SPECIAL_REGS_CONTENTS): New macro.
+ (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
+ (SECONDARY_RELOAD_CLASS): Define.
+ (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
+ (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
+ (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
+ (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
+ (REGISTER_MOVE_COST): Define.
+ (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
+ * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
+ (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
+ (CRIS_MOF_REGNUM): New define_constants.
+ ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
+ special registers.
+ ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
+ New patterns.
+ ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
+ ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
+ Adjust for MOF being properly described as a register.
+ (indir_to_reg_split): Name this split. Conditionalize on the
+ destination register being a general register.
+ (movei): Conditionalize on on operands 0 and 1 having the same
+ register class.
+
+2005-03-03 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/20277
+ * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
+ -mcpu to override any other explicitly given flags.
+
+2005-03-02 J"orn Rennecke <joern.rennecke@st.com>
+
+ * recog.c (verify_changes, confirm_change_group): New functions,
+ broken out of apply_change_group.
+ (apply_change_group): Use them.
+ * recog.h (verify_change, confirm_change_group): Declare.
+ * rtl.h (redirect_jump_2): Declare.
+ * jump.c (redirect_exp, invert_exp): Delete.
+ (invert_exp_1): Take second parameter. Return value. Changed caller.
+ (redirect_jump_2): New function, broken out of redirect_jump.
+ (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
+ (invert_jump): Use invert_jump_1 and redirect_jump_2.
+ * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
+
+2005-03-02 Geoffrey Keating <geoffk@apple.com>
+
+ * varasm.c (named_section): Use xstrdup rather than doing it by
+ hand.
+
+ * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
+
+2005-03-02 Devang Patel <dpatel@apple.com>
+
+ Undo PR tree-optimization/18815 fix.
+
+2005-03-02 Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/18815
+ * tree-if-conv.c (combine_blocks): Adjust loop header edges for
+ loops with zero exit edges.
+
+2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cfg.c (connect_src, connect_dest, disconnect_src,
+ disconnct_dest): New.
+ (unchecked_make_edge, remove_edge, redirect_edge_succ,
+ redirect_edge_pred): Use the new functions.
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
+ free_dominance_info only when needed.
+
+2005-03-02 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/20276
+ * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
+ (reg_or_sub_cint64_operand): Same.
+
+2005-03-02 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
+ CFG_ALTERED in the main DOM iteration loop.
+
+2005-03-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19916
+ * varasm.c (initializer_constant_valid_p): Allow conversions
+ between OFFSET_TYPEs. Tidy.
+
+2005-03-02 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("return"): Remove epilogue delay list
+ sanity check.
+
+2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
+ for Thumb.
+ * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
+
+2005-03-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
+ loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
+ config/m68k/m68k.c, config/mips/mips.h,
+ config/rs6000/rs6000-protos.h, doc/contrib.texi,
+ doc/include/gcc-common.texi: Update copyright.
+
+ PR middle-end/18029 and PR middle-end/18030
+ * expr.c (optimize_bitfield_assignment_op): Add a special case
+ to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
+
+ * fold-const.c (fold_unary): New.
+ (fold): Call fold_unary on unary expressions.
+
+2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * cgraph.h (struct cgraph_edge): Add prev_caller and
+ prev_callee fields.
+ (cgraph_node_remove_callees): Export.
+ * cgraph.c (cgraph_create_edge): Initialize prev_caller
+ and prev_callee.
+ (cgraph_edge_remove_callee): New function.
+ (cgraph_edge_remove_caller): Likewise.
+ (cgraph_remove_edge): Use.
+ (cgraph_redirect_edge_callee): Likewise.
+ (cgraph_node_remove_callees): New function.
+ (cgraph_node_remove_callers): Likewise.
+ (cgraph_remove_node): Use.
+ * tree-optimize.c (tree_rest_of_compilation): Use
+ cgraph_node_remove_callees instead of manual loop.
+ * cgraphunit.c (cgraph_finalize_function): Likewise.
+ (cgraph_expand_function): Likewise.
+ (cgraph_remove_unreachable_nodes): Likewise.
+
+2005-03-02 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/8927
+ * c-tree.h (undeclared_variable, build_external_ref): Add extra
+ argument.
+ * c-decl.c (undeclared_variable): Take location as argument.
+ * c-typeck.c (build_external_ref): Likewise.
+ * c-parser.c (c_parser_postfix_expression): Pass location of
+ identifier to build_external_ref.
+
+2005-03-01 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
+ CCEQ mode for branch_positive_comparison_operator test.
+ * config/rs6000/predicates (branch_comparison_operator): Revert to
+ define_predicate.
+ (scc_comparison_operator): Same.
+ (branch_positive_comparison_operator): Same.
+
+2005-03-01 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_eligible_for_epilogue_delay)
+ (cris_delay_slots_for_epilogue): Remove.
+ (save_last): Move into cris_target_asm_function_epilogue.
+ (cris_target_asm_function_epilogue): Remove tests for file being
+ NULL.
+ * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
+ (cris_delay_slots_for_epilogue): Remove prototypes.
+ * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
+ (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
+
+2005-03-01 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/predicates.md (branch_comparison_operator): Change
+ to define_special_predicate.
+ (scc_comparison_operator): Same.
+ (branch_positive_comparison_operator): Same.
+
+2005-03-01 Daniel Berlin <dberlin@dberlin.org>
+
+ * Makefile.in (tree-ssa-sink.o): New.
+ (OBJS-common): Add tree-ssa-sink.o.
+ * common.opt: Add -ftree-sink
+ * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
+ * timevar.def (TV_TREE_SINK): new timevar.
+ * tree-flow.h (is_hidden_global_store): Prototype.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_sink_code.
+ * tree-pass.h (pass_sink_code): New.
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
+ for non-obvious global store store to is_hidden_global_store, and
+ call that new function.
+ * tree-ssa-sink.c: New file.
+ * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
+ * doc/passes.texi: Document forward store motion.
+ * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
+ * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
+ * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
+ * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
+
+2005-03-01 Per Bothner <per@bothner.com>
+
+ * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
+ and we have a non-zero column-number, add it to the message.
+ Also factor out the diagnostic_kind_text.
+
+2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
+ flow_loop_pre_header_scan, flow_loop_pre_header_find,
+ flow_loop_scan): Removed.
+ (flow_loop_dump): Do not dump removed fields.
+ (flow_loop_free): Do not free removed fields.
+ (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
+ (loop_exit_edge_p): New function.
+ * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
+ num_pre_header_edges, entry_edges, num_entries, exit_edges,
+ num_exits, exits_doms.
+ (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
+ LOOP_EDGES, LOOP_ALL): Removed.
+ (flow_loop_scan): Declaration removed.
+ (loop_exit_edge_p, mark_loop_exit_edges): Declare.
+ * cfgloopmanip.c (create_loop_notes): Do not pass flags to
+ flow_loops_find.
+ * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
+ (if_convert): Call flow_loops_find and flow_loops_free
+ when calling mark_loop_exit_edges.
+ * cfgloopanal.c (mark_loop_exit_edges): Moved from
+ ifcvt.c. Removed the flow_loops_find, flow_loops_free and
+ free_dominance_info calls.
+ * loop-init.c (flow_loops_find): Ditto.
+ * passes.c (rest_of_handle_branch_prob): Ditto.
+ * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
+ * loop-unroll.c (analyze_insns_in_loop): Do not use
+ EDGE_LOOP_EXIT.
+ * predict.c (predict_loops): Do not call flow_loop_scan.
+ Use get_loop_exit_edges.
+ (tree_estimate_probability): Do not pass flags to flow_loops_find.
+ * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
+ Do not use EDGE_LOOP_EXIT.
+ (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
+ to bb_with_exit_edge_p.
+ (if_convertible_loop_p): Do not call flow_loop_scan. Use
+ loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
+ to bb_with_exit_edge_p.
+ (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
+ EDGE_LOOP_EXIT.
+ * tree-loop-linear.c (linear_transform_loops): Do not call
+ flow_loop_scan. Use loop->single_exit.
+ * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
+ (vect_analyze_loop_form): Do not call flow_loop_scan.
+ * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
+ loop->single_exit.
+ (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
+ loop->single_exit.
+ * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
+ slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
+ slpeel_tree_duplicate_loop_to_edge_cfg,
+ slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
+ Use loop_preheader_edge and loop->single_exit. Do not call
+ flow_loop_scan.
+
+2005-03-01 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.c (thumb_find_work_register): Check all of the
+ argument registers to see if they are free, and a couple of
+ special cases where the last argument register but can be proved
+ to be available during the function's prologue.
+ (print_multi_reg, arm_compute_save_reg0_reg12_mask,
+ output_return_instruction, emit_multi_reg_push, thumb_pushpop,
+ thumb_unexpanded_epilogue): Use unsigned long as the type for the
+ register bit-mask.
+ (thumb_compute_save_reg_mask): Likewise. Also use
+ thumb_find_work_register() to ensure that there is agreement about
+ which work register is going to be used in the prologue.
+ (thumb_output_function_prologue): Use unsigned long as the type
+ for the register bit-mask. Also delay pushing the link register if
+ other high registers are going to be pushed.
+ (thumb_compute_save_reg_mask, emit_multi_reg_push,
+ print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
+ redundant prototypes.
+
+2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
+
+ PR target/19819
+ * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
+ and after reload in REG+REG indexed addresses without REG_POINTER
+ set in the base and not set in the index.
+
+2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
+ Don't undefine here.
+ (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
+ (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
+ (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
+ (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
+ LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
+ Delete.
+ * config.gcc (sh*-*-linux*): Use config/linux.h.
+
+2005-02-28 Dale Johannesen <dalej@apple.com>
+ Stan Shebs <shebs@apple.com>
+
+ Rewrite of 64-bit Darwin structure-by-value pass/return.
+ * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
+ intoffset, use_stack, named.
+ * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
+ (rs6000_darwin64_record_arg_advance_flush): New.
+ (rs6000_darwin64_record_arg_advance_recurse): New.
+ (rs6000_darwin64_record_arg_flush): New.
+ (rs6000_darwin64_record_arg_recurse): New.
+ (rs6000_darwin64_record_arg): New.
+ (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
+ (function_arg_boundary): Handle 128-bit aligned structs.
+ (function_arg_advance): Rewrite darwin64 struct handling.
+ (function_arg): Call rs6000_darwin64_record_arg.
+ (function_arg_partial_nregs): Handle darwin64 structs.
+ (rs6000_darwin64_function_value): Remove.
+ (rs6000_function_value): Call rs6000_darwin64_record_arg.
+
+2005-02-28 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/20216
+ * tree-chrec.c (tree_fold_factorial): Delete.
+ (tree_fold_binomial): Change argument list to take a return type
+ and change the type of K to unsigned int. Rewrite to avoid explicit
+ evaluation of factorials, and (recursively) calling fold to perform
+ compile-time arithmetic. Return NULL on (internal) overflow.
+ (chrec_evaluate): Change type of K to an unsigned int. Avoid
+ calling tree_fold_binomial unnecessarily. Return chrec_dont_know
+ if any intermediate calculation overflows.
+ (chrec_apply): Update call to chrec_evaluate.
+
+2005-02-28 James E Wilson <wilson@specifixinc.com>
+
+ * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
+
+2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/20245
+ * c-parser.c (c_parser_compound_statement): Return error_mark_node
+ instead of NULL_TREE on error.
+
+2005-02-28 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
+ (EASY_VECTOR_15_ADD_SELF): Remove.
+ (num_insns_constant_wide): Not static.
+ (validate_condition_mode): Not static.
+ (toc_relative_expr_p): Not static.
+ (legitimate_indirect_address_p): Not static.
+ (macho_lo_sum_memory_operand): Not static.
+ (invalid_e500_subreg): Not static.
+ (easy_vector_same): Not static.
+ (easy_vector_splat_const): Not static.
+ (RS6000_SYMBOL_REF_TLS_P): Remove.
+ (any_operand): Delete.
+ (any_parallel_operand): Delete.
+ (count_register_operand): Delete.
+ (altivec_register_operand): Delete.
+ (xer_operand): Delete.
+ (s8bit_cint_operand): Delete.
+ (short_cint_operand): Delete.
+ (u_short_cint_operand): Delete.
+ (non_short_cint_operand): Delete.
+ (exact_log2_cint_operand): Delete.
+ (gpc_reg_operand): Delete.
+ (cc_reg_operand): Delete.
+ (cc_reg_not_cr0_operand): Delete.
+ (reg_or_short_operand): Delete.
+ (reg_or_neg_short_operand): Delete.
+ (reg_or_aligned_short_operand): Delete.
+ (reg_or_u_short_operand): Delete.
+ (reg_or_cint_operand): Delete.
+ (reg_or_arith_cint_operand): Delete.
+ (reg_or_add_cint64_operand): Delete.
+ (reg_or_sub_cint64_operand): Delete.
+ (reg_or_logical_cint_operand): Delete.
+ (got_operand): Delete.
+ (got_no_const_operand): Delete.
+ (easy_fp_constant): Delete.
+ (easy_vector_constant): Delete.
+ (easy_vector_constant_add_self): Delete.
+ (zero_constant): Delete.
+ (zero_fp_constant): Delete.
+ (volatile_mem_operand): Delete.
+ (offsettable_mem_operand): Delete.
+ (mem_or_easy_const_operand): Delete.
+ (add_operand): Delete.
+ (non_add_cint_operand): Delete.
+ (logical_operand): Delete.
+ (non_logical_cint_operand): Delete.
+ (mask_operand): Delete.
+ (mask_operand_wrap): Delete.
+ (mask64_operand): Delete.
+ (mask64_2_operand): Delete.
+ (and64_operand): Delete.
+ (and64_2_operand): Delete.
+ (and_operand): Delete.
+ (reg_or_mem_operand): Delete.
+ (lwa_operand): Delete.
+ (symbol_ref_operand): Delete.
+ (call_operand): Delete.
+ (current_file_function_operand): Delete.
+ (input_operand): Delete.
+ (rs6000_nonimmediate_operand): Delete.
+ (rs6000_tls_symbol_ref): Delete.
+ (save_world_operation): Delete.
+ (restore_world_operation): Delete.
+ (load_multiple_operation): Delete.
+ (store_multiple_operation): Delete.
+ (vrsave_operation): Delete.
+ (mfcr_operation): Delete.
+ (mtcrf_operation): Delete.
+ (lmw_operation): Delete.
+ (stmw_operation): Delete.
+ (branch_comparison_operator): Delete.
+ (branch_positive_comparison_operator): Delete.
+ (scc_comparison_operator): Delete.
+ (trap_comparison_operator): Delete.
+ (boolean_operator): Delete.
+ (boolean_or_operator): Delete.
+ (min_max_operator): Delete.
+ * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
+ (EASY_VECTOR_15): Moved to here.
+ (EASY_VECTOR_15_ADD_SELF): Move to here.
+ (PREDICATE_CODES): Delete.
+ * config/rs6000/rs6000-protos.h: Delete predicate functions.
+ Declare functions no longer static.
+ * config/rs6000/predicates.md: New.
+ * config/rs6000/rs6000.md: Include predicates.md
+
+2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
+
+ * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
+ (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
+ REG_ALWAYS_RETURN.
+ * cfgrtl.c (need_fake_edge_p): Likewise.
+ * combine.c (distribute_notes): Likewise.
+ * emit-rtl.c (try_split): Likewise.
+ * recog.c (peephole2_opimize): Likewise.
+ * reg-notes.def (ALWAYS_RETURN): Remove.
+ * rtl.h (LCT_ALWAYS_RETURN): Remove.
+ * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
+ * tree.h (ECF_ALWAYS_RETURN): Remove.
+
+2005-02-28 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19874
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
+ between different machine modes is never a "useless" conversion.
+
+2005-02-28 Geert Bosch <bosch@gnat.com>
+
+ PR ada/15977
+ * doc/contrib.texi: List contributors for Ada front end
+
+2005-02-28 Paolo Bonzini <bonzini@gnu.org>
+
+ * simplify-rtx.c (simplify_unary_operation_1,
+ simplify_const_unary_operation): New, extracted from...
+ (simplify_unary_operation): ... this one.
+ (simplify_binary_operation_1,
+ simplify_const_binary_operation): New, extracted from...
+ (simplify_binary_operation): ... this one.
+ * rtl.h (simplify_const_unary_operation,
+ simplify_const_binary_operation): Add prototypes.
+
+2005-02-28 Julian Brown <julian@codesourcery.com>
+
+ * config/elfos.h: Revert my patch from 2005-02-25 since it broke
+ building libjava and caused PR regression/20228.
+
+2005-02-28 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/17383
+ * Makefile.in (host_subdir): New.
+ (build_objdir): New. Replace ../$(build_subdir) with it throughout.
+ * configure: Regenerate.
+
+2005-02-27 Zack Weinberg <zack@codesourcery.com>
+
+ * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
+ * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
+ installation directory first.
+
+2005-02-28 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/19065.
+ * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
+ not including (reg). Do not check for reg being CRIS_PC_REGNUM.
+ (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
+ * config/cris/cris.md: Tweak comments referring to Q.
+ ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
+ ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
+ ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
+ ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
+ ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
+ Insert spaces in constraints to align alternatives vertically for
+ readability.
+ ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
+ operand 1: "M".
+
+2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR rtl-optimization/17728
+ * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
+ operand 0 from general_operand to move_dest_operand.
+
+2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
+ instead of trying to save and restore TREE_SYMBOL_REFERENCED.
+ * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
+ (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
+
+2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
+ * configure: Regenerate.
+ * libada-mk.in: Remove CC; rename
+ cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
+
+2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/20188
+ * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
+ for the lhs, also walk over the tree. Likewise for rhs.
+
+2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-dom.c (simple_iv_increment_p): New function.
+ (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
+ Do not propagate value of iv before increment over the increment.
+
+2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-parser.c: New file.
+ * c-parse.in: Remove.
+ * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
+ Remove.
+ (c-parser.o): Add dependencies.
+ (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
+ maintainer-clean, TAGS): Update.
+ * c-config-lang.in (gtfiles): Update.
+ * gengtype-lex.l: Don't handle "@@".
+ * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
+ objc_build_synchronized, objc_begin_try_stmt,
+ objc_begin_catch_clause, objc_finish_catch_clause,
+ objc_build_finally_clause, objc_finish_try_stmt): New.
+ * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
+ type_seen_p.
+ (c_parse_init): Update comment.
+ * c-decl.c (c_init_decl_processing): Update comment.
+ (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
+ declspecs_add_scspec, declspecs_add_attrs): Initialize and update
+ new c_declspecs members.
+
+2005-02-25 Julian Brown <julian@codesourcery.com>
+
+ * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
+ from being used for symbols with vague linkage when
+ HAVE_GAS_COMDAT_GROUP is true.
+
+2005-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
+
+2005-02-25 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/19930
+ * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
+ (LIBGCC2_HAS_DF_MODE): New.
+ (LIBGCC2_HAS_XF_MODE): New.
+ (LIBGCC2_HAS_TF_MODE): New.
+ * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
+ (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
+ * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
+ (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
+ (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
+ * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
+ and add _fixtfdi, _fixunstfdi, _floatditf
+ * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
+ L_fixunstfdi, L_floatditf.
+ * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
+ (LIBGCC2_HAS_TF_MODE): Define.
+
+2005-02-25 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/20204
+ * tree-into-ssa.c (insert_phi_nodes_for): Do not use
+ REWRITE_THIS_STMT markers on PHI nodes.
+ (rewrite_initialize_block): Likewise.
+
+2005-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c (version_string): Update to 4.1.
+
+2005-02-25 Paolo Carlini <pcarlini@suse.de>
+
+ * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
+ Clarify that the alternative way doesn't work in GNU C++.
+
+2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/19937
+ * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
+ to the type of the induction variable.
+
+2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/20117
+ * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
+ the block including noncopyable insn.
+
+2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cse.c (delete_trivially_dead_insns): Speed up by minimizing
+ calls to find_reg_note.
+
+2005-02-24 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/20127
+ * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
+ the type.
+
+2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
+ vector types if to use base reg for misaligned non-word ld/std.
+
+2005-02-24 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14619
+ * config/cris/cris.c (cris_target_asm_function_prologue): Create
+ dwarf2 label manually and put it after, not before the prologue.
+
2005-02-24 David Edelsohn <edelsohn@gnu.org>
PR target/19019
* reload.c (operands_match_p): Only increment register number for
SCALAR_INT_MODE_P modes in multiple hard registers.
+ * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
+ Fix formatting.
+
2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* ChangeLog.5: Fix log message typo(s).
2005-02-22 Devang Patel <dpatel@apple.com>
PR 19952
- * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
+ * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
all labels
-
+
2005-02-22 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/aix.h (WINT_TYPE): Define.
numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
registers in unsupported ways.
* expmed.c (init_expmed): Likewise.
-
+
2005-02-21 Stan Cox <scox@redhat.com>
* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.