OSDN Git Service

* lcm.c: Move all mode-switching related functions from here...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 947517b..ad10c83 100644 (file)
@@ -1,3 +1,788 @@
+2005-06-04  Steven Bosscher  <stevenb@suse.de>
+
+       * lcm.c: Move all mode-switching related functions from here...
+       * mode-switching.c: ...to this new file.
+       * doc/passes.texi: Update accordingly.
+
+       * basic-block.h (label_value_list): Remove extern decl.
+       * cfgrtl.c (label_value_list): Remove.
+       (can_delete_label_p): Don't look at it.
+       * cfgcleanup.c (cleanup_cfg): Don't free it.
+
+       * common.opt: Don't refer to non-existing flag_alias_check.
+
+2005-06-04  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
+
+2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
+
+       * function.c (prologue, epilogue, sibcall_epilogue): Change
+       their types to VEC(int,heap)*.
+       (free_after_compilation): Free the three vectors above.
+       (init_function_for_compilation, record_insns, contains,
+       prologue_epilogue_contains, sibcall_epilogue_contains,
+       reposition_prologue_and_epilogue_notes): Use VEC instead of
+       VARRAY.  (init_function_once): Remove.
+       * function.h: Remove the prototype for init_function_once.
+       * toplev.c (backend_init): Don't call init_function_once.
+
+2005-06-04  Jan Hubicka  <jh@suse.cz>
+
+       * predict.c (tree_predict_edge): Do not predict entry edge and
+       single succestor edge.
+
+2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/21873
+       * c-typeck.c (push_init_level): Don't pop levels without braces if
+       implicit == 1.
+
+2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
+       
+       * tree-data-ref.c (compute_self_dependence): New function.
+       (compute_all_dependences): Use it.
+
+2005-06-03  Geoffrey Keating  <geoffk@apple.com>
+
+       * c-parser.c (c_parser_parms_declarator): Don't use chainon().
+       (c_parser_expr_list): Don't use chainon().
+
+       * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
+       when -isysroot passed.
+
+2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/21879
+       * c-decl.c (start_function): Restore label_context_stack_se and
+       label_context_stack_vm  if returning with an error.
+
+2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * configure.ac: Check declaration for asprintf, needed by
+       libiberty.h. 
+       * configure: Regenerate.
+       * config.in: Likewise.
+
+2005-06-03  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
+       allocate info array.
+       * tree-vrp.c (extract_range_from_unary_expr): Set resulting
+       range to varying in cast expressions that change
+       TYPE_PRECISION.
+
+2005-06-03  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.opt: Add RejectNegative to divide-breaks and
+       divide-traps.
+
+2005-06-03  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (remove_predictions_associated_with_edge): Declare.
+       * cfg.c (remove_edge): Use it.
+       * predict.c (remove_predictions_associated_with_edge): New function.
+
+2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
+       Clear call_realy_used_regs[r2] when ABI_AIX.
+
+2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       PR middle-end/21858
+       * fold-const.c (fold_binary): Fix type mismatches in folding
+       of comparisons.
+
+2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
+
+       * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
+       typos.
+
+2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * collect2.c (maybe_unlink): Use unlink_if_ordinary.
+
+2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * reload1.c (reload): Revert my previous patch.
+
+2005-06-03  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
+       assembler.
+
+2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/21849
+       * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
+
+2005-06-02  Richard Henderson  <rth@redhat.com>
+
+       * Makefile.in (tree-vect-generic.o): New.
+       (OBJS-common, GTFILES, s-gtype): Add it.
+       * tree-complex.c (build_replicated_const, vector_inner_type,
+       vector_last_type, vector_last_nunits, build_word_mode_vector_type,
+       elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
+       do_negate, expand_vector_piecewise, expand_vector_parallel, 
+       expand_vector_addition, expand_vector_operation, 
+       type_for_widest_vector_mode, expand_vector_operations_1, 
+       gate_expand_vector_operations, expand_vector_operations, 
+       pass_lower_vector_ssa): Move to tree-vect-generic.c.
+       (tree_lower_complex): Rename from tree_lower_operations.
+       (pass_lower_complex): Rename from pass_pre_expand.
+       * tree-vect-generic.c: New file.
+       * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
+       (pass_lower_vector): New.
+       * tree-optimize.c (init_tree_optimization_passes): Update to match.
+
+2005-06-02  Richard Henderson  <rth@redhat.com>
+
+       * modulo-sched.c (doloop_register_get): Protect against 
+       doloop_end not defined.
+
+2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/sh/sh.c (general_movsrc_operand,
+       general_movdst_operand, arith_reg_operand, arith_reg_dest,
+       logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
+       fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
+       xor_operand, cmp_operand, logical_operand, and_operand,
+       fpscr_operand, fpul_operand, symbol_ref_operand,
+       commutative_float_operator, noncommutative_float_operator,
+       unary_float_operator, binary_float_operator,
+       binary_logical_operator, equality_comparison_operator,
+       greater_comparison_operator, less_comparison_operator,
+       shift_operator, logical_operator, target_reg_operand,
+       target_operand, mextr_bit_offset, extend_reg_operand,
+       trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
+       general_extend_operand, ua_address_operand,
+       cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
+       sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
+       shift_count_reg_operand, shift_count_operand,
+       unaligned_load_operand): Move to ...
+       * config/sh/predicates.md: ... here.
+       * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
+       Remove.
+
+2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree.c (build_common_builtin_nodes): Fix the return type on
+       __builtin_memcmp.
+
+2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
+       (find_interesting_uses_address): Use build_fold_addr_expr instead.
+       (strip_offset_1): Likewise.
+       (tree_to_aff_combination): Likewise.
+
+2005-06-02  DJ Delorie  <dj@redhat.com>
+
+       * convert.c (convert_to_pointer): Avoid recursion if no conversion
+       is needed.
+
+2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-chrec.c (chrec_fold_plus_1): Ensure we build
+       binary operations with the correct types.
+       * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
+       for all computation.
+
+2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
+       config/rs6000/rs6000.md: Fix comment typos.  Follow splling
+       conventions.
+       * doc/install.texi: Fix a typo.
+
+2005-06-02  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
+       inline functions are not local.
+
+2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
+
+       * gimplify.c (gimplify_ctx): Change the type of case_labels to
+       VEC from VARRAY.
+       (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
+       of case_labels.
+
+2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
+       with correct type.
+
+2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
+       execute templates.
+       (s390_dump_pool): Likewise.
+       (s390_mainpool_start, s390_mainpool_finish): Likewise.
+       (s390_chunkify_start): Likewise.
+       (s390_dump_execute): Remove.
+       (s390_reorg): Handle out-of-pool execute templates.
+
+2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
+
+       * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
+         unconditional jump.
+
+2005-06-02  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_node): Maintain master clones.
+       (cgraph_remove_node): Likewise.
+       (availability_names): New static variable.
+       (dump_cgraph_node): Dump availability.
+       (dump_cgraph_varpool_node): Likewise.
+       (cgraph_is_master_clone, cgraph_master_clone,
+       cgraph_function_body_availability,
+       cgraph_variable_initializer_availability): New functions.
+       * cgraph.h (availability): New enum.
+       (struct cgraph_node): Add master_clone.
+       (cgraph_is_master_clone, cgraph_master_clone,
+       cgraph_function_body_availability,
+       cgraph_variable_initializer_availability): Declare.
+       * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
+       (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
+       * ipa-inline.c (cgraph_decide_inlining): Do not call
+       cgraph_remove_unreachable_nodes.
+
+       * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
+       previous patch.
+
+2005-06-02  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 21582
+       * tree-vrp.c (nonnull_arg_p): New.
+       (get_value_range): Call it.
+
+2005-06-02  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
+       add PROCESSOR_MAX.
+       (mips_rtx_cost_data): New datatype.
+       (MEMORY_MOVE_COST): Use data from structure.
+       (BRANCH_COST): Ditto.
+       (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
+       * config/mips/mips.md (cpu): Rework for processor_type changes.
+       * config/mips/mips.c (mips_cost): New variable.
+       (DEFAULT_COSTS): Define.
+       (mips_rtx_cost_data): New.
+       (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
+       for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
+       FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
+       (override_options): Set cost data.
+       (mips_register_move_cost): Formatting changes.
+       (bdesc_arrays): Use PROCESSOR_MAX.
+       (mips_init_builtins): Ditto.
+
+2005-06-02  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 21765
+       * doc/invoke.texi: Document -ftree-vrp.
+
+2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
+
+       PR tree-optimization/21734
+       * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
+       phi_result when current_def is not available.
+       (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
+       available.      
+
+2005-06-02  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
+       (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
+
+2005-06-02  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
+
+2005-06-02  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (dump_cgraph_node): Print new flags.
+       (dump_cgraph_varpool_node): Likewise.
+       (decide_variable_is_needed): Initialize externally_visible flag.
+       * cgraph.h (cgraph_local_info): Add externally_visible flag.
+       (cgraph_varpool_node): Likewise.
+       (cgraph_function_flags_ready): Declare.
+       * cgraph.c (cgraph_mark_local_functions): Rename to ...
+       (cgraph_function_and_variable_visibility) ... this one; handle
+       externally_visible flags.
+       (decide_is_function_needed): Set externally_visible flag.
+       (cgraph_finalize_function): Deal properly with early cleanups.
+       (cgraph_optimize): Update call of
+       cgraph_function_and_variable_visibility.
+
+2005-06-02 Steven Bosscher  <stevenb@suse.de>
+          Mostafa Hagog <mustafa@il.ibm.com>
+
+       * cfgloop.h (doloop_condition_get): Make external.
+       * loop-doloop.c (doloop_condition_get): Generalize to make it
+       usable in modulo-sched.c.
+       * modulo-sched.c (doloop_register_get): Use
+       doloop_condition_get instead of duplicating it.
+
+2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
+       the correct set of init_insns that need deletion.
+       * local-alloc.c (update_equiv_regs): When substituting sole definition
+       into sole use of a reg, delete it from liveness information.
+
+2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
+
+2005-06-01  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
+       PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
+       * fold-const.c (invert_tree_comparison): Make extern.
+       * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
+       (struct value_range_def): Limewise.
+       (get_value_range): Remove.
+       (dump_value_range): Remove.
+       (dump_all_value_ranges): Remove.
+       (debug_all_value_ranges): Remove.
+       (vrp_evaluate_conditional): Declare.
+       * tree-ssa-propagate.c (struct prop_stats_d): Add field
+       num_pred_folded.
+       (substitute_and_fold): Add argument use_ranges_p.
+       Update all callers.
+       If use_ranges_p is true, call fold_predicate_in to fold
+       predicates using range information.
+       Ignore ASSERT_EXPRs.
+       Change debugging output to only show statements that have been
+       folded.
+       (replace_phi_args_in): Move debugging output code from
+       substitute and fold.
+       (fold_predicate_in): New local function.
+       * tree-ssa-propagate.h (enum value_range_type): Move from
+       tree-flow.h.
+       (struct value_range_d): Likewise.
+       Add field 'equiv'. 
+       (value_range_t): Rename from value_range.
+       * tree-vrp.c (found_in_subgraph): Rename from found.
+       (get_opposite_operand): Remove.
+       (struct assert_locus_d): Declare.
+       (assert_locus_t): Declare.
+       (need_assert_for): Declare.
+       (asserts_for): Declare.
+       (blocks_visited): Declare.
+       (vr_value): Declare.
+       (set_value_range): Add argument 'equiv'.
+       Don't drop to VARYING ranges that cover all values in the
+       type.
+       Make deep copy of equivalence set 'equiv'.
+       (copy_value_range): New local function.
+       (set_value_range_to_undefined): New local function.
+       (compare_values): Return -2 if either value has overflowed.
+       (range_includes_zero_p): New local function.
+       (extract_range_from_assert): Flip the predicate code if the
+       name being asserted is on the RHS of the predicate.
+       Avoid creating unnecessary symbolic ranges if the comparison
+       includes another name with a known numeric range.
+       Update the equivalnce set of the new range when asserting
+       EQ_EXPR predicates.
+       (extract_range_from_ssa_name): Update the equivalence set of
+       the new range with VAR.
+       (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
+       If -fwrapv is used, set the resulting range to VARYING if the
+       operation overflows.  Otherwise, use TYPE_MIN_VALUE and
+       TYPE_MAX_VALUE to represent -INF and +INF.
+       Fix handling of *_DIV_EXPR.
+       (extract_range_from_unary_expr): Handle MINUS_EXPR and
+       ABS_EXPR properly by switching the range around if necessary.
+       (extract_range_from_comparison): New local function.
+       (extract_range_from_expr): Call it.
+       (adjust_range_with_scev): Do not adjust the range if using
+       wrapping arithmetic (-fwrapv).
+       (dump_value_range): Also show equivalence set.
+       Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
+       (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
+       (infer_value_range): Change return value to bool.
+       Add arguments 'comp_code_p' and 'val_p'.
+       Do not attempt to infer ranges from statements that may throw.
+       Store the comparison code in comp_code_p.
+       Store the other operand to be used in the predicate in val_p.
+       (dump_asserts_for): New.
+       (debug_asserts_for): New.
+       (dump_all_asserts): New.
+       (debug_all_asserts): New.
+       (register_new_assert_for): New.
+       (register_edge_assert_for): New.
+       (find_conditional_asserts): New.
+       (find_assert_locations): New.
+       (process_assert_insertions_for): New.
+       (process_assert_insertions): New.
+       (insert_range_assertions): Initialize found_in_subgraph,
+       blocks_visited, need_assert_for and asserts_for.
+       Call find_assert_locations and process_assert_insertions.
+       (remove_range_assertions): Add more documentation.
+       (vrp_initialize): Change return type to void.
+       Do not try to guess if running VRP is worth it.  
+       (compare_name_with_value): New.
+       (compare_names): New.
+       (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
+       use_equiv_p is true, call compare_names and
+       compare_name_with_value to compare all the ranges for every
+       name in the equivalence set of the predicate operands.
+       Update all callers.
+       (vrp_meet): Try harder not to derive a VARYING range.
+       If two values meet, the resulting equivalence set is the
+       intersection of the two equivalence sets.
+       (vrp_visit_phi_node): Call copy_value_range to get the current
+       range information of the LHS.
+       (vrp_finalize): Create a value vector representing all the
+       names that ended up with exactly one value in their range.
+       Call substitute_and_fold.
+       (execute_vrp): Document equivalence sets in ranges.
+       * tree.h (SSA_NAME_VALUE_RANGE): Remove.
+       (struct tree_ssa_name): Remove field value_range.
+       (invert_tree_comparison): Declare.
+
+2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/21839
+
+       * gimplify.c (zero_sized_field_decl): New function.
+       (gimplify_init_ctor_eval): Use it.
+
+2005-06-01  Josh Conner <jconner@apple.com>
+
+       PR 21478
+       * gimplify.c (gimplify_init_constructor): Don't spill initializer
+       to read-only memory if it's sparse.
+
+2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
+
+       * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
+       Add documentation for REG_SETJMP
+
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * stmt.c (expand_case): Use build_int_cst.
+       (node_has_low_bound): Likewise, and correct type mismatch.
+       (node_has_high_bound): Likewise.
+       * fold-const.c (fold_binary): Ensure we build trees
+       with the correct types - undo what STRIP_NOPS possibly did.
+
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree.h (fold_indirect_ref_1): Export from fold-const.c.
+       * fold-const.c (fold_indirect_ref_1): No longer static.
+       * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
+       folding, if possible.
+
+2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * common.opt (fjump-tables): New.
+       * doc/invoke.texi (-fno-jump-tables): Document.
+       * stmt.c (expand_end_case_type): Do not emit jump tables unless
+       flag_jump_tables.
+
+2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
+       (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
+       (sunlt, sunle): Enable patterns on VFP.
+
+       * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
+       f_stored, f_flag, f_cvt.
+       (generic_sched): No-longer used for the arm1020e and arm1022e cores.
+       Include arm1020e.md.
+       * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
+       the ds and fmac pipelines.  Re-work all load and store patterns and
+       all conversion patterns to use new attributes.  Adjust reservation
+       descriptions accordingly.
+       * arm1020e.md: New file.
+       * t-arm: Add dependency.
+
+2005-06-01  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (struct eh_region): Kill unused fields.
+       * basic-block.h (struct basic_block_def): Likewise.
+
+2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/21767
+       * rtl.h (function_invariant_p): Re-add declaration.
+       * reload1.c (function_invariant_p): No longer static.
+       * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
+       might have become invalid.
+
+2005-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/21536
+       PR c/20760
+       * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
+       on variable sizes types if a decl is a pointer to a VLA.
+       (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
+       Call gimplify_type_sizes on aggregate fields.  Prevent infinite
+       recursion.
+
+       * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
+
+       * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
+       _mm_set_ps, _mm_setr_ps): Add __extension__.
+       * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
+       _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
+       _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
+       Likewise.
+       (_mm_clflush): Don't use return in void function.
+
+       * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
+       _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
+       Use __inline instead of inline.
+
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Fix types in strlen vs.
+       zero comparison folding.
+
+2005-06-01  Richard Henderson  <rth@redhat.com>
+
+       * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
+       * config.in, configure: Rebuild.
+       * config/alpha/alpha.c (print_operand): Add 'j'.
+       * alpha.md (divmodsi_internal_er_1): Use it.
+       (divmoddi_internal_er_1): Likewise.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
+       * opts.h (print_filtered_help): Delete.
+       * opts.c (handle_option, decode_options): Remove calls to
+       set_target_switch.
+       (print_target_help): New function.
+       (common_option, print_help): Call print_target_help instead of
+       display_target_options.
+       (print_filtered_help): Make static.
+       * toplev.h (display_target_options, set_target_switch): Delete.
+       * toplev.c (target_switches, target_options, display_target_options)
+       (set_target_switch): Delete.
+       (print_switch_values): Remove handling of TARGET_SWITCHES and
+       TARGET_OPTIONS.
+       (default_get_pch_validity): Likewise.  Only treat target_flags
+       specially if targetm.check_pch_target_flags is nonnull.
+       (pch_option_mismatch): New function.
+       (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
+       and TARGET_OPTIONS.  Only treat target_flags specially if
+       targetm.check_pch_target_flags is nonnull.
+       * config/ia64/ia64.c (ia64_override_options): Don't mention
+       TARGET_OPTIONS in comment.
+       * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
+       * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
+       * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
+       interaction with TARGET_SWITCHES.
+       (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/sh/sh.c (multcosts): Check sh_multcost rather than
+       sh_multcost_str.
+       (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
+       (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
+       (cut2_workaround_str): Delete.
+       * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
+       (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
+       (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
+       * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
+       (mgettrcost=, multcost=): New options.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * opts.h (cl_option_state): New structure.
+       (get_option_state): Declare.
+       * opts.c (get_option_state): New function.
+       * toplev.c (option_affects_pch_p): New function.
+       (default_get_pch_validity): Store the state of all options for which
+       option_affects_pch_p returns true.
+       (default_pch_valid_p): Check the state of those options here.
+       Only check target_flags separately if targetm.check_pch_target_Flags
+       is nonnull or if TARGET_SWITCHES is defined.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
+       names.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * gcse.c (compute_transp, load_killed_in_block): Use 
+       MEM_READONLY_P.
+
+2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
+
+       PR target/21854
+       * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
+       
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * errors.h (warning, error, fatal, internal_error): Add printf
+       attribute.
+       * genmodes.c (make_vector_mode): Fix format arguments.
+
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
+       config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
+       lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
+       tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
+       tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
+       tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
+       tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
+       tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
+       tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
+       tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+       tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
+       tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
+       tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
+       errors.h and include toplev.h if necessary.
+       
+       * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
+       errors.h otherwise include toplev.h.
+       
+       * Makefile.in: Update dependencies.
+       
+2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
+
+2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
+
+       * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
+       * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
+       be complemented for big-endian.  Mask for AND must be rotated,
+       not shifted.  Handle short operands with NOT on the memory
+       operation.
+
+2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
+
+       * c-objc-common.c (c_tree_printer): Check flag before hashtable.
+       Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
+       * dwarf2out.c (dwarf2out_var_location): Ditto.
+       * toplev.c (default_tree_printer): Ditto.
+       * tree-outof-ssa.c (create_temp): Ditto.
+       * tree-sra.c (instantiate_element): Ditto.
+       * var-tracking.c (track_expr_p): Ditto.
+       * tree.c (struct tree_map): New structure.
+       (debug_expr_for_decl): New.
+       (tree_map_eq): New function.
+       (tree_map_hash): Ditto.
+       (tree_map_marked_p): Ditto.
+       (print_debug_expr_statistics): Ditto.
+       (decl_debug_expr_lookup): Ditto.
+       (decl_debug_expr_insert): Ditto.
+       (dump_tree_statistics): Dump debug_expr hashtable stats.
+       * tree.h (DECL_DEBUG_EXPR): Change
+       (SET_DECL_DEBUG_EXPR): Add.
+       
+2005-06-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * configure.ac: Add --enable-secureplt.
+       (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
+       rs6000/secureplt.h to tm_file when enable_secureplt.
+       * doc/invoke.texi (msecure-plt, mbss-plt): Document.
+       * doc/install.texi: Document --enable-targets and --enable-secureplt.
+       Correct xrefs to "Using the GNU Compiler Collection (GCC)".
+       * config/rs6000/secureplt.h: New file.
+       * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
+       (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
+       assembler support.
+       (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
+       (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
+       (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
+       * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
+       * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
+       * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
+       TARGET_SECURE_PLT got register load sequence.
+       (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
+       TARGET_SECURE_PLT.
+       (rs6000_elf_declare_function_name): Don't emit toc address offset
+       word when TARGET_SECURE_PLT.
+       * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
+       (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
+       (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
+       (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
+       TARGET_SECURE_PLT.
+       (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
+       sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
+       and -fPIC.
+       * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
+       (__trampoline_setup): Likewise.  Init r30 before plt call.
+
+2005-05-31  DJ Delorie  <dj@redhat.com>
+
+       * expr.c (convert_move): When a partial_int requires multiple
+       conversion steps, make sure successive steps convert the
+       intermediate value, not the original value.
+
+       * expmed.c (expand_mult): Convert partial_int multiplies to
+       shift/add combinations too.
+
+       * genmodes.c (mode_data): Add wider_2x.
+       (calc_wider_mode): Calculate twice-wider mode too.
+       (emit_mode_wider): Emit twice-wider mode too.
+       * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
+       * expr.c (expand_expr_real_1): Use it for expanding
+       multiplies.
+
+2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/21817
+       * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
+
+2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
+       change.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/20931
+       PR middle-end/20946
+       * fold-const.c (fold_checksum_tree): Copy types also if
+       TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
+       Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
+       first.
+       Tail recurse TREE_LIST's TREE_CHAIN.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/21732
+       * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
+       SSA_NAME twice and cause the loop to become finite.  Remove the test
+       for val.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
+       expression.
+
+2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
+       the documentation to make it more future-proof.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
+       * target.h (gcc_target): Add check_pch_target_flags.
+       * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
+       (TARGET_INITIALIZER): Include it.
+       * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
+       * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
+       * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
+       (sh_check_pch_target_flags): New function.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
+
 2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
 
        * fold-const.c (extract_array_ref): Handle more cases,