OSDN Git Service

Fix linux make profiledbootstrap.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f6bb1b9..ede940e 100644 (file)
@@ -1,3 +1,239 @@
+2004-08-24  James E Wilson  <wilson@specifixinc.com>
+
+       * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
+       -freorder-blocks-and-partition.
+
+2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/17044
+       * tree-ssa-threadupdate.c (redirection_data): Make static.
+       (thread_block): Use ggc_alloc_cleared to allocate struct
+       redirection_data.  Don't free elements in redirection_data.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/predicates.md (small_data_pattern): Match prefetches.
+
+2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/17016
+       * tree-ssa-loop-niter.c (number_of_iterations_cond,
+       number_of_iterations_exit): Use POINTER_TYPE_P instead
+       of testing for POINTER_TYPE.
+
+2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * tree-ssa-loop-ivcanon.c: New file.
+       * tree-ssa-loop-manip.c (create_iv): New function.
+       * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
+       (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
+       * cfgloop.c (mark_single_exit_loops): New function.
+       (verify_loop_structure): Verify single-exit loops.
+       * cfgloop.h (struct loop): Add single_exit field.
+       (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
+       (mark_single_exit_loops): Declare.
+       (tree_num_loop_insns): Declare.
+       * cfgloopmanip.c (update_single_exits_after_duplication): New function.
+       (duplicate_loop_to_header_edge): Use it.
+       * common.opt (fivcanon): New flag.
+       * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
+       * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
+       (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
+       (bsi_insert_on_edge_immediate): New function.
+       * tree-flow.h (bsi_insert_on_edge_immediate,
+       canonicalize_induction_variables, tree_unroll_loops_completely,
+       create_iv): Declare.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_iv_canon and pass_complete_unroll.
+       * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
+       * tree-scalar-evolution.c (get_loop_exit_condition,
+       get_exit_conditions_rec, number_of_iterations_in_loop,
+       scev_initialize): Use single_exit information.
+       * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
+       missing assumptions.
+       (loop_niter_by_eval):  Return number of iterations as unsigned
+       int.
+       * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
+       (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
+       tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
+       New passes.
+       (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
+       * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
+       the defining statement is ready.
+       * tree-vectorizer.c (vect_create_iv_simple): Removed.
+       (vect_create_index_for_array_ref, vect_transform_loop_bound):
+       Use create_iv.
+       (vect_transform_loop_bound): Use single_exit information.
+       (vect_analyze_loop_form): Cleanup bogus tests.
+       (vectorize_loops): Do not call flow_loop_scan.
+       * tree.h (may_negate_without_overflow_p): Declare.
+       * fold-const.c (may_negate_without_overflow_p): Split out from ...
+       (negate_expr_p): ... this function.
+       (tree_expr_nonzero_p): Handle overflowed constants correctly.
+       * doc/invoke.texi (-fivcanon): Document.
+       * doc/passes.texi: Document canonical induction variable creation.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
+       * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
+       using the mode of the operand to decide between them.
+       * config/mips/mips.md (MOVECC): New mode macro.
+       (ccreg): New mode attribute.
+       (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
+       Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
+       (mov[sd]icc): Redefine using :GPR.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
+       (mips_prefetch_cookie): New function.
+       * config/mips/mips.c (print_operand_address): Fix handling of
+       ADDRESS_CONST_INT.
+       (mips_emit_prefetch): Delete.
+       (mips_prefetch_cookie): New function.
+       * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
+       mode of QImode for the address_operand.  Use mips_prefetch_cookie
+       to calculate the first "pref" operand.
+       (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
+       (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
+
+2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md: Include predicates.md.
+       * predicates.md: New file.
+       * arm.c (s_register_operand, arm_hard_register_operand)
+       (arm_general_register_operand, f_register_operand, reg_or_int_operand)
+       (arm_immediate_operand, arm_neg_immediate_operand)
+       (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
+       (arm_add_operand, arm_addimm_operand, arm_not_operand)
+       (offsettable_memory_operand, alignable_memory_operand)
+       (arm_reload_memory_operand, arm_float_rhs_operand)
+       (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
+       (index_operand, shiftable_operator, logical_binary_operator)
+       (shift_operator, equality_operator, arm_comparison_operator)
+       (minmax_operator, cc_register, dominant_cc_register)
+       (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
+       (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
+       (const_shift_operand, load_multiple_operation)
+       (store_multiple_operation, multi_register_push, thumb_cmp_operand)
+       (thumb_cmpneg_operand, thumb_cbrch_target_operand)
+       (cirrus_register_operand, cirrus_fp_register)
+       (cirrus_shift_const): Delete, replaced with equivalents in
+       predicates.md.
+       (shift_op): Handle ROTATE.
+       * arm-protos.h: Delete declarations for above.
+       * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
+       * t-arm (MD_INCLUDES): Add predicates.md.
+       (s-preds): Depends on MD_INCLUDES.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
+       * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
+       patterns.  Redefine using :GPR.  Give the match_operator a mode.
+       Use '%2' rather than '%z2' for operand 2.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
+       attribute.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
+       of internal patterns.
+       (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
+       Redefine using :P.
+       (tablejump): Use expand_binop to calculate address.  Adjust names
+       of internal patterns.
+       (tablejump[sd]i): Renamed from tablejump_internal[12].
+       Redefine using :P.
+       (tablejump_mips16[12]): Delete.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
+       (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
+       (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
+       (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
+       (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
+
+2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
+       (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
+       using :GPR.
+       (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
+       (*branch_equality[sd]i): Likewise branch_equality{,_di}.
+       (*branch_equality[sd]i_inverted): Likewise
+       branch_equality{,_di}_inverted.
+       (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
+       Redefine using :GPR.
+
+2004-08-24  Zack Weinberg  <zack@codesourcery.com>
+
+       * rtl.def: Reorganize, placing all codes used only in machine
+       descriptions at the end.
+
+       * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
+       * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
+       rtx_name, rtx_format arrays by direct reference to rtl.def,
+       first undefining GENERATOR_FILE.  Define enum insn_note and
+       note_insn_name array by direct reference to insn-notes.def.
+       (adjust_field_rtx_def): Remove local definition of rtx_name.
+       Use symbolic names for insn notes.
+       * Makefile.in (gengtype.o): Update dependencies.
+
+2004-08-24  Zack Weinberg  <zack@codesourcery.com>
+
+       * basic-block.h (struct basic_block_def): Reorder fields to
+       eliminate interior padding.  Remove 'partition' field.
+       (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
+       (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
+       (BB_COPY_PARTITION): New macros.
+       * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
+       Replace all references to the 'partition' field of a basic
+       block with new macros.
+
+       * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
+       * final.c (final_scan_insn): Don't handle it.
+       * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
+       instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
+       * sched-rgn.c (sched_is_disabled_for_current_region_p):
+       Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
+
+2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-decl.c (c_init_decl_processing): Adjust
+       build_common_tree_nodes call.
+       * expmed.c (const_mult_add_overflow_p): Use
+       build_distinct_type_copy.
+       * stor-layout.c (early_type_list): Remove.
+       (layout_type): Don't append to early_type_list.
+       (initialize_sizetypes): Add signed_p argument.
+       (set_sizetype): Overwrite the stub type nodes directly.
+       * tree.c (copy_node_stat): Clear a type's value cache here ...
+       (build_distinct_type): ... not here.
+       (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
+       * tree.h (initialize_sizetypes): Add signed_p argument.
+       (build_common_tree_nodes): Likewise.
+
+       * objc/objc-act.c (get_static_reference): Use
+       build_variant_type_copy.
+       (get_protocol_reference): Likewise.
+       * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
+
+2004-08-24  Richard Henderson  <rth@redhat.com>
+           Andrew Pinski  <apinski@apple.com>
+
+       * gimplify.c (gimplify_array_ref_to_plus): Delete.
+       (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
+       for ARRAY_REF.
+
+       * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
+       ARRAY_REF also to get to the STRING_CST.
+
 2004-08-24  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.c (arm_override_options): Update error message.