OSDN Git Service

2010-04-12 Steve Ellcey <sje@cup.hp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5b2f0f0..e46891f 100644 (file)
@@ -1,3 +1,196 @@
+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<mode>3 and
+       lshr<mode>3 using any_shiftrt code iterator.
+       (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
+       *ashr<mode>3_doubleword and *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<mode>3_1
+       and *lshr<mode>3_1 using any_shiftrt code iterator.
+       (*<shiftrt_insn>si3_1_zext): Ditto from *ashrsi3_1_zext
+       and *lshrsi3_1_zext.
+       (*<shiftrt_insn>qi3_1_slp): Ditto from *ashrqi3_1_slp
+       and *lshrqi3_1_slp.
+       (*<shiftrt_insn><mode>3_cmp): Ditto from *ashr<mode>3_cmp
+       and *lshr<mode>3_cmp.
+       (*<shiftrt_insn><mode>3_cmp_zext): Ditto from *ashr<mode>3_cmp_zext
+       and *lshr<mode>3_cmp_zext.
+       (*<shiftrt_insn><mode>3_cconly): Ditto from *ashr<mode>3_cconly
+       and *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_cmp
+       and *lshrdi3_cmp_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_cmp
+       and *ashrdi3_cmp_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
@@ -9,6 +202,9 @@
        (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
 
 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
 
-       * config/picochip/picochip.c (picochip_rtx_costs): Use correct function
-       template.
+       * 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.
 
 
        * 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.