OSDN Git Service

2005-10-20 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 552e4f5..e3a9a8f 100644 (file)
@@ -1,3 +1,478 @@
+2005-10-20  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/24439
+       * fold-const.c (invert_truthvalue): Handle COND_EXPR with
+       void type operands.
+
+2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR rtl-optimization/23585
+       * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
+       (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
+       (may_trap_p_1): New predicate extracted from...
+       (may_trap_p): ... here.  Invoke may_trap_p_1.
+       (may_trap_or_fault_p): New predicate.
+       * rtl.h (may_trap_or_fault_p): Declare it.
+       * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
+       instead of may_trap_p.
+       (steal_delay_list_from_fallthrough): Likewise.
+       (fill_simple_delay_slots): Likewise.
+       (fill_slots_from_thread): Likewise.
+       * function.c (pad_to_arg_alignment): Rework comment about
+       SPARC_STACK_BOUNDARY_HACK.
+       * config/sparc/sparc.h: Likewise.
+
+2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.c (s390_expand_insv): New.
+       * config/s390/s390-protos.h (s390_expand_insv): Declare.
+       * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
+       ("icm_hi"): Remove mode attribute.
+       ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
+       Adjust all uses.
+       ("*extracthi", "*extractqi"): Remove.
+       (extv<mode>", "*extzv<mode>"): New.
+       ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
+       "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
+
+2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * cfgexpand.c (discover_nonconstant_array_refs_r,
+       discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
+       (tree_expand_cfg): Call discover_nonconstant_array_refs.
+       * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
+       discover_nonconstant_array_refs.
+
+2005-10-19  Steven Bosscher  <stevenb@suse.de>
+
+       PR c/23228
+       * c-decl.c (pop_scope): Don't warn about an unused variable
+       if it is marked with TREE_NO_WARNING.
+       (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
+       somenow mismatch and olddecl is to be replaced.
+
+2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR middle-end/23199
+       * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
+       whether registers live on the edge can be saved/restored.
+
+2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (fixup_mova): Skip notes.
+
+2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
+       * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
+       (s390_can_eliminate): Handle BASE_REGNUM elimination.
+       (s390_initial_elimination_offset): Likewise.
+       (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
+       register on TARGET_ZARCH targets.
+       * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
+       (INITIAL_FRAME_POINTER_OFFSET): Remove.
+       (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
+       (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
+
+2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.md: Comment describing output modifiers updated.
+       * config/s390/s390.c (print_operand): Likewise.
+
+2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.c (override_options): Added check for -mstack-size
+       64k limitation.
+       * doc/invoke.texi: Mention that limit in the documenation.
+
+2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR #19672
+       * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
+
+2005-10-18  Daniel Berlin <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/24231
+
+       * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
+       (compute_avail): Ditto.
+
+2005-10-18  Richard Henderson  <rth@redhat.com>
+
+       PR target/24428
+       * config/i386/i386.c (legitimate_constant_p): Check
+       SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
+       if LABEL_REF.
+       (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
+       (legitimate_pic_address_disp_p): Reorg CONST checking to make
+       sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
+       directly.
+       (print_operand_address): Likewise.
+       * config/i386/predicates.md (x86_64_immediate_operand): Test
+       SYMBOL_REF_TLS_MODEL properly inside CONST.
+       (x86_64_zext_immediate_operand): Likewise.
+       (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
+       initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
+       * config/i386/i386-protos.h: Remove predicates.md entries.
+
+2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
+       Check that elements of TYPE_METHODS are FUNCTION_DECLs.
+
+2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
+            Ian Lance Taylor <ian@airs.com>
+
+       PR middle-end/23522
+       * fold-const.c (fold_widened_comparison): Do not allow range based
+       constant folding when right operand cannot be unwidened.
+
+2005-10-17  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (expand_builtin_synchronize): Build a new-style asm
+       with a memory clobber.
+
+2005-10-17  James E Wilson  <wilson@specifix.com>
+
+       PR rtl-optimization/17356
+       * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
+       checking for EDGE_EH.
+
+2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
+       the slot on an even boundary for any type with 16-byte alignment.
+
+2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/23424
+       * md.texi (Modifiers) <%>: Clarify that % doesn't work
+       after register allocation.
+
+2005-10-17  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
+       as frame related.
+
+2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/22551
+       * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
+       overflow flags.
+
+2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
+       to 2 if it's already non-zero.
+       (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
+       is set and warn about it if flag_schedule_insns is 1.
+
+2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
+
+       * config/crx/crx.md: Compare-and-branch instructions need to
+       invalidate CC.
+
+2005-10-17  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/24315
+       * config/i386/i386.md (*pushdi2_rex64 splitter)
+       (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
+       (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
+       flow2 pass only when (optimize > 0 && flag_peephole2).
+
+2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR driver/22544
+       * gcc.c (have_c): New static variable.
+       (have_o): Likewise.
+       (process_command): Remove declation of have_c.
+       Set have_o to 1 when handling -o.
+       (main): Add a fatel error if there are multiple
+       files specified and -o and -c/-S is passed witout
+       -combine or multiple languages.
+
+2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/22444
+       * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
+       Assert that we don't hit something with subvars.
+       (setup_pointers_and_addressables): Don't add things with subvars,
+       because we'll already process the subvars for aliasing purposes.
+
+2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/23424
+       * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
+       ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
+       ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
+       ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
+       ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
+       swapped, alternatives for the R constraint.
+
+       PR middle-end/24341
+       * builtins.c (get_builtin_sync_mode): Make unlimited
+       mode_for_size request.
+
+2005-10-15  Richard Henderson  <rth@redhat.com>
+
+       * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
+       (gimplify_expr): ... here.
+       (gimplify_compound_lval): Use it in initial scan loop.  Allow
+       fb_lvalue in base expression.
+
+2005-10-15  Richard Henderson  <rth@redhat.com>
+
+       PR 23714
+       * builtins.c (expand_builtin_trap): Export.
+       * expr.h (expand_builtin_trap): Declare.
+       * expr.c (expand_assignment): Emit a trap for integral offsets 
+       from registers that weren't reduced to bitpos.
+
+       * tree-cfg.c (mark_array_ref_addressable_1): Remove.
+       (mark_array_ref_addressable): Remove.
+       * tree-flow.h (mark_array_ref_addressable): Remove.
+       * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
+
+2005-10-15  James E Wilson  <wilson@specifix.com>
+
+       PR target/24232
+       * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
+       (add_dependence_list_and_free): Likewise.
+       (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
+       call.
+
+2005-10-15  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 23141
+       PR 23142
+       * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
+       sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
+       anti-range.
+       (vrp_visit_phi_node): Only prevent infinite iterations when
+       the previous result and the new result are both VR_RANGEs.
+
+2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
+
+       * tree-into-ssa.c (mark_def_sites): Correct minor typo in
+       function comment.
+
+2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c/23439
+       * c-parser.c (c_parser_for_statement): Use location of RID_FOR
+       to initialize loc.
+
+2005-10-14  Per Bothner  <per@bothner.com>
+
+       PR preprocessor/21250
+       * c-ppoutput.c (print_line): Print internal line 0 as 1.
+
+2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/22551
+       * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
+       overflow flags.  Refactor some conditionals.
+
+2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/21304
+       * tree-dfa.c (add_referenced_var): Only look at decls which
+       have TREE_CONSTANT or TREE_READONLY set instead of if
+       !TREE_PUBLIC or !TREE_CONSTANT.
+
+2005-10-13  James E Wilson  <wilson@specifix.com>
+
+       * doc/invoke.texi: For -x, add f95-cpp-input.
+       * doc/install.texi: For --enable-languages doc, change f95 to fortran.
+
+2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       PR tree-optimization/24262
+       * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
+       in loop all the time.
+
+2005-10-12  Richard Henderson  <rth@redhat.com>
+
+       PR c/24255
+       * tree.h (DECL_TRANSPARENT_UNION): Remove.
+       * function.c (assign_parm_find_data_types): Don't support it.
+       * print-tree.c (print_node): Likewise.
+       * c-common.c (handle_transparent_union_attribute): Likewise.
+       Use build_duplicate_type.
+       * tree-inline.c (remap_type_1): Split out of remap_type;
+       properly remap aggregate fields.
+       (build_duplicate_type): New.
+       * doc/extend.texi (Variable Attributes): Remove documentation
+       for transparent_union.
+
+2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/24284
+       * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
+       (gen_stack_pointer_dec): Likewise.
+
+2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR middle-end/21275
+       PR middle-end/21766
+       * target.h (struct gcc_target): Add valid_dllimport_attribute_p
+       target hook.
+       (struct cxx): Add adjust_class_at_definition target hook.
+       * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
+       defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
+       (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to 
+       hook_void_tree. Add to TARGET_CXX.
+       * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
+       dllimport_flag.
+       (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
+       * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
+       instead of attribute. Check for dllexport override.  Warn if
+       inconsistent dll linkage. Don't lose old dllimport if decl has
+       had address referenced.   Tweak lookup of dllimport atribute.  
+       (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
+       for target specific rules.  Don't add dllimport attribute if
+       DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
+       dllimport attribute. 
+       (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
+       * varasm.c (initializer_constant_valid_p): Replace
+       DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
+
+       PR target/21801
+       PR target/23589
+       * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 
+       'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
+       (i[34567]86-*-mingw32*): Likewise.
+
+       * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
+       (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
+                       
+       * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
+       C++-specific code. Change return value to bool. 
+       (i386_pe_dllimport_p): Likewise.
+       (associated_type): Simplify and make language-independent
+       (i386_pe_encode_section_info): Replace override of ambiguous
+       dllimport symbol refs with a gcc_assert.
+       (i386_pe_valid_dllimport_attribute_p): Define.
+       * config/i386/winnt-cxx.c: New file. Define C++ versions of
+       i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
+       i386_pe_adjust_class_at_definition.
+       * config/i386/winnt-stubs.c: New file. Define stub versions of
+       lang-specific functions.
+       * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
+       i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, 
+       i386_pe_adjust_class_at_definition.
+       (i386_pe_valid_dllimport_attribute_p): Declare. 
+       * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
+       (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
+       * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
+
+       PR target/19704
+       * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
+       dllimport attribute with test of DECL_DLLIMPORT_P.
+
+2005-10-12  Adrian Straetling <straetling@de.ibm.com>
+
+       * combine.c (make_extraction): Correct offset computation.
+
+2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/t-linux (LIMITS_H_TEST): Define.
+
+2005-10-12  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/23324
+       * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
+
+2005-10-12  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
+
+2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/19964
+       * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
+       DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
+       type.
+
+2005-10-12  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/23799
+       * varasm.c (output_constant): Correct typo from previous
+       patch by DJ.
+
+2005-10-11  Ian Lance Taylor  <ian@airs.com>
+
+       PR rtl-optimization/13931
+       * combine.c: Revert patch of 2003-05-14, and:
+       (try_combine): Only set elim_i1 and elim_i2 if the destination is
+       completely killed in the appropriate insn.
+       (distribute_notes): Don't skip multiple hard register test for
+       elim_i1 and elim_i2.
+
+2005-10-11  Richard Henderson  <rth@redhat.com>
+
+       PR c/24255
+       * c-typeck.c (convert_for_assignment): Use build_constructor_single
+       to initialize a transparent union instead of a nop_expr.
+
+2005-10-11  Richard Henderson  <rth@redhat.com>
+
+       * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
+       * tree-ssa-dce.c: Include tree-scalar-evolution.h.
+       (tree_ssa_dce_loop): Call scev_reset.
+
+       PR tree-opt/24300
+       * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
+       * tree-ssa-dce.c: Include cfgloop.h.
+       (tree_ssa_dce_loop, pass_dce_loop): New.
+       * tree-pass.h (pass_dce_loop): Declare it.
+       * passes.c (init_optimization_passes): Use it.
+
+2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR middle-end/24263 
+       * convert.c (convert_to_real): Revert 2005-10-05 patch.
+       Only apply the optimization for rounding builtins if the inner
+       cast is also an extension.
+
+2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/23946
+       * tree-ssa-ccp.c (execute_fold_all_builtins): Call
+       mark_new_vars_to_rename instead of update_stmt.
+
+2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
+
+2005-10-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
+       for setting MMX register to 0 rather than mmx.
+
+2005-10-10  Steve Ellcey  <sje@cup.hp.com>
+
+       PR target/12098
+       * configure.ac: Move gas check from mips specific case to common case.
+       Do check for GNU as for mips*-*-* and *-*-hpux* targets.
+       * configure: Regenerate
+       * doc/install.texi: Update.
+
+2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/24284
+       * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
+
+2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * gcc.c (do_spec_1): Accept numeric characters in file name
+       suffixes.
+
+2005-10-10  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
+       describing the deleted arm_gen_rotated_half_load function.
+
 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
        
        * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
-        change.
+       change.
 
 2005-10-06  Richard Henderson  <rth@redhat.com>
 
 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
 
        PR target/23847
-        * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
-        for __complex__ double in -mcpu=G5 mode.
+       * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
+       for __complex__ double in -mcpu=G5 mode.
 
 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
 
 
 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
 
-        * combine.c (make_extraction): Check for valid use of subreg.
+       * combine.c (make_extraction): Check for valid use of subreg.
 
 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
 
 
 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
 
-        PR target/24007
-        * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
-        registers when choosing register preferences.
-        (movdf_hardfloat64): Same.
+       PR target/24007
+       * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
+       registers when choosing register preferences.
+       (movdf_hardfloat64): Same.
 
 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>