OSDN Git Service

* tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1a2068f..c0eb165 100644 (file)
@@ -1,3 +1,438 @@
+2005-09-06  Steven Bosscher  <stevenb@suse.de>
+
+       * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
+       form manually.
+       (abs_replacement): Likewise.
+       (pass_phiopt): Remove TODO_update_ssa.
+
+2005-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/23075
+       * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
+       if "return with no value, in function returning non-void" warning
+       has been issued.
+       * tree-cfg.c (execute_warn_function_return): Don't look at
+       RETURN_EXPRs with TREE_NO_WARNING set.
+
+       PR target/22362
+       * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
+       for internal functions doesn't use registers used by global registers
+       variables.  Use fewer register parameters if there are global register
+       variables.
+
+2005-09-06  Olivier Hainque  <hainque@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/14997
+       * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
+       when we would be extracting outside its bit span (bitpos+bitsize
+       larger than its mode), possible with some VIEW_CONVERT_EXPRs from
+       Ada unchecked conversions.
+
+2005-09-06  Steven Bosscher  <stevenb@suse.de>
+
+       * tree-ssa-pre.c (try_look_through_load): New function.
+       (compute_avail): Use it to try to look through loads for some
+       more useful expressions.
+
+2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
+
+       * simplify-rtx.c (simplify_binary_operation_1): Correct the 
+       condition for detecting cases like (a&a) and (a^a).
+
+2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
+
+       * common.opt: Add option ftree-vect-loop-version.
+       * params.def: Add --param vect-max-version-checks.
+       * doc/invoke.texi: Document ftree-vect-loop-version and
+       --param vect-max-version-checks.
+       * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
+       may_misalign_stmts and defines for accessors.
+       * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
+       LOOP_VINFO_MAY_MISALIGN_STMTS.
+       (destroy_loop_vec_info): VEC_free for
+       LOOP_VINFO_MAY_MISALIGN_STMTS.
+       * tree-vect-analyze.c (vect_compute_data_ref_alignment):
+       Update documentation.
+       (vect_update_misalignment_for_peel): New.
+       (vect_enhance_data_refs_alignment): Update to choose loop
+       peeling or loop versioning if appropriate for the (potentially)
+       unaligned data references in the loop.
+       (vect_analyze_data_refs_alignment): Remove call to
+       vect_enhance_data_refs_alignment so the checks can be done
+       earlier.
+       (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
+       and move up call to vect_analyze_data_refs_alignment.
+       * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
+       (vect_transform_loop): Add call to loop_version.
+
+2005-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/23098
+       * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
+       * simplify-rtx.c (constant_pool_reference_p): New function.
+       * rtl.h (constant_pool_reference_p): New prototype.
+       * config/i386/i386.md (pushf split, mov[sdx]f split): Use
+       constant_pool_reference_p in condition and
+       avoid_constant_pool_reference in preparation statements.
+
+2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for 
+       STRICT_LOW_PART SETs.
+
+2005-09-06  Alan Modra  <amodra@bigpond.net.au>
+
+       PR middle-end/21460
+       * except.c (sjlj_emit_function_enter): Find the function begin
+       note even when it's not in first basic block.
+
+2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
+       AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
+       * aclocal.m4: Regenerate.
+
+2005-09-05  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
+       of macro.
+
+2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
+
+       * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
+       config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
+       config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
+       Follow spelling conventions.
+       * doc/invoke.texi: Follow spelling conventions.
+
+2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
+
+       * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
+       * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
+       * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
+
+2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR target/23683
+       * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
+       (output_stack_adjust): Use gen_tmp_stack_mem.
+       (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
+       (sh_set_return_address, sh_allocate_initial_value): Likewise.
+       (sh_get_pr_initial_val): Likewise.
+       (sh_builtin_saveregs): Use gen_frame_mem and change_address.
+       (sh_initialize_trampoline): Likewise.  Also use adjust_address.
+       * sh.md (divsi_inv_m0): Use gen_const_mem.
+       (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
+       (movdf_i4+1): Use gen_tmp_stack_mem.
+       (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
+       (fpu_switch+2): Likewise.
+       (movv4sf_i, movv16sf_i): Use adjust_address.
+       (symGOT_load): Set MEM_NOTRAP_P bit.
+
+2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/23721
+       * pa.c (emit_move_sequence): Fix typo in last change.
+
+2005-09-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/23454
+       * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
+       is true.
+
+2005-09-03  Richard Henderson  <rth@redhat.com>
+           John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/23671
+       * pa.c (emit_move_sequence): Use replace_equiv_address instead of
+       gen_rtx_MEM.
+
+2005-09-02  Nicolas Pitre <nico@cam.org>
+
+       * config/arm/arm.c (arm_legitimize_address): Limit the value passed
+       to bit_count to 32 bits.
+
+2005-08-31  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/23167
+       * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
+       generating synthetic loads from volatile lvalues.
+
+005-09-02  Nick Clifton  <nickc@redhat.com>
+
+       * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
+       __ctzhi2, __clzhi2): New functions.
+
+2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/23547
+       * tree-nested.c (struct var_map_elt): Mark with GTY.
+       (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
+       var_map_elt.
+       (lookup_field_for_decl): Allocate new element in GC memory.
+       (lookup_tramp_for_decl): Likewise.
+       (convert_nl_goto_reference): Likewise
+       (create_nesting_tree): Allocate info in GC memory. Likewise for
+       info->var_map.
+       (free_nesting_tree): Free with ggc_free instead of free.
+       (root): New static variable.
+       (lower_nested_functions): Remove root as local variable.  And zero out
+       root at the end of the function.
+
+2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/20365
+       * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
+       to short.  New member ix.
+       (simplify_plus_minus_op_data_cmp): Break ties using ix member.
+       (simplify_plus_minus): Initialize ix members before calling qsort.
+
+2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/23626
+       * tree-cfg.c (replace_uses_by): Clean up eh info.
+
+2005-09-01  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
+       fprintf.
+
+2005-09-01  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
+       (rs6000_split_multireg_move): Use replace_equiv_address instead of
+       gen_rtx_MEM.
+
+2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
+
+       * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
+       do not issue warning for a variable definition following
+       a declaration.
+
+2005-09-01  Richard Henderson  <rth@redhat.com>
+
+       PR 23668
+       * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
+       conversion to CONST_VECTOR.
+
+2005-09-01  Richard Henderson  <rth@redhat.com>
+
+       PR 23676
+       * reload1.c (reload_as_needed): Check !CALL_P before calling
+       fixup_eh_region_note.
+       * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
+
+2005-09-01  DJ Delorie  <dj@redhat.com>
+
+       * varasm.c (output_constant): Let the target resolve
+       conversions of addresses to non-default pointer sizes.
+
+2005-09-01  Nicolas Pitre <nico@cam.org>
+
+       * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
+       to alow matching ARM pre-indexed addressing mode.
+       (arm_override_options): Remove now irrelevant comment.
+
+2005-09-01  Phil Edwards  <phil@codesourcery.com>
+
+       * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
+       * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
+       * config/i386/vxworks.h:  Likewise.
+       * config/i386/t-vxworksae:  New file, for VxWorks AE.
+       * config/i386/vxworksae.h:  Likewise.
+
+2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       PR tree-optimization/23410
+       * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
+       sequence is not wrapping during the first step.
+
+2005-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/7241
+       * dwarf2out.c (base_type_die): Compare char_type_node with
+       TYPE_MAIN_VARIANT (type), not type.
+
+2005-09-01  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/15366
+       * common.opt: Add -finline-functions-called-once.
+       Put -fearly-inlining in alphabetically ordered place.
+       * doc/invoke.texi: Document new option.
+       * ipa-inline.c (cgraph_decide_inlining): Honour
+       flag_inline_functions_called_once.
+
+2005-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/23478
+       * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
+       (alloc_qty): Initialize it.
+       (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
+       (combine_regs): Combine also n_throwing_calls_crossed fields.
+       (find_free_reg): Don't attempt to caller-save pseudos crossing
+       calls that might throw.
+       * global.c (struct allocno): Add throwing_calls_crossed field.
+       (global_alloc): Revert 2005-08-22 change.  Initialize
+       throwing_calls_crossed.
+       (find_reg): Don't attempt to caller-save pseudos crossing calls that
+       might throw.
+
+2005-09-01  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/23649
+       * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
+       (mask64_operand): Reinstate code prior to 2005-06-11 change.
+       (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
+       (and64_2_operand): Tweak to use predicate.
+       (and_operand): Adjust for mask_operand changes.
+       * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
+       (print_operand): Likewise.
+       (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
+       (mask64_1or2_operand): Delete.
+       * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
+       * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
+       (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
+       (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
+       * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
+       (rotldi3_internal4): Likewise.
+       (rotldi3_internal5, rotldi3_internal5 split): Likewise.
+       (rotldi3_internal6, rotldi3_internal6 split): Likewise.
+       (ashldi3_internal7): Likewise.
+       (ashldi3_internal8, ashldi3_internal8 split): Likewise.
+       (ashldi3_internal, ashldi3_internal9 split): Likewise.
+       (anddi3 split): Don't match mask64_operand.
+       (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
+       (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
+       splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
+       't' splitter predicate.
+       (movdi_internal64 + 2): Revert 2005-06-11 change.
+
+2005-08-31  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
+       (m32c_asm_integer): Add support for 32 bit pointers.
+
+2005-08-31  Richard Henderson  <rth@redhat.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
+       component-like references for setting MEM_NOTRAP_P.
+
+       * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
+       * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
+
+2005-08-31  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
+       into a pseudo before applying gen_lowpart.
+
+2005-08-31  Geoffrey Keating  <geoffk@apple.com>
+
+       * doc/install.texi (Specific): Update cctools version required
+       for full functionality.
+       * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
+       linkers as -macosx_version_min.
+
+2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR target/21255
+       * sh.c (print_operand, %R and %S): Add handling of floating point
+       registers, memory, constants and invalid operands.
+
+2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
+
+       * ipa-pure-const.c: Change dump name.
+
+2005-08-31 Uros Bizjak <uros@kss-loka.si>
+
+       PR target/23570
+       * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
+       to "reg_or_0_operand".
+       (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
+
+2005-08-31  Dale Johannesen  <dalej@apple.com>
+
+       * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
+       loops that count down.
+
+2005-08-31  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/23601
+       * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
+       (fixup_eh_region_note): New.
+       (reload_as_needed): Call it.
+       (fixup_abnormal_edges): Allow all throwing insns to be deleted;
+       don't call find_many_sub_basic_blocks; call verify_flow_info.
+       * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
+       (keep_stack_depressed): Likewise.
+       (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
+
+2005-08-31  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
+       fp return matching.
+
+2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
+
+       * expr.c (expand_expr_real_1): Compare size of address 
+       mode to target's address mode size in deciding expansion of 
+       the constant address.
+
+2005-08-31  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/23477
+       * expr.c (all_zeros_p): New function.
+       (expand_expr_real_1): Handle the case of an all-zero
+       non-addressable constructor separately.
+
+2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
+
+       * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
+       arguments, adjust all callers.
+       (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
+
+2005-08-30  Richard Henderson  <rth@redhat.com>
+
+       PR target/23630
+       * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
+       whenever the mode sizes match.
+
+2005-08-31  Alan Modra  <amodra@bigpond.net.au>
+
+       * calls.c (load_register_parameters): Fix comment typo.
+       * expr.c (emit_push_insn): Comment formatting.
+
+2005-08-30  Ian Lance Taylor  <ian@airs.com>
+
+       * config/i386/x-cygwin (host-cygwin): Change dependency from
+       hosthooks-def.h to $(HOSTHOOKS_DEF_H).
+
+2005-08-29  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
+       parts of 'vals'.
+
+2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/23408
+       * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
+       call to ggc_collect.
+
+2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/21268
+       * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
+       beginning.  Remove $(INCLUDES) from all the rules, if following
+       $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
+
+2005-08-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/23484
+       * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+       fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
+       not constant, but maxlen is, don't set len to maxlen, rather
+       set maxlen to len if len is a constant.
+
 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR tree-optimization/23475
 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
 
        PR target/23539
-        * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
-        bytes >= 2 not bytes == 2.
+       * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
+       bytes >= 2 not bytes == 2.
        (expand_block_move): Same.
 
 2005-08-27  Richard Guenther  <rguenther@suse.de>