OSDN Git Service

* lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2f29cb5..7e97556 100644 (file)
-2009-12-02  Sebastian Pop  <sebastian.pop@amd.com>
+2009-12-14  Ben Elliston  <bje@au.ibm.com>
+
+       * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
+       BUILT_IN_NORMAL or BUILT_IN_MD.
+
+2009-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
+       * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
+       * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
+       * system.h (STACK_CHECK_PROBE_LOAD): Poison.
+
+2009-12-13  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/42027
+       * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
+       TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
+       falling through.
+
+2009-12-13  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
+
+       PR target/23726
+       * config/avr/predicates.md (pseudo_register_operand): New predicate
+       for pseudos.
+       * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
+       to allow div/mod optimization.
+       (udivmodqi4): Ditto.
+       (divmodhi4): Ditto.
+       (udivmodhi4): Ditto.
+       (divmodsi4): Ditto.
+       (udivmodsi4): Ditto. 
+
+2009-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/42357
+       * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
+
+2009-12-12  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (need_assembler_name_p): Abstract decls do not need
+       an assembler name.
+       * dwarf2out.c (dwarf2out_abstract_function): Preserve
+       DECL_ABSTRACT properly.
+
+2009-12-11  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-in.c (lto_input_tree_ref): Do not register
+       DEBUG_EXPR_DECLs with the varpool.
+
+2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
+       (sparc64_frob_update_context): New function.
+
+2009-12-11  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41658
+       PR lto/41657
+       * lto-streamer-out.c (write_global_stream): Do not make decls
+       weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
+       Make sure to mark all decls that we have written.
+
+2009-12-11  Sebastian Andrzej Siewior  <bigeasy@linutronix.de>
+
+       PR target/36047
+
+       * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
+       not used by glibc/uclibc and does not work with large binaries.
+
+2009-12-11  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41662
+       * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
+       handling here.
+       (input_eh_regions): Adjust.
+       (lto_input_ts_function_decl_tree_pointers): Initialize EH
+       if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
+
+2009-12-11  Duncan Sands  <baldrick@free.fr>
+
+       * passes.c (make_pass_instance): Allocate and copy the right amount of
+       memory for ipa passes, which are not the same size as other passes.
+
+2009-12-11  Joern Rennecke  <amylaar@spamcop.net>
+
+       * plugin.c (get_named_event_id): Fix hash table rebuild to include
+       dynamically allocated events.
+
+2009-12-11  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/42320
+       * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
+       detect non-prevailing decls.
+
+2009-12-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/42317
+       * cgraph.h (struct cgraph_node): Add same_comdat_group field.
+       * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
+       circular list.
+       (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
+       node->same_comdat_group.
+       * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
+       mark all its same_comdat_group nodes as also reachable.
+       (cgraph_externally_visible_p): Return true even if any of
+       same_comdat_group nodes has address taken.
+       * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
+       (output_cgraph): Ensure other same_comdat_group nodes are also
+       included.
+       (input_node): Stream in same_comdat_group.
+       (input_cgraph_1): Fix up same_comdat_group fields from references
+       to pointers.
+       * cgraphunit.c (cgraph_analyze_functions): Mark all other
+       same_comdat_group nodes as reachable.
+       (cgraph_mark_functions_to_output): For each node->process process
+       also other same_comdat_group nodes.
+       * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
+       with same_comdat_group non-NULL.
+       (cgraph_mark_inline_edge): Likewise.
+
+2009-12-10  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/42228
+       PR middle-end/42110
+       * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
+       parameter; update edge if it already exists.
+       (cgraph_remove_node): Handle correctly cases where we are removing
+       node having clones.
+       * cgraph.h (cgraph_create_edge_including_clones): Declare.
+       (verify_cgraph_node): Add missing error_found = true code.
+       (cgraph_materialize_all_clones): Remove call edges of dead nodes.
+       * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
+       clone; fix double linked list removal.
+       * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
+       call; fix frequency of newly created edge.
+
+2009-12-10  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       PR rtl-opt/42216
+       * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
+       HOST_BITS_PER_WIDE_INT.
+       (verify_reg_in_set): New function, broken out of verify_reg_tracked.
+       (verify_reg_tracked): Use it.
+       (scan_rtx_reg): When seeing a use involving a superset of the
+       registers in an existing chain, enlarge that chain.  Otherwise,
+       allow subsets and set fail_current_block for all other kinds of
+       overlap.
+       (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
+       Do not modify operands when the bit with the corresponding number
+       is set in that bitmap.
+       (build_def_use): When we see matching operands with different
+       modes, don't set fail_current_block, but keep track of such
+       operands in a bitmap if their registers aren't already tracked
+       in an open chain.  Pass this bitmap to all hide_operands calls.
+
+2009-12-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/42337
+       * tree-ssa-pre.c (seen_during_translate): Remove.
+       (phi_translate_1): Collapse into ...
+       (phi_translate): ... this.  Remove seen parameter and
+       adjust recursive calls.
+
+2009-12-10  Richard Guenther  <rguenther@suse.de>
+       Allan Sandfeld Jensen  <linux@carewolf.com>
+
+       * tree-vectorizer.c (vectorize_loops): Properly guard
+       vectorizer verboseness.
+
+2009-12-10  Ben Elliston  <bje@au.ibm.com>
+
+       * fwprop.c (free_load_extend): Initialise `use'.
+
+2009-12-09  David Edelsohn  <edelsohn@gnu.org>
+
+       * builtins.c (do_mpc_ckconv): Pass the component type to
+       real_from_mpfr().
+       
+2009-12-09  Xinliang David Li  <davidxl@google.com>
+
+       PR tree-optimization/42337
+       * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
+
+2009-12-09  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
+       mulv2sf3, divv2sf3): New expanders.
+       * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
+       spe_evdivws): Rename to use standard GCC names.
+       * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
+       mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
+       * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
+       names for renamed patterns.
+
+2009-12-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
+
+2009-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
+       ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
+       isn't cached.
+       * configure: Regenerated.
+
+2009-12-08  Richard Henderson  <rth@redhat.com>
+
+       * combine.c (setup_incoming_promotions): Fix sign-extend of
+       zero-extend case; tidy conditions.
+
+2009-12-08  Michael Matz  <matz@suse.de>
+
+       PR middle-end/38474
+       * function.c (free_temp_slots): Only walk the temp slot
+       addresses and combine slots if we actually changes something.
+       (pop_temp_slots): Ditto.
+
+2009-12-08  Olga Golovanevsky  <olga@il.ibm.com>
+
+       PR middle-end/41843
+       * ipa-struct-reorg.c (compare_fields): New function.
+       (find_field_in_struct_1): Use compare_fields function.
+       (is_equal_types): Likewise.
+
+2009-12-07  DJ Delorie  <dj@redhat.com>
+
+       PR c/42312
+       * config/mep/mep.c (mep_expand_prologue): Set
+       really_need_stack_frame after frame_size is set.
+
+2009-12-07  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/42269
+       * combine.c (setup_incoming_promotions): Improve the conditions
+       under which we respect the promotions applied.
+
+2009-12-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
+       * config/sparc/linux64.h (ASM_SPEC): Likewise.
+
+2009-12-07  Richard Henderson  <rth@redhat.com>
+
+       PR debug/42299
+       PR debug/42166
+       * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
+       for ssa names already registered for update.
+
+2009-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/42244
+       * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
+       is a DEBUG_INSN.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
+       options when bit_LWP is set.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/cpuid.h (bit_ABM): New.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
+       options when bit_ABM is set.
+
+2009-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
+       this array ...
+       (bdesc_args): ... here.
+       * config.gcc (i[34567]86-*-*): Include abmintrin.h.
+       (x86_64-*-*): Likewise.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
+       * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
+       * config/i386/i386-c.c (__POPCNT__): Defined.
+       * config/i386/popcntintrin.h: ...here.  New file.
+       * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
+       Include popcntintrin.h.
+       * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
+       is defined.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
+       Removed.
+       * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
+       * config/i386/sse.md: Remove all XOP splitters.
+       Allow the second and fourth operands of XOP multiply-add insns
+       to be nonimmediate.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/sse.md: Remove all FMA4 splitters.
+       Allow the second operand of FMA4 insns to be a nonimmediate.
+       Fix comments punctuation.
+
+2009-12-07  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/constraints.md (Ps, Pt): New constraint letters.
+       * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
+
+2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR other/40302
+       * configure.ac (HAVE_mpc): Don't define.
+       * config.in, configure: Regenerate.
+
+       PR other/40302
+       * builtins.c: Remove HAVE_mpc* checks throughout.
+       * fold-const.c: Likewise.
+       * real.h: Likewise.
+       * toplev.c: Likewise.
+
+2009-12-07  Edmar Wienskoski  <edmar@freescale.com>
+
+       * config.gcc (cpu_is_64bit): Add new core e500mc64.
+       (powerpc*-*-*): Add new core e500mc64.
+       * config/rs6000/e500mc64.md: New file.
+       * config/rs6000/rs6000.c (processor_costs): Add new costs for
+       e500mc64.
+       (rs6000_override_options): Add e500mc64 case to
+       processor_target_table. Altivec and Spe options not allowed with
+       e500mc64. Disable string instructions for e500mc64. Enable branch
+       targets alignment for both e500mc and e500mc64. Initialize
+       rs6000_cost for e500mc64.
+       (rs6000_emit_sISEL): New function.
+       (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
+       (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
+       generation.
+       (rs6000_issue_rate): Set issue rate for e500mc64.
+       (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
+       on architectures with isel.
+       * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
+       * config/rs6000/rs6000.h (processor_type): Add
+       PROCESSOR_PPCE500MC64.
+       (ASM_CPU_SPEC): Add e500mc64.
+       * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
+       Include e500mc64.md.
+       (abssi2_isel): Expand pattern to handle DImode.
+       (nabs<mode>2_isel): New pattern.
+       (absdi2): Change pattern to handle 64 bit isel targets.
+       (absdi2_internal): Exclude ISEL targets.
+       (nabsdi2): Exclude ISEL targets.
+       * doc/invoke.texi: Add e500mc64 to list of cpus.
+
+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_or): New code iterator.
+       (any_logic): Rename from plogic code iterator.
+       (logicprefix): Rename from plogicprefix code attribute.
+       (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
+       any_or code iterator.
+       (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
+       any_or code iterator.
+       (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
+       (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
+       (ior and xor splitters): Ditto.
+       * config/i386/mmx.md: Updated for rename.
+       * config/i386/sse.md: Ditto.
+
+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
+       Remove quotes around condition logic code.
+
+2009-12-06  Richard Henderson  <rth@redhat.com>
+
+       PR debug/42234
+       * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
+       argument earlier.
+
+2009-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * doc/install.texi: Document MPC is required.
+
+2009-12-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (g): Add HImode and QImode.
+       (general_szext_operand): New mode attribute.
+       (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
+       SWI124 mode iterator.
+       (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
+       SWI124 mode iterator.
+       (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
+       SWI248 mode iterator.
+       (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
+       SWI mode iterator.
+       (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
+       SWI mode iterator.
+       (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
+       SWI248 mode iterator.
+       (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
+       SWI mode iterator.
+       (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
+       SWI mode iterator.
+
+2009-12-05  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
+       MASK_FUSED_MADD.
+       * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
+       "'-mfused-madd' was removed".
+       * config/i386/i386.opt (mfused-madd): New.
+       * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
+       * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
+
+2009-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
+       * pa-hpux10.h (LIB_SPEC): Likewise.
+       * pa-hpux11.h (LIB_SPEC): Likewise.
+
+       PR ada/41912
+       * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
+       for signal frames.
+       * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
+
+2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure: Regenerate.
+
+2009-12-05  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
+       for the scratch.
+
+2009-12-04  David Daney  <ddaney@caviumnetworks.com>
+
+       PR rtl-optimization/42164
+       * combine.c (combine_simplify_rtx): Handle truncation of integer
+       constants.
+
+2009-12-04  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-out.c (pack_ts_decl_common_value_fields):
+       Revert previous change.
+       (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
+       * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
+       Likewise.
+
+2009-12-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+       BUILT_IN_MALLOC.
+       (call_may_clobber_ref_p_1): Likewise.
+
+2009-12-04  Matthias Klose  <doko@ubuntu.com>
+           John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/40134
+       * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
+       * config/pa/pa-linux.h (LIB_SPEC): Remove.
+
+2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
            Richard Henderson  <rth@redhat.com>
 
-       * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Removed.
-       * config/i386/i386.c (ix86_fma4_valid_op_p): Removed.
+       * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
+       * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
        * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
        * config/i386/sse.md (fma4_*): Remove alternative with operand 1
        matching a memory access.  Do not use ix86_fma4_valid_op_p.
        (xop_*): Same.
        Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
 
-2009-12-02  Richard Henderson  <rth@redhat.com>
+2009-12-03  Richard Henderson  <rth@redhat.com>
 
        * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
        all operands into registers.
 
-2009-12-02  Sebastian Pop  <sebastian.pop@amd.com>
+2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
 
        * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
        parameter.
 2009-12-02  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/42229
-       * cfgloopmanip.c (remove_path): Avoid cancelling loops
-       twice.
+       * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
 
 2009-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
 
        to save the accumulator.
        (rx_expand_prologue): Create a stack frame for fast interrupt
        handlers, if necessary.
-       (rx_expand_builtin_mvfc): Handle the case where there is no
-       target.
+       (rx_expand_builtin_mvfc): Handle the case where there is no target.
 
 2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
 
        (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
        functions.
        (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
-       * config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
+       * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
        sh_function_value_regno_p.
        (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
        * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.