+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,