OSDN Git Service

2007-02-15 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a25d814..ba84040 100644 (file)
@@ -1,3 +1,239 @@
+2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
+
+       * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
+       
+2007-02-15  Nick Clifton  <nickc@redhat.com>
+
+       * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
+       order to prevent it from being munged by the target.
+
+2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md: Remove misleading comment.
+
+2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
+       reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
+       invalid patterns.
+
+2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-sra.c (instantiate_missing_elements): Canonicalize
+       bit-field types.
+       (sra_build_assignment): New.
+       (generate_copy_inout, generate_element_copy,
+       generate_element_zero, generate_one_element_init): Use it.
+
+2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-sra.c (instantiate_missing_elements): Canonicalize
+       bit-field types.
+       (sra_build_assignment): New.
+       (generate_copy_inout, generate_element_copy,
+       generate_element_zero, generate_one_element_init): Use it.
+
+2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
+       limbo die nodes.
+
+2007-02-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
+       types as aggregates not scalars.
+       * function.c (assign_stack_temp_for_type): Likewise.
+
+2007-02-14  Roger Sayle  <roger@eyesopen.com>
+           Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-dump.c (dump_switch_p_1): Require exact match of the option
+       name.
+
+2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * passes.c (next_pass_1): Clear the next field of the copied
+       pass structure.
+
+2007-02-14  Richard Henderson  <rth@redhat.com>
+
+       * tree-sra.c (early_sra): New.
+       (decl_can_be_decomposed_p): Deny va_list if early_sra.
+       (tree_sra_early, pass_sra_early): New.
+       * tree-pass.h (pass_sra_early): Declare.
+       * passes.c (init_optimization_passes): Use it.
+
+2007-02-14  Richard Guenther  <rguenther@suse.de>
+
+       * flags.h (issue_strict_overflow_warning): Convert to a macro.
+
+2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
+
+        PR tree-optimization/30771
+       * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
+       also phi nodes.
+       (vect_analyze_operations): Induction phis can now be marked as
+       used_in_loop.
+       (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
+       Update documentation accordingly.
+
+2007-02-14  Nick Clifton  <nickc@redhat.com>
+
+       * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
+       most 3 arguments are supported.
+       (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
+
+2007-02-13  Seongbae Park <seongbae.park@gmail.com>
+
+       * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
+       Ensure dst->current is valid.
+
+2007-02-13  Paul Brook  <paul@codesourcery.com>
+
+       * config.gcc: Add arm*-*-uclinux-*eabi.
+       * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
+       (SUBTARGET_EXTRA_LINK_SPEC): Define.
+       (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
+       (LINK_GCC_C_SEQUENCE_SPEC): Undef.
+       (LINK_SPEC): Define.
+       (LIB_SPEC): Define.
+       * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
+       register.
+       * config/arm/uclinux-eabi.h: New file.
+       * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
+       * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
+       based targets.
+
+2007-02-13  Ian Lance Taylor  <iant@google.com>
+
+       * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
+       * flags.h (warn_strict_overflow): Declare.
+       (enum warn_strict_overflow_code): Define.
+       (issue_strict_overflow_warning): New static inline function.
+       * opts.c (warn_strict_overflow): New variable.
+       (common_handle_option): Handle OPT_Wstrict_overflow and
+       OPT_Wstrict_overflow_.
+       * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
+       OPT_Wall.
+       * fold-const.c: Include intl.h.
+       (fold_deferring_overflow_warnings): New static variable.
+       (fold_deferred_overflow_warning): New static variable.
+       (fold_deferred_overflow_code): New static variable.
+       (fold_defer_overflow_warnings): New function.
+       (fold_undefer_overflow_warnings): New function.
+       (fold_undefer_and_ignore_overflow_warnings): New function.
+       (fold_deferring_overflow_warnings_p): New function.
+       (fold_overflow_warning): New static function.
+       (make_range): Add strict_overflow_p parameter.  Change all
+       callers.
+       (extract_muldiv, extract_muldiv_1): Likewise.
+       (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
+       tree_expr_nonnegative_p.
+       (fold_negate_expr): Call fold_overflow_warning.
+       (fold_range_test): Likewise.
+       (fold_comparison): Likewise.
+       (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
+       instead of tree_expr_nonnegative_p.
+       (tree_expr_nonnegative_warnv_p): Rename from
+       tree_expr_nonnegative_p, add strict_overflow_p parameter.
+       (tree_expr_nonnegative_p): New function.
+       (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
+       strict_overflow_p parameter.
+       (tree_expr_nonzero_p): New function.
+       * passes.c (verify_interpass_invariants): New static function.
+       (execute_one_pass): Call it.
+       * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
+       warnings.
+       (number_of_iterations_exit, loop_niter_by_eval): Likewise.
+       (estimate_numbers_of_iterations): Likewise.
+       (scev_probably_wraps_p): Likewise.
+       * tree-ssa-ccp.c: Include "toplev.h".
+       (evaluate_stmt): Defer fold overflow warnings until we know we are
+       going to optimize.
+       (struct fold_stmt_r_data): Add stmt field.
+       (fold_stmt_r): Defer fold overflow warnings until we know we
+       optimized.
+       (fold_stmt): Initialize stmt field of fold_stmt_r_data.
+       (fold_stmt_inplace): Likewise.
+       * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
+       (cleanup_control_expr_graph): Defer fold overflow warnings until
+       we know we are going to optimize.
+       * tree-cfg.c (fold_cond_expr_cond): Likewise.
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition):
+       Likewise.
+       * tree-vrp.c (vrp_expr_computes_nonnegative): Call
+       tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
+       * tree-ssa-loop-manip.c (create_iv): Likewise.
+       * c-typeck.c (build_conditional_expr): Likewise.
+       (build_binary_op): Likewise.
+       * tree-vrp.c (vrp_expr_computes_nonzero): Call
+       tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
+       (extract_range_from_unary_expr): Likewise.
+       * simplify-rtx.c (simplify_const_relational_operation): Warn when
+       assuming that signed overflow does not occur.
+       * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
+       * tree.h (tree_expr_nonnegative_warnv_p): Declare.
+       (fold_defer_overflow_warnings): Declare.
+       (fold_undefer_overflow_warnings): Declare.
+       (fold_undefer_and_ignore_overflow_warnings): Declare.
+       (fold_deferring_overflow_warnings_p): Declare.
+       (tree_expr_nonzero_warnv_p): Declare.
+       * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
+       of warning options.
+       (Warning Options): Document -Wstrict-overflow.
+       * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
+       (tree-ssa-ccp.o): Likewise.
+       (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
+       (fold-const.o): Depend on intl.h.
+
+2007-02-13  Ian Lance Taylor  <iant@google.com>
+
+       PR middle-end/30751
+       * lower-subreg.c (resolve_simple_move): Decompose subregs in
+       addresses.
+
+2007-02-13  Stuart Hastings  <stuart@apple.com>
+
+       * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
+
+2007-02-13  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
+       handled_component_p before looking for the indirect_ref.
+
+2007-02-13  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
+       remove flags clobber.
+       (bswapsi2): New expander, emit code for !TARGET_BSWAP.
+       (bswaphi_lowpart): New.
+       (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
+       remove TARGET_BSWAP test.  Delete expander of the same name.
+
+       * optabs.c (widen_bswap, expand_doubleword_bswap): New.
+       (expand_unop): Use them.
+
+2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
+       *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
+       *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
+       *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
+       *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
+       *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
+       *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
+       assembler dialect choice from asm templates.
+
+2007-02-12  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
+       (fixuns_trunc<SSEMODEF>si2): Use it.
+       * config/i386/sse.md (vec_setv4sf_0): Export.
+       * config/i386/i386.c (ix86_build_const_vector): Export.
+       (ix86_split_convert_uns_si_sse): Rename from
+       ix86_expand_convert_uns_si_sse and rewrite as a splitter.
+       * config/i386/i386-protos.h: Update.
+
 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        PR c/29521