OSDN Git Service

Index: ChangeLog
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 44fbfdb..dc429c2 100644 (file)
@@ -1,3 +1,468 @@
+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