OSDN Git Service

PR target/13958
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index bb89350..3d2ad8f 100644 (file)
@@ -1,3 +1,365 @@
+2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/13958
+       * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
+       corresponding post-reload splitters.
+       ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
+       when x87 FP math is selected.
+       * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
+       New function prototype.
+       * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
+       unreachable function to ease macroization of insn patterns.
+
+2008-03-21  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-data-ref.c (dump_data_dependence_relation): Avoid data
+       reference dumps if ddr is NULL or dependence is unknown.
+
+2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
+       unsigned extension into account.
+       (ATOMIC_COMPARE_AND_SWAP): Likewise.
+       (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
+       Do computations on a scratch register.
+
+2008-03-21  Richard Guenther  <rguenther@suse.de>
+
+       * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
+       Use is_gimple_min_invariant instead of TREE_INVARIANT.
+       * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
+       * tree-ssa-dom.c (record_equality): Likewise.
+       * tree-inline.c (copy_body_r): Likewise.
+       * tree-ssa-pre.c (make_values_for_stmt): Remove test for
+       TREE_INVARIANT.
+
+2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (split_branches): Pass zero to redirect_jump
+       as 'delete_unused' argument.
+
+2008-03-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
+       special casing of constant qualifiers.
+       * tree-ssa.c (useless_type_conversion_p_1): Instead do not
+       care about them in general.
+       * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
+       regardless of their type.
+       (fold_stmt_r): Forcefully fold *& if we end up with that.
+
+2008-03-20  Paul Brook  <paul@codesourcery.com>
+
+       * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
+       * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
+       linker flags.
+       * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
+       definition.
+       (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
+       * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
+
+2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       * common.opt (Wmudflap): New option.
+       * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
+       (mx_register_decls): Likewise.
+       (mudflap_finish_file): Likewise.
+       * doc/invoke.texi: Document -Wno-mudflap.
+
+2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
+
+       * c-format.c (replace_format_name_to_system_name): New.
+       (cmp_attribs): New.
+       (convert_format_name_to_system_name): New.
+       (decode_format_attr): Add use of convert_format_name_to_system_name.
+       (format_types_orig): Add gnu_ prefix to names.
+       (check_format_info_main): Special treating of \0 escaped names for
+       supporting multi-character format specifiers as I32, I64.
+       (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
+       (gnu_target_overrides_format_attributes): New.
+       * c-format.h: Add structure target_ovr_attr to hold
+       system specific formatter names.
+       * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
+       msformat-c.o file to c_target_objs and cxx_target_objs.
+       * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
+       (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
+       (TARGET_N_FORMAT_TYPES): New.
+       * config/i386/msformat-c.c: New.
+       * config/i386/t-cygming: Add build rule for msformat-c.o.
+       * doc/extend.texi: Add new format names gnu_* and ms_* and
+       further details.
+       * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
+
+2008-03-20  Ira Rosen  <irar@il.ibm.com>
+
+       * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
+       optimizations turned on under -O3.
+       (ftree-vectorize): Add that the flag is turned on with -O3.
+
+2008-03-20  Ben Elliston  <bje@au.ibm.com>
+
+       * regmove.c (try_auto_increment): Fix spelling error in comment.
+       * final.c (final_scan_insn): Likewise.
+
+2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/14552
+       * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
+       allocator preferences for "y" and "r" class registers.
+       ("*mov<mode>_internal"): Ditto.
+       ("*movv2sf_internal_rex64"): Ditto.
+       ("*movv2sf_internal"): Ditto.
+
+2008-03-19  Michael Matz  <matz@suse.de>
+
+       PR middle-end/35616
+       * calls.c (expand_call): Check overlap of arguments with call
+       address for sibcalls.
+
+2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/35496
+       * stor-layout.c (update_alignment_for_field): Set minimum alignment
+       of the underlying type of a MS bitfield layout to the natural
+       alignment of the type.
+
+2008-03-19  Jan Hubicka  <jh@suse.cz>
+
+       PR other/35094
+       * toplev.c (decode_d_option): Handle all CPP flags.
+       * tree-vrp.c: Update tree_pass descriptors.
+       * regrename.c: Update tree_pass descriptors.
+       * fwprop.c: Update tree_pass descriptors.
+       * doc/invoke.texi: Remove documentation of dropped -d? flags.
+       * tree-into-ssa.c: Update tree_pass descriptors.
+       * tree-dump.c: Update tree_pass descriptors.
+       * tree-complex.c: Update tree_pass descriptors.
+       * tree-dump.h: Update tree_pass descriptors.
+       * see.c: Update tree_pass descriptors.
+       * cgraphbuild.c: Update tree_pass descriptors.
+       * tracer.c: Update tree_pass descriptors.
+       * tree-loop-distribution.c: Update tree_pass descriptors.
+       * cgraph.c: Update tree_pass descriptors.
+       * postreload-gcse.c: Update tree_pass descriptors.
+       * postreload.c: Update tree_pass descriptors.
+       * tree-ssa-loop-ch.c: Update tree_pass descriptors.
+       * tree-tailcall.c: Update tree_pass descriptors.
+       * tree-pass.h (tree_opt_pass): Rename to ...
+       (opt_pass) ... this one; add "type" field and remove letter field.
+       (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
+       (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
+       all_lowering_passes): Update declaration.
+       * ipa-cp.c: Update tree_pass descriptors.
+       * final.c: Update tree_pass descriptors.
+       * omp-low.c: Update tree_pass descriptors.
+       * tree-ssa-dse.c: Update tree_pass descriptors.
+       * ipa-reference.c: Update tree_pass descriptors.
+       * tree-ssa-uncprop.c: Update tree_pass descriptors.
+       * auto-inc-dec.c: Update tree_pass descriptors.
+       * reorg.c: Update tree_pass descriptors.
+       * cgraphunit.c: Update tree_pass descriptors.
+       * tree-ssa-copyrename.c: Update tree_pass descriptors.
+       * tree-ssa-ccp.c: Update tree_pass descriptors.
+       * df-core.c: Update tree_pass descriptors.
+       * mode-switching.c: Update tree_pass descriptors.
+       * tree-nomudflap.c: Update tree_pass descriptors.
+       * modulo-sched.c: Update tree_pass descriptors.
+       * ipa-pure-const.c: Update tree_pass descriptors.
+       * cse.c: Update tree_pass descriptors.
+       * web.c: Update tree_pass descriptors.
+       * tree-stdarg.c: Update tree_pass descriptors.
+       * tree-ssa-math-opts.c: Update tree_pass descriptors.
+       * tree-ssa-dom.c: Update tree_pass descriptors.
+       * tree-nrv.c: Update tree_pass descriptors.
+       * tree-ssa-alias.c: Update tree_pass descriptors.
+       * loop-init.c: Update tree_pass descriptors.
+       * gimple-low.c: Update tree_pass descriptors.
+       * ipa-inline.c: Update tree_pass descriptors.
+       * tree-ssa-sink.c: Update tree_pass descriptors.
+       * global.c: Update tree_pass descriptors.
+       * ifcvt.c: Update tree_pass descriptors.
+       * jump.c: Update tree_pass descriptors.
+       * predict.c: Update tree_pass descriptors.
+       * tree-ssa-loop.c: Update tree_pass descriptors.
+       * recog.c: Update tree_pass descriptors.
+       * dse.c: Update tree_pass descriptors.
+       * tree-ssa-ifcombine.c: Update tree_pass descriptors.
+       * tree-eh.c: Update tree_pass descriptors.
+       * regmove.c: Update tree_pass descriptors.
+       * local-alloc.c
+       * function.c: Update tree_pass descriptors.
+       * tree-vectorizer.c: Update tree_pass descriptors.
+       * gcse.c: Update tree_pass descriptors.
+       * ipa-type-escape.c: Update tree_pass descriptors.
+       * tree-if-conv.c: Update tree_pass descriptors.
+       * init-regs.c: Update tree_pass descriptors.
+       * ipa.c: Update tree_pass descriptors.
+       * tree-ssa-phiopt.c: Update tree_pass descriptors.
+       * rtl-factoring.c: Update tree_pass descriptors.
+       * lower-subreg.c: Update tree_pass descriptors.
+       * bt-load.c: Update tree_pass descriptors.
+       * tree-dfa.c: Update tree_pass descriptors.
+       * except.c: Update tree_pass descriptors.
+       * emit-rtl.c: Update tree_pass descriptors.
+       * cfgexpand.c: Update tree_pass descriptors.
+       * tree-cfgcleanup.c: Update tree_pass descriptors.
+       * cfgcleanup.c: Update tree_pass descriptors.
+       * tree-ssa-pre.c: Update tree_pass descriptors.
+       * tree-sra.c: Update tree_pass descriptors.
+       * tree-mudflap.c: Update tree_pass descriptors.
+       * tree-ssa-copy.c: Update tree_pass descriptors.
+       * cfglayout.c: Update tree_pass descriptors.
+       * tree-ssa-forwprop.c: Update tree_pass descriptors.
+       * tree-ssa-dce.c: Update tree_pass descriptors.
+       * tree-ssa.c: Update tree_pass descriptors.
+       * regclass.c: Update tree_pass descriptors.
+       * integrate.c: Update tree_pass descriptors.
+       * tree-optimize.c: Update tree_pass descriptors.
+       * tree-ssa-phiprop.c: Update tree_pass descriptors.
+       * tree-object-size.c: Update tree_pass descriptors.
+       * combine.c: Update tree_pass descriptors.
+       * tree-outof-ssa.c: Update tree_pass descriptors.
+       * bb-reorder.c: Update tree_pass descriptors.
+       * stack-ptr-mod.c: Update tree_pass descriptors.
+       * var-tracking.c: Update tree_pass descriptors.
+       * tree-profile.c: Update tree_pass descriptors.
+       * tree-vect-generic.c: Update tree_pass descriptors.
+       * reg-stack.c: Update tree_pass descriptors.
+       * sched-rgn.c: Update tree_pass descriptors.
+       * tree-ssa-structalias.c: Update tree_pass descriptors.
+       * tree-cfg.c: Update tree_pass descriptors.
+       * passes.c (current_pass): Update declaration.
+       (finish_optimization_passes): Update.
+       (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
+       (register_one_dump_file, register_dump_files_1, next_pass_1):
+       Update arguments.
+       (init_optimization_passes): Update handling of new types.
+       (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
+       * ipa-struct-reorg.c: Update tree_pass descriptors.
+       * tree-ssa-reassoc.c: Update tree_pass descriptors.
+       * combine-stack-adj.c: Update tree_pass descriptors.
+       * cfgrtl.c: Update tree_pass descriptors.
+       * dce.c: Update tree_pass descriptors.
+       * tree-ssanames.c: Update tree_pass descriptors.
+
+2008-03-19  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35609
+       * tree-ssa.c (always_executed): New global flag.
+       (warn_uninitialized_var): If !always_executed warn with "maybe"
+       instead of "is".
+       (execute_early_warn_uninitialized): Compute post-dominators.
+       Initialize always_executed before processing each basic block.
+
+2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
+
+       PR target/35504
+       * config/i386/i386.c (x86_this_parameter): Calculate correct location
+       of "this" pointer when "regparm = N" or "fastcall" is in effect.
+
+2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * doc/include/texinfo.tex: Update to version 2008-03-17.10.
+
+2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
+       is true.
+       (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
+       (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
+       is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
+       target after ignore has been set, and move there also the commputation
+       of subtarget and original_target.
+       * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
+       (LANG_HOOKS_INITIALIZER): Remove it.
+       * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
+
+2008-03-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
+       found an expression with constants, note that in the VN for the lhs.
+       * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
+       fold them to constants if possible.  Run cleanup_cfg if done so.
+       (execute_pre): Return todo.
+       (do_pre): Likewise.
+       (execute_fre): Likewise.
+       * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
+       of constants.
+       (get_prop_source_stmt): Look through pointer conversions.
+
+2008-03-18  Jan Hubicka  <jh@suse.cz>
+
+       * tree-pretty-print.c: Include predict.h.
+       (dump_generic_node): Dump predictor.
+       * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
+       * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
+       * gimple-low.c (lower_stmt): Likewise.
+       * expr.c (expand_expr_real): Likewise.
+       * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
+       them.
+       (build_predict_expr, build_predict_expr): New.
+       * predict.h (predictor_name, build_predict_expr): Update.
+       * c-typeck.c (c_finish_bc_stmt): Add prediction.
+       * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
+       * predict.def (PRED_CONTINUE): Update hitrate.
+       * tree.def (PREDICT_EXPR): Define.
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
+       do not handle BIND_EXPR.
+       * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
+       * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
+       * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
+       operands.
+
+2008-03-18  Michael Matz  <matz@suse.de>
+
+       * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
+
+2008-03-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-gimple.h (is_gimple_invariant_address): Declare.
+       (is_gimple_constant): Likewise.
+       * tree-gimple.c (is_gimple_constant): New function.
+       (is_gimple_invariant_address): Likewise.
+       (is_gimple_min_invariant): Implement in terms of is_gimple_constant
+       and is_gimple_invariant_address.
+       * tree-ssa-loop-niter.c (expand_simple_operations): Revert
+       previous change.
+       * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
+       an addressable base.
+
+2008-03-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/35611
+       * gimplify.c (gimplify_expr): Gimplify second operand of
+       OMP_ATOMIC_LOAD.
+
+2008-03-17  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/19637
+       * fold-const.c (fold_unary): Remove restrictions of removing
+       intermediate pointer-conversions (P2)(P1)P0.
+       * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
+       conversion to void pointer.
+       (get_maxval_strlen): Handle addresses of the form &(*p)[0].
+
+2008-03-16  James E. Wilson  <wilson@tuliptree.org>
+
+       PR debug/31510
+       * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
+       emulated thread local variables.
+
+2008-03-16  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35607
+       * tree-ssa-loop-niter.c (expand_simple_operations): Do not
+       expand TREE_INVARIANT operations that are not gimple invariant.
+
+2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
+
+       * doc/extend.texi (Alignment): Say that the ABI controls
+       the __alignof__ for non-strict-alignment targets rather
+       than being a recommendation.
+
 2008-03-15  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
        (maybe_fold_stmt_addition): Likewise.
 
 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
-            Anatoly Sokolov <aesok@post.ru>
+           Anatoly Sokolov <aesok@post.ru>
 
        * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
        (avr_arch): Add ARCH_AVR6.
 
        PR target/35540
        * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
-       constraint for operand 1.
-       (paritysi2_cmp): Use register_operand constraint for operand 2.
+       predicate for operand 1.
+       (paritysi2_cmp): Use register_operand predicate for operand 2.
        Use earlyclobber modifier for operand 1.  Remove support for
        memory operands.
-       (paritydi2_cmp): Use register_operand constraint for operand 3.
+       (paritydi2_cmp): Use register_operand predicate for operand 3.
        Use earlyclobber modifier for operand 1.  Remove support for
        memory operands.
 
 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
-        label to probe the stack.
+       label to probe the stack.
 
 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
 
 
 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
-        PR 26264
+       PR 26264
        * builtins.def (BUILT_IN_STDARG_START): Remove.
        * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
        * tree-stdarg.c (execute_optimize_stdarg): Likewise.
        PR fortran/29549
        * doc/invoke.texi (-fcx-limited-range): Document new option.
        * toplev.c (process_options): Handle -fcx-fortran-rules.
-        * common.opt: Add documentation for -fcx-fortran-rules.
+       * common.opt: Add documentation for -fcx-fortran-rules.
 
 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>