OSDN Git Service

* gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dbbba58..c011b80 100644 (file)
@@ -1,3 +1,374 @@
+2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
+       rvalue on the RHS if the LHS is of a non-renamable type.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
+
+2010-04-13  Matthias Klose  <doko@ubuntu.com>
+
+       * gcc.c (cc1_options): Handle -iplugindir before processing
+       the cc1 spec. Only add -iplugindir once.
+       (cpp_unique_options): Add -iplugindir option if -fplugin* options
+       found.
+       * common.opt (iplugindir): Remove `Separate' property, initialize.
+       * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
+       option.
+       * Makefile.in (check-%, check-parallel-%): Create plugin dir.
+       (distclean): Remove plugin dir.
+       * doc/invoke.texi: Document -iplugindir.
+
+2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * doc/plugins.texi (Loading Plugins): Document short
+       -fplugin=foo option.
+       (Plugin API): Mention default_plugin_dir_name function.
+
+       * gcc.c (find_file_spec_function): Add new declaration.
+       (static_spec_func): Use it for "find-file".
+       (find_file_spec_function): Add new function.
+       (cc1_options): Add -iplugindir option if -fplugin* options found.
+
+       * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
+
+       * plugin.c (add_new_plugin): Updated comment, and handle short
+       plugin name.
+       (default_plugin_dir_name): Added new function.
+
+       * common.opt (iplugindir): New option to set the plugin
+       directory.
+
+2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_rotate): New code iterator.
+       (rotate_insn): New code attribute.
+       (rotate): Ditto.
+       (SWIM124): New mode iterator.
+       (<rotate_insn>ti3): New expander.
+       (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
+       any_rotate code iterator.
+       (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
+       using any_rotate code iterator and SWIM124 mode iterator.
+       (ix86_rotlti3): New insn_and_split pattern.
+       (ix86_rotrti3): Ditto.
+       (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
+       ix86_rotl{di,ti}3 patterns.
+       (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
+       (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
+       and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
+       *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
+       code iterator and SWI mode iterator.
+       (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
+       Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
+       code iterator.
+       (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
+       Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
+       (bswap rotatert splitter): Add splitter.
+       (bswap splitter): Macroize splitter using any_rotate code iterator.
+       Add insn predicate to split only for TARGET_USE_XCHGB or when
+       optimizing function for size.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/pa/pa.c (emit_move_sequence): Remove use of
+       deleted variable flag_argument_noalias.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.gcc: Removed *-*-solaris2.7* from list of obsolete
+       configurations.
+       Add to unsupported targets list.
+       * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
+       sparc*-sun-solaris2.[567]* from target lists.
+       * configure: Regenerate.
+       * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
+       removal.
+       Remove Solaris 7 patch references.
+       (Specific, sparc-sun-solaris2.7): Removed.
+       (sparc-sun-solaris2*): Update Solaris 7 example.
+       (sparc64-*-solaris2*): Likewise.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.build (alpha*-dec-osf4*): Remove.
+       * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
+       of obsolete configurations.
+       (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
+       support.
+       * config/alpha/t-osf4: Renamed to ...
+       * config/alpha/t-osf5: ... this.
+       * config/alpha/osf.h: Renamed to ...
+       * config/alpha/osf5.h: ... this.
+       Merged old osf5.h contents.
+       Update comments.
+       (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
+       (EXTRA_SPECS): Removed.
+       * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
+       reflect removal of Tru64 UNIX V4.0/V5.0 support.
+       Document that.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/contrib.texi (Contributors, Rainer Orth): Update.
+
+2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR/43702
+       * config/i386/i386.c (x86_this_parameter): Handle aggregate for
+       __thiscall convention.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
+       orig_base.
+       * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * function.c (assign_parms_initialize_all): Add unused attribute
+       to fntype.
+
+2010-04-12  Richard Guenther  <rguenther@suse.de>
+
+       * gsstruct.def (GSS_CALL): New.
+       * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
+       * gimple.h: Include tree-ssa-alias.h.
+       (struct gimple_statement_call): New.
+       (union gimple_statement_struct_d): Add gimple_call member.
+       (gimple_call_reset_alias_info): Declare.
+       (gimple_call_use_set): New function.
+       (gimple_call_clobber_set): Likewise.
+       * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
+       * gimple.c (gimple_call_reset_alias_info): New function.
+       (gimple_build_call_1): Call it.
+       * lto-streamer-in.c (input_gimple_stmt): Likewise.
+       * tree-inline.c (remap_gimple_stmt): Likewise.
+       (expand_call_inline): Remove callused handling.
+       * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
+       * tree-dfa.c (dump_variable): Likewise.
+       * tree-parloops.c (parallelize_loops): Likewise.
+       * tree-ssa.c (init_tree_ssa): Likewise.
+       (delete_tree_ssa): Likewise.
+       * tree-flow-inline.h (is_call_used): Remove.
+       * tree-flow.h (struct gimple_df): Remove callused member.
+       * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
+       * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
+       (ref_maybe_used_by_call_p_1): Simplify.
+       (call_may_clobber_ref_p_1): Likewise.
+       * tree-ssa-structalias.c (compute_points_to_sets): Set
+       the call stmt used and clobbered sets.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
+       (find_tail_calls): Verify the tail call.
+
+2010-04-12  Richard Guenther  <rguenther@suse.de>
+
+       * ipa.c (cgraph_postorder): Adjust postorder to guarantee
+       single-iteration always-inline inlining.
+       * ipa-inline.c (cgraph_mark_inline): Do not return anything.
+       (cgraph_decide_inlining): Do not handle always-inline specially.
+       (try_inline): Remove always-inline cycle detection special case.
+       Do not recurse on always-inlines.
+       (cgraph_early_inlining): Do not iterate if not optimizing.
+       (cgraph_gate_early_inlining): remove.
+       (pass_early_inline): Run unconditionally.
+       (gate_cgraph_decide_inlining): New function.
+       (pass_ipa_inline): Use it.  Do not run the IPA inliner if
+       not inlining or optimizing.
+       (cgraph_decide_inlining_of_small_functions): Also consider
+       always-inline functions.
+       (cgraph_default_inline_p): Return true for nodes which should
+       disregard inline limits.
+       (estimate_function_body_sizes): Assume zero size and time for
+       nodes which are marked as disregarding inline limits.
+       (cgraph_decide_recursive_inlining): Do not perform recursive
+       inlining on always-inline nodes.
+
+2010-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/43699
+       * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
+       for exprs satisfying handled_component_p.
+
+2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
+       non-constant aggregate elements.
+
+       * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
+       is a real initialization.
+
+2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       PR c/36774
+       * c-decl.c (start_function): Move forward check for nested function.
+
+2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
+       * config/sh/sh.c: Include reload.h.
+       (sh_legitimize_reload_address): New.
+       * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
+       sh_legitimize_reload_address.
+
+2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
+
+       * config/sh/sh.md (*movqi_pop): New insn pattern.
+       * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
+
+2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_shiftrt): New code iterator.
+       (shiftrt_insn): New code attribute.
+       (shiftrt): Ditto.
+       (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
+       using any_shiftrt code iterator.
+       (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
+       *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
+       (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
+       pattern from corresponding peephole2 patterns.
+       (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
+       using any_shiftrt code iterator.
+       (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
+       (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
+       (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
+       (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
+       *{ashr,lshr}<mode>3_cmp_zext.
+       (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
+
+2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
+       scratch register.
+       (*lshr<mode>3_cconly): Ditto.
+
+2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (lshr<mode>3): Macroize expander from
+       lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
+       (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
+       pattern from *lshr{di,ti}3_1 and corresponding splitters using
+       DWI mode iterator.
+       (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
+       from corresponding peephole2 patterns.
+       (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
+       *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
+       and *lshrdi3_1_rex64 using SWI mode iterator.
+       (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
+       (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
+       (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
+       *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
+       and *lshrdi3_cmp_rex64 using SWI mode iterator.
+       (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
+       (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
+       *lshrdi3_one_bit_cconly_rex64. Macroize insn from
+       *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
+       SWI mode iterator.
+
+2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (ashr<mode>3): Macroize expander from
+       ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
+       (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
+       pattern from *ashr{di,ti}3_1 and corresponding splitters using
+       DWI mode iterator.
+       (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
+       from corresponding peephole2 patterns.
+       (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
+       (ashrsi3_cvt): Rename from ashrsi3_31.
+       (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
+       (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
+       and x86_64_shift_adj_3 using SWI48 mode iterator.
+       (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
+       *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
+       and *ashrdi3_1_rex64 using SWI mode iterator.
+       (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
+       (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
+       (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
+       *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
+       and *ashrdi3_cmp_rex64 using SWI mode iterator.
+       (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
+       (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
+       *ashrdi3_one_bit_cconly_rex64. Macroize insn from
+       *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
+       SWI mode iterator.
+       (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
+       * config/i386/i386.c (ix86_split_ashr): Update for renamed
+       x86_shift<mode>_adj_3 expanders.
+
+2010-04-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/42601
+       * config/arm/arm.c (arm_pic_static_addr): New function.
+       (legitimize_pic_address): Call arm_pic_static_addr when it detects
+       a static symbol.
+       (arm_output_addr_const_extra): Output expression for new pattern.
+       * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
+
+2010-04-10  Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+
+       * ira-costs.c (record_reg_classes): Ignore alternatives that are
+       not enabled.
+
+       * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
+       * web.c: Include "insn-config.h" and "recog.h".
+       (union_match_dups): New function.
+       (web_main): Call it.
+       (union_defs): Don't try to recognize match_dups.
+
+       * reload1.c (eliminate_regs_in_insn): Don't restore an operand
+       if doing so would replace the entire pattern.
+
+2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/43707
+       PR target/43709
+       * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
+       and splitter pattern.  Change splitter operand 1 predicate to
+       nonmemory_operand.
+
+2010-04-09  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
+       lattices are addresses of CONST_DECLs with the same initial value.
+       (ipcp_print_all_lattices): Print values of CONST_DECLs.
+       * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
+
+2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
+           Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+
+       * loop-invariant.c (replace_uses): New static function.
+       (move_invariant_reg): Use it to ensure we can replace the uses.
+
+2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
+
+       * config/picochip/picochip.c (picochip_rtx_costs): Use correct
+       function template.
+       (picochip_override_options): Enable section anchors only above -O1.
+       (picochip_reorg): Fixed a couple of build warnings.
+
+2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (plugin -rdynamic test): Log result.
+       * configure: Regenerate.
+       * config/sol2.h (LINK_SPEC): Handle -rdynamic.
+       (RDYNAMIC_SPEC): Define.
+       * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
+
+2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac: Determine Sun ld version numbers.
+       (comdat_group): Restrict GNU ld version checks to gld.
+       (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
+       (enable_comdat): Support --enable-comdat.
+       * configure: Regenerate.
+       * doc/install.texi (Configuration): Document --enable-comdat.
+
+2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
+       * config/sol2-gld.h: ... here.
+       * config.gcc (sparc*-*-solaris2*): Reflect this.
+       (i[34567]86-*-solaris2*): Use it.
+
 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
 
        * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
 
 2010-04-09  Richard Guenther  <rguenther@suse.de>
 
-       * tree-pretty-print.c (dump_generic_node): Dump
-       TYPE_VECTOR_SUBPARTS.
+       * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
 
 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
 
        PR bootstrap/43684
-       * varasm.c (default_assemble_visibility): Wrap vars that are 
+       * varasm.c (default_assemble_visibility): Wrap vars that are
        set, but unused, by targets without GAS.
-       * config/rs6000/rs6000.c: (paired_emit_vector_compare): 
+       * config/rs6000/rs6000.c: (paired_emit_vector_compare):
        Remove set, but unused, vars.
        (rs6000_legitimize_tls_address): Likewise.
        (altivec_expand_dst_builtin): Likewise.
        * config/darwin.c (machopic_classify_symbol): Likewise.
        (machopic_indirection_name): Likewise.
-       
+
 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (DWI): New mode iterator.
 
        * tree-vectorizer.h (struct _stmt_vec_info): Document
        that vectype is the type of the LHS.
-       (supportable_widening_operation, supportable_narrowing_operation): 
+       (supportable_widening_operation, supportable_narrowing_operation):
        Get both input and output vector types as arguments.
        (vect_is_simple_use_1): Declare.
        (get_same_sized_vectype): Likewise.
        (ix86_attribute_table): Add description for thiscall attribute.
        * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
        * doc/extend.texi: Add documentation for thiscall.
-       
+
 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR c++/28584
        * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
 
 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
-            Wolfgang Gellerich  <gellerich@de.ibm.com>
+           Wolfgang Gellerich  <gellerich@de.ibm.com>
 
        Implement target hook for loop unrolling
        * target.h (loop_unroll_adjust): Add a new target hook function.
        inserting GIMPLE_NOPs into the IL.
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        Explicitly strip handled components and indirect references.
-  
+
        * fold-const.c (fold_unary_loc): Do not strip qualifiers when
        folding address expressions.
        * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.