+2005-06-13 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.in (install-man): Doesn't really depend on installdirs.
+ (various rules for installing manpages): Do depend on installdirs.
+
+2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
+
+ * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
+ read_encoded_value_with_base call.
+ * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
+ * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
+ * unwind-dw2.c (extract_cie_info): Fix aliasing in
+ read_encoded_value call.
+ (execute_cfa_program, uw_frame_state_for): Likewise.
+
+2005-06-13 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/22053
+ * reg-stack.c (compensate_edge): Correct mistake in the assertion
+ checking of EDGE_ABNORMAL_CALL edges; complex return values can
+ result in the top two stack slots, st(0) and st(1), being live.
+
+2005-06-13 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
+ simplify DIV, MOD or ABS expressions using VRP information.
+ Remove WALK_DATA parameter. Prototype and all callers updated.
+ (eliminate_redundant_computations): Remove WALK_DATA parameter.
+ Prototype and all callers updated.
+ (optimize_stmt): WALK_DATA parameter is now unused.
+
+ * tree-vrp.c (local_fold): New function. Like fold, but
+ strips useless type conversions in the result.
+ (simplify_using_ranges): New function, largely cribbed from
+ tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
+ (vrp_finalize): Call simplify_using_ranges.
+
+2005-06-13 Mark Mitchell <mark@codesourcery.com>
+
+ * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
+ assembler in 64-bit mode.
+
+2005-06-13 David Edelsohn <edelsohn@gnu.org>
+
+ Revert scc_operand patch.
+ * config/rs6000/predicates.md (scc_operand): Delete.
+ * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
+
+2005-06-13 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-expr.c (gfc_conv_function_call): Return int instead of
+ void. Use a local variable for has_alternate_specifier and
+ return it. Avoid modification of function type's return value
+ in place, since it may be shared.
+ * trans.h (has_alternate_specifier): Remove.
+ (gfc_conv_function_call): Change return type.
+ * trans-stmt.c (has_alternate_specifier): Remove.
+ (gfc_trans_call): Add a local has_alternate_specifier variable,
+ set it from gfc_conv_function_call return value.
+
+2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR middle-end/21985
+ * fold-const.c (split_address_to_core_and_offset): Always return
+ the address of the base object.
+
+2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
+
+2005-06-12 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/21994
+ * tree-complex.c (update_complex_components_on_edge): New.
+ (update_parameter_components): Use it.
+ (update_phi_components): Likewise.
+ (expand_complex_move): Likewise for is_ctrl_altering_stmt.
+
+2005-06-12 James A. Morrison <phython@gcc.gnu.org>
+
+ PR tree-optimization/14796
+ * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
+ for unsigned types.
+
+2005-06-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * cgraphunit.c, tree-ssa-loop-ivopts.c,
+ tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
+ config/sparc/sparc.c: Fix comment typos.
+
+2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
+
+ * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
+ (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
+ * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
+ (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
+
+2005-06-12 James A. Morrison <phython@gcc.gnu.org>
+
+ PR tree-optimization/14796
+ * fold-const.c (fold_binary): Transform (A >> C) << C into
+ one BIT_AND_EXPR.
+ <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
+
+2005-06-11 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
+ (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
+ Handle SImode.
+ (reg_or_sub_cint_operand): Likewise.
+ (mask_operand): Handle DImode.
+ (mask64_operand): Delete.
+ (and64_operand): Delete.
+ * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
+ instead of mask64_operand.
+ (print_operand): Likewise.
+ (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
+ reg_or_sub_cint_operand instead of *64_* variants.
+ * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
+ instead of mask64_operand.
+ * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
+ of *64_* variants.
+ (FP): New.
+ (add_op2): Delete.
+ (add<mode>3): Use reg_or_add_cint_operand.
+ (sub_op2): Delete.
+ (sub<mode>3): Use reg_or_sub_cint_operand.
+ (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
+ mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
+ cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
+ ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
+ ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
+ return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
+ various unnamed patterns): New.
+ (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
+ cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
+ ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
+ return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
+ udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
+ cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
+ ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
+ return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
+ movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
+ Delete.
+
+2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * rtl.h (to_rtx_code): Remove.
+ * machmode.h (to_machine_mode): Likewise.
+ * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
+ explicit cast.
+ (apply_mode_maps): Likewise.
+ (read_rtx_1): Likewise.
+ (apply_code_macro): Replace to to_rtx_code with explicit cast.
+ (check_code_macro): Likewise.
+ (read_rtx_1): Likewise.
+
+2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-typeck.c (convert_for_assignment): Avoid checking
+ OPT_Wc___compat, as it is always true.
+
+2005-06-11 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
+
+2005-06-11 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/22005
+ Fix PR tree-optimization/22025
+
+ * tree-ssa-structalias.c (struct variable_info): Add has_union
+ member.
+ (create_variable_info_for): Mark variables containing unions.
+ Don't sort the field stack if notokay is true.
+ (find_what_p_points_to): Convert variables containing unions back
+ to their SFT's if necessary.
+
+2005-06-11 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
+ is an INTEGER_CST before calling int_cst_value.
+
+2005-06-10 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/21981
+ * config/i386/i386.c (ix86_function_value_regno_p): Return true
+ for FIRST_MMX_REG if TARGET_MMX.
+ (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
+ wrong comment.
+ (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
+ (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
+
+2005-06-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
+ and access function against chrec_dont_know.
+
+2005-06-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
+ slightly.
+ (exit_phi_for_loop_p): New function.
+ (can_put_in_inner_loop): Ditto.
+ (can_convert_to_perfect_nest): Ditto.
+ (perfect_nestify): Create iv with right type.
+ Rewrite statements in correct order.
+
+2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
+
+ * tree-ssa-alias.c (new_type_alias): Use existing type
+ tag if VAR has just one in its may_aliases list.
+
+2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
+
+ * rs6000/predicates.md (scc_operand): New.
+ * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
+
+2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
+ dependence-distance modulo VF is 0 are recorded in the
+ SAME_ALIGN_REFs VEC in each DR.
+ (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
+ alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
+ DR we want to peel for, is set to 0.
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
+ * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
+ VEC.
+ * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
+ (_stmt_vec_info): Added new field same_align_refs.
+ (STMT_VINFO_SAME_ALIGN_REFS): New macro.
+
+2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
+
+ * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
+
+2005-06-10 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
+ * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
+ * config/rs6000/rs6000.c (output_function_profiler): Obey
+ NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
+ for -fPIC. Delete save_lr and substitute its value into strings.
+
+2005-06-09 Dale Johannesen <dalej@apple.com>
+
+ * config/i386/i386.c (optimization_options): Make -fno-math-errno
+ the default on Darwin.
+ * config/rs6000/rs6000.c (optimization_options): Ditto.
+ * doc/invoke.texi (-fno-math-errno): Document.
+
+2005-06-09 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
+ Change to TARGET_INVALID_WITHIN_DOLOOP.
+
+2005-06-09 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
+ * config/rs6000/predicates.md (scc_eq_operand): New.
+
+2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.md (mextr_rl): Set buffer size properly.
+ (*mextr_lr): Likewise.
+
+2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c/21759
+ * c.opt (Wc++-compat): New.
+ * doc/invoke.texi (-Wc++-compat): Document.
+ * c-typeck.c (convert_for_assignment): Check for implicit
+ conversion void* -> T*.
+
+2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
+
+ * machmode.h (to_machine_mode): New.
+ * rtl.h (to_rtx_code): Likewise.
+ * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
+ (print_c_condition): Convert return value of htab_find().
+ (apply_code_macro): Add explicit cast when convertin to enums.
+ (apply_mode_maps): Likewise.
+ (check_code_macro): Likewise.
+ (read_rtx_1): Likewise.
+
+2005-06-09 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
+ Use SCALAR_FLOAT_MODE_P.
+ * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
+ (fselect): Rename from fpcmp; use %F.
+ (fpcmp): New.
+
+2005-06-09 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
+ local statics when doing unit-at-a-time.
+ (cgraph_varpool_assemble_pending_decls): Output debug info.
+ * dwarf2out.c (decls_for_scope): Skip local statics.
+ (dwarf2out_decl): Handle local statics.
+ * passes.c (rest_of_decl_compilation): Do not differentiate
+ local and global statics in unit-at-a-time.
+ * tree-inline.c (remap_decls): Put local static into
+ unexpanded_vars_list rather than introducing duplicated VAR_DECL
+ node.
+
+2005-06-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
+ prototype.
+
+2005-06-08 Daniel Berlin <dberlin@dberlin.org>
+
+ * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
+ * tree-flow.h (find_what_p_points_to): Add prototype.
+ (push_fields_onto_fieldstack): Ditto.
+ (sort_fieldstack): Ditto.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_build_pta and pass_del_pta.
+ * tree-pass.h (pass_build_pta): New structure.
+ (pass_del_pta): Ditto.
+ * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
+ using new alias analyzer.
+ (push_fields_onto_fieldstack): Removed from here.
+ (bitpos_of_field): Ditto.
+ (fieldoff_compare): Ditto.
+ * tree-ssa-structalias.c: New file.
+ * tree-ssa-structalias.h: Ditto.
+
+2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
+ too.
+
+2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
+ * config/bfin/bfin.h (enum bfin_builtins): ... here.
+
+2005-06-09 Adrian Straetling <straetling@de.ibm.com>
+
+ * target.h (insn_valid_within_doloop): Rename into
+ "invalid_within_doloop". Change return type to "const char *".
+ Update Comment.
+ * targhooks.h (default_insn_valid_within_doloop): Rename into
+ "default_invalid_within_doloop".
+ * targhooks.c (default_insn_valid_within_doloop): Likewise.
+ Update Comment.
+ * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
+ into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
+ "default_invalid_within_doloop".
+ * hooks.c (hook_constcharptr_rtx_null): New function.
+ (hook_bool_rtx_true): Remove.
+ * hooks.h (hook_constcharptr_rtx_null): Declare.
+ (hook_bool_rtx_true): Remove.
+ * loop-doloop.c (doloop_valid_p): Temporarily store return value of
+ "invalid_within_doloop" and print error message if non-null.
+ Update Comment.
+ * doc/tm.texi: Update documentation.
+ * config/s390/s390.c: Adjust to new hook name and new default hook.
+ * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
+ into "rs6000_invalid_within_doloop".
+ (rs6000_invalid_within_doloop): Change return type to "static const
+ char *" and replace return values. Update Comment.
+
+2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.opt (mlong-calls): New.
+ * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
+ if TARGET_LONG_CALLS.
+
+2005-06-09 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/20610
+ * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
+ (struct tree_decl): Add gimple_reg_flag.
+ * integrate.c (copy_decl_for_inlining): Copy it.
+ * gimplify.c (internal_get_tmp_var): Set it.
+ (gimplify_bind_expr): Likewise.
+ (gimplify_function_tree): Likewise.
+ (gimplify_modify_expr_complex_part): New.
+ (gimplify_modify_expr): Use it.
+ * tree-gimple.c (is_gimple_reg_type): Allow complex.
+ (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
+
+ * tree-complex.c (complex_lattice_t): New.
+ (complex_lattice_values, complex_variable_components): New.
+ (some_nonzerop, find_lattice_value, is_complex_reg,
+ init_parameter_lattice_values, init_dont_simulate_again,
+ complex_visit_stmt, complex_visit_phi, create_components,
+ update_complex_components, update_parameter_components,
+ update_phi_components, update_all_vops, expand_complex_move): New.
+ (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
+ SSA_NAME.
+ (update_complex_assignment): Use update_complex_components;
+ handle updates of return_expr properly.
+ (expand_complex_addition): Use complex lattice values.
+ (expand_complex_multiplication): Likewise.
+ (expand_complex_division): Likewise.
+ (expand_complex_libcall): Use update_complex_components.
+ (expand_complex_comparison): Use update_stmt.
+ (expand_complex_operations_1): Use expand_complex_move, retrieve
+ lattice values.
+ (tree_lower_complex): Compute lattice values.
+ (tree_lower_complex_O0): Duplicate from tree_lower_complex.
+ (pass_lower_complex_O0): Rename from pass_lower_complex.
+ (pass_lower_complex, gate_no_optimization): New.
+ * tree-optimize.c (init_tree_optimization_passes): Update for
+ complex pass changes.
+ * tree-pass.h (pass_lower_complex_O0): Declare.
+
+2005-06-08 Dale Johannesen <dalej@apple.com>
+
+ * config/darwin.c (darwin_binds_local_p): New.
+ * config/darwin-protos.h (darwin_binds_local_p): Declare it.
+ * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
+ * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
+ (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
+
+2005-06-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
+ rs6000_isel, rs6000_spe, rs6000_alignment_string,
+ rs6000_sched_restricted_insns_priority_str,
+ rs6000_sched_restricted_insns_priority, rs6000_abi_string.
+
+2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
+ instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
+ * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
+ multiplier_allowed_in_address_p, get_address_cost): Ditto.
+
+2005-06-08 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
+ * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
+ Emit out3 load right after alloc.
+
+2005-06-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
+ rs6000_explicit_options.
+
+2005-06-08 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
+ * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
+ unwind markup.
+ * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
+
+2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/sol2-c.c (cmn_err_char_table): Allow width for %b
+ formats.
+
+2005-06-08 James A. Morrison <phython@gcc.gnu.org>
+
+ PR target/20666
+ * config/sparc/sparc.c (sparc_fold_builtin): New function
+ (sparc_vis_mul8x16): New function.
+ (sparc_handle_vis_mul8x16): New function.
+ (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
+
+2005-06-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
+ CTR to LR.
+ (call_indirect_nonlocal_aix64): Same.
+ (call_value_indirect_nonlocal_aix32): Same.
+ (call_value_indirect_nonlocal_aix64): Same.
+
+ PR target/10588
+ (eq): Use CLZ splitter for compare with zero.
+
+2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
+ everything larger than 8 bytes in memory.
+
+ * config/bfin/bfin.h (enum bfin_builtins): New.
+ * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
+ New constants.
+ (csync, ssync): New insn patterns.
+ * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
+ New functions.
+ (def_builtin): New macro.
+ (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
+
+ From Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
+ behavior of the native assembler in VDSP. So change accordingly.
+
+2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-data-ref.c (compute_estimated_nb_iterations,
+ analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
+ analyze_subscript_affine_affine, find_data_references_in_loop):
+ Fixed to use chrec_contains_undetermined to test the values of
+ loop->estimated_nb_iterations.
+ * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
+ Compute the estimation only when loop->estimated_nb_iterations
+ has not yet been initialized.
+ (convert_step_widening, scev_probably_wraps_p): Add a call to
+ estimate_numbers_of_iterations_loop.
+ * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
+
+2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR debug/21946
+ * dwarf2out.c (add_loc_descr_op_piece): Move to the
+ DWARF2_DEBUGGING_INFO section.
+
+2005-06-08 Richard Henderson <rth@redhat.com>
+
+ PR target/21721
+ * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
+
+2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/21889
+ * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
+ * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
+ (TARGET_ASM_OUT): Add it.
+ * doc/tm.texi (Debugging Info): Document it.
+ * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
+ Test it instead of ASM_OUTPUT_DWARF_DTPREL.
+ (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
+ * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
+ * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
+ * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
+ (gen_inlined_tls_plt): Remove unused variable MEM.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
+ * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+ * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
+ * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
+ unused.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
+ * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+ * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
+ * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
+ unused.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
+ * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+ * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
+ * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
+ unused.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
+ * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+ * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
+ * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
+ unused.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
+ * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+ * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
+ (TARGET_GNU_TLS): Define to 1.
+ * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
+ * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
+ unused.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
+ if TARGET_GNU_TLS only.
+ * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
+
+ * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
+ (sparc-*-solaris2*): Likewise on Solaris 7 and up.
+
+2005-06-07 Dale Johannesen <dalej@apple.com>
+
+ * config/i386/i386.md (movqi_1): Fix case where source
+ is memory and destination EDI.
+
+2005-06-08 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
+
+2005-06-07 Eric Christopher <echristo@redhat.com>
+
+ * system.h: Poison EXTRA_CC_MODES.
+ * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
+ * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
+ * doc/md.texi (Jump Patterns): Replace reference to
+ EXTRA_CC_MODES with machine-modes.def.
+ * doc/rtl.texi (Machine Modes): Ditto.
+
+2005-06-07 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
+ (assemble_start_function): Fix strcmp confusion.
+
+2005-06-07 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.h (enum ix86_entity): New.
+ (enum ix86_stack_slot): New.
+ (OPTIMIZE_MODE_SWITCHING): Redefine to use
+ ix86_optimize_mode_switching[] array.
+ (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
+ (MODE_NEEDED): Use ix86_mode_needed() function.
+ (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
+ function.
+ (struct machine_function): Use optimize_mode_switching[] array.
+
+ * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
+ (ix86_mode_needed): New function.
+ (emit_i387_cw_initialization): Cleanup. Use mode to calculate
+ correct stack positions for stored control words.
+ (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
+ (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
+ SLOT_TEMP.
+ [IX86_BUILTIN_STMXCSR]: Same.
+
+ * config/i386/i386-protos.h (assign_stack_local): Change prototype.
+ (emit_i387_cw_initialization): Change prototype.
+ (ix86_mode_needed): New prototype.
+
+ * config/i386/i386.md (i387_cw attribute): Change order of elements.
+ (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
+ (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
+ (*fist<mode>2_ceil_1): Change constant in call to
+ assign_386_stack_local to SLOT_TEMP.
+ (*fix_trunc<mode>_i387_1): Change constant in call to
+ assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
+ Use new ix86_optimize_mode_switching[] array.
+ (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
+ assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
+ Use new ix86_optimize_mode_switching[] array.
+ (frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
+ assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
+ Use new ix86_optimize_mode_switching[] array.
+ (frndintxf2_trunc): Change constants in call to
+ assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
+ Use new ix86_optimize_mode_switching[] array.
+ (frndintxf2_mask_pm): Change constants in call to
+ assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
+ Use new ix86_optimize_mode_switching[] array.
+
+ (define_peephole2): Change constant from 17 to FLAGS_REG;
+
+2005-06-07 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/21528
+ * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
+
+2005-06-07 Dale Johannesen <dalej@apple.com>
+
+ * tree-nested.c (finalize_nesting_tree_1): Disable
+ warn_padded around layout_type call.
+
+2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
+ before emiting it.
+
+2005-06-07 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/predicates.md: Revert previous patch.
+
+2005-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/21850
+ * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
+ from vector types.
+
+2005-06-07 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
+ (thread_stats): New local variable.
+ (redirect_edges): Increment count of threaded edges.
+ (thread_through_all_blocks): Initialize thread_stats.
+ Display number of threaded jumps if TDF_STATS is enabled.
+
+2005-06-07 Kazu Hirata <kazu@codesourcery.com>
+
+ * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
+ the current bit index with no modulo.
+
+2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
+
+ PR 18403 and meta PR 21861.
+ * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
+ * tree-chrec.c: Include cfgloop.h and tree-flow.h.
+ (evolution_function_is_invariant_rec_p,
+ evolution_function_is_invariant_p): New.
+ (chrec_convert): Use an extra parameter AT_STMT for refining the
+ information that is passed down to convert_step. Integrate the
+ code that was in count_ev_in_wider_type.
+ * tree-chrec.h (count_ev_in_wider_type): Removed.
+ (chrec_convert): Modify its declaration.
+ (evolution_function_is_invariant_p): Declared.
+ (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
+ * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
+ (scev_probably_wraps_p): Declared.
+ * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
+ (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
+ Use an extra parameter AT_STMT for refining the information that is
+ passed down to convert_step.
+ (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
+ analyze_scalar_evolution_1): Initialize AT_STMT with the current
+ analyzed statement.
+ (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
+ * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
+ can_count_iv_in_wider_type to use convert_step.
+ * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
+ code that is independent of the loop over the known iteration
+ bounds to convert_step_widening, the rest is moved to
+ proved_non_wrapping_p.
+ (scev_probably_wraps_p): New.
+ (can_count_iv_in_wider_type): Renamed convert_step.
+ * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
+ Use scev_probably_wraps_p for computing init_is_max.
+ (vrp_visit_assignment): Pass the current analyzed statement to
+ adjust_range_with_scev.
+ (execute_vrp): Call estimate_numbers_of_iterations for refining the
+ information provided by scev analyzer.
+
+2005-06-07 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/predicates.md (sleu_operand): Use
+ IN_RANGE to specify range of operand.
+
+2005-06-07 Steven Bosscher <stevenb@suse.de>
+
+ PR tree-optimization/21847
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
+ -fnon-call-exceptions, also mark statements inherently
+ necessary if they may throw.
+
+2005-06-07 Adrian Straetling <straetling@de.ibm.com>
+
+ * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
+ ("type"): Add "sem" to 'type' attribute.
+ ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
+ "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
+ "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
+ "*sync_compare_and_swap_ccsi"): New patterns.
+ * config/s390/2064.md: ("z_sem"): New insn_reservation.
+ * config/s390/2084.md: ("x_sem"): New insn_reservation.
+ * config/s390/s390.c: (s390_compare_emitted): New global variable.
+ (s390_emit_compare): Do not emit comparison again after cas.
+ * config/s390/s390.h (s390_compare_emitted): Declare.
+
+2005-06-07 Kazu Hirata <kazu@codesourcery.com>
+
+ * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
+ sbitmap_iter_cond, sbitmap_iter_next): New.
+ * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
+ modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
+ tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
+ uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
+
+2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-address.c: New file.
+ * Makefile.in (tree-ssa-address.o): Add.
+ * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
+ INDIRECT_REFs. Handle TARGET_MEM_REFs.
+ * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
+ * tree-flow.h (struct mem_address): New.
+ (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
+ (create_mem_ref, addr_for_mem_ref, get_address_description,
+ maybe_fold_tmr, multiplier_allowed_in_address_p,
+ multiply_by_cost): Declare.
+ * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
+ * tree-pretty-print.c (dump_generic_node): Ditto.
+ * tree-ssa-loop-im.c (for_each_index): Ditto.
+ * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
+ find_interesting_uses_address): Ditto.
+ (rewrite_address_base, build_addr_strip_iref): Removed.
+ (struct affine_tree_combination): Moved to tree-flow.h.
+ (get_ref_tag, copy_ref_info): New functions.
+ (rewrite_use_address): Produce TARGET_MEM_REFs.
+ (tree_ssa_iv_optimize): Do not call update_ssa
+ and rewrite_into_loop_closed_ssa.
+ (tree_to_aff_combination): Use build_fold_addr_expr instead of
+ build_addr_strip_iref.
+ (unshare_aff_combination): New function.
+ (fold_affine_sum): Removed.
+ (get_computation_at): Use get_computation_aff. Unshare the result.
+ (get_computation_aff, multiplier_allowed_in_address_p): New function.
+ (multiply_by_cost): Exported.
+ (get_address_cost): Use multiplier_allowed_in_address_p.
+ * tree-ssa-operands.c (get_tmr_operands): New function.
+ (get_expr_operands): Handle TARGET_MEM_REFs.
+ * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
+ (build): Handle 7 arguments.
+ (build7_stat): New function.
+ * tree.def (TARGET_MEM_DEF): New.
+ * tree.h (REF_ORIGINAL): Removed.
+ (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
+ TMR_TAG, build7): New macros.
+ (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
+ * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
+ * doc/c-tree.texi: Document TARGET_MEM_REF.
+ * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
+
+2005-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/21946
+ * dwarf2out.c (add_loc_descr_op_piece): New function.
+ (multiple_reg_loc_descriptor, concat_loc_descriptor,
+ loc_descriptor): Use it.
+ * var-tracking.c: Include regs.h and expr.h.
+ (emit_note_insn_var_location): Skip over pieces where offset
+ is smaller than previous offset plus previous piece mode size.
+ Optimize adjacent hard registers or memory locations.
+ * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
+
+2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
+ for COND_EXPR.
+ * gimplify.c (gimplify_cond_expr): No need to fix up the
+ type of COND_EXPRs.
+
+2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
+ comments.
+
+2005-06-07 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/host-darwin.c (segv_handler): Widen the possible
+ 'stwux' instructions that are considered to be stack decrements.
+
+ * rtlanal.c (subreg_offset_representable_p): Handle objects
+ with holes.
+
+2005-06-06 Uros Bizjak <uros@kss-loka.si>
+
+ * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
+ in call to pre_edge_lcm.
+
+2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
+ (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
+ (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
+ Likewise.
+ (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
+ dwarf register number for SHmedia.
+ (shmedia_fallback_frame_state): New.
+ (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
+
+ * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
+
+2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-lex.c (lex_string): Use XOBFINISH.
+ * collect2.c (extract_string, dump_file): Likewise.
+ * dbxout.c (dbxout_finish_complex_stabs): Likewise.
+ * gcc.c (init_spec, build_search_list, convert_filename,
+ set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
+ * genpreds.c (write_predicate_subfunction): Likewise.
+ * genflags.c (main): Likewise.
+ * read-rtl.c (mode_attr_index, apply_macro_to_string,
+ join_c_conditions, read_quoted_string, read_braced_string,
+ read_rtx_1): Likewise.
+ * stringpool.c (ggc_alloc_string): Likewise.
+ * tlink.c (obstack_fgets, recompile_files): Likewise.
+
+2005-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * intl.h (G_): New macro.
+ * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
+ instead of msgid for argument name.
+ * tree-ssa.c (warn_uninit): Likewise.
+ * c-parser.c (c_parser_error): Likewise.
+ * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
+ * config/darwin-c.c (BAD): Likewise.
+ * config/c4x/c4x-c.c (BAD): Likewise.
+ * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
+ * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
+ * c-common.c (c_parse_error): Likewise.
+ * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
+ warning0, pedwarn, error, sorry, fatal_error, internal_error):
+ Likewise.
+ (fnotice): Use cmsgid instead of msgid for argument name.
+ * gcov.c (fnotice): Likewise.
+ * protoize.c (notice): Likewise.
+ * final.c (output_operand_lossage): Likewise.
+ * gcc.c (fatal, notice): Likewise.
+ (error): Use gmsgid instead of msgid for argument name.
+ * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
+ of msgid for argument name.
+ (error): Use gmsgid instead of msgid for argument name.
+ * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
+ instead of N_().
+ * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
+ * tree-inline.c (inline_forbidden_p_1): Likewise.
+ * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
+ conventions for marking translations.
+ * doc/install.texi: Mention gettext 0.14.5 or later requirement.
+
+ * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
+ build2.
+
+ * fold-const.c (operand_equal_p): Don't return 1, if element
+ chains for 2 VECTOR_CSTs are not the same length.
+
+ PR regression/21897
+ * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
+ not all VECTOR_CST elements are given.
+
+ * combine.c (try_combine): Use hard_regno_nregs array instead of
+ HARD_REGNO_NREGS macro.
+ * config/rs6000/rs6000.c (rs6000_split_multireg_move,
+ rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
+ * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
+
+2005-06-06 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-reassoc.o: New.
+ (OBJS-common): Add tree-ssa-reassoc.o
+ * timevar.def: Add TV_TREE_REASSOC
+ * tree-optimize.c (pass_reassoc): Add call.
+ * tree-pass.h (pass_reassoc): Add.
+ * tree-ssa-reassoc.c: New file.
+
2005-06-06 Eric Christopher <echristo@redhat.com>
target/21927