OSDN Git Service

* ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7ed5cc6..5fdd01e 100644 (file)
@@ -1,3 +1,281 @@
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
+       similarly to DECL_COMDAT.
+       * cgraphunit.c (cgraph_analyze_function): Likewise.
+       * ipa.c (function_and_variable_visibility): Likewise.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
+       BINFO_VIRTUALS when streaming for ltrans unit.
+
+2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
+       (movdi_internal64): Same.
+
+2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
+
+       * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern
+       with a set of similar patterns, where the MATCH_OPERAND for the
+       function argument is replaced with individual references to hardware
+       registers.
+       (save_fpregs_<mode>): Ditto
+       (restore_gpregs_<mode>): Ditto
+       (return_and_restore_gpregs_<mode>): Ditto
+       (return_and_restore_fpregs_<mode>): Ditto
+       (return_and_restore_fpregs_aix_<mode>): Ditto
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-utils.c (postorder_stack): New structure.
+       (ipa_reverse_postorder): Handle aliases.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (reset_edge_caches): Walk aliases.
+       (update_caller_keys): Do not test inlinability of aliases.
+       * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
+       (do_estimate_growth): Fix typo.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
+       (can_remove_node_now_p): ... here; handle same comdat groups.
+       (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
+       (inline_call): Update use of can_remove_node_now_p.
+
+2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
+
+       * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
+       condition to disallow non-identical memory locations.
+       (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
+       preference to bit manipulation instructions.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_for_node_thunks_and_aliases,
+       cgraph_for_node_and_aliases): Fix thinko in recursive walking.
+       (nonremovable_p): New function.
+       (cgraph_can_remove_if_no_direct_calls_p): New function.
+       (used_from_object_file_p): New functoin.
+       (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
+       references from aliases.
+       * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
+       * ipa-inline.c (check_caller_edge): New function.
+       (want_inline_function_called_once_p): Use it; accept aliases called
+       once, too.
+       * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
+
+2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/48454
+       * config/arm/neon.md (vec_pack_trunc): Set the lengths
+       correctly for the case with Quad vectors.
+
+2011-06-13 Jakub Jelinek  <jakub@redhat.com>
+          Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/49352
+       * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
+       all, make sure loop_use_stmt after the loop is a def stmt of a used
+       SSA_NAME that is the only one defined inside of the loop.  Don't
+       check for COND_EXPR and GIMPLE_BINARY_RHS.
+       (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
+       check_reduction is true.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49373
+       * ipa.c (cgraph_externally_visible_p): Check resolution info.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/48836
+       * ipa-inline-transform.c: Include tree-pass.h
+       (inline_transform): Set TODO_update_ssa_only_virtuals.
+       * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49378
+       * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
+       aliases and thunks.
+
+2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
+       Take number of iterations to peel into account for equally frequent
+       misalignment values.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (produce_symtab): Stream out the newly represented
+       aliases.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
+       args.
+       (ipa_update_after_lto_read): Likewise.
+       (ipa_write_node_info): Do not sream call_with_var_arguments.
+       (ipa_read_node_info): Likewise.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
+       (lto_symtab_resolve_can_prevail_p): Likewise.
+       (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
+       * cgraph.c (same_body_aliases_done): New global var.
+       (cgraph_same_body_alias_1): Rename to ...
+       (cgraph_create_function_alias): ... this one; reorg to new
+       representation.
+       (cgraph_same_body_alias): Use cgraph_create_function_alias;
+       record references when asked to.
+       (cgraph_add_thunk): Fix formating.
+       (cgraph_get_node): Kill same body alias code.
+       (cgraph_node_for_asm): Likewise.
+       (cgraph_remove_same_body_alias): Remove.
+       (cgraph_remove_node): Kill same body alias code.
+       (cgraph_mark_address_taken_node): Mark also the aliased function
+       as having address taken.
+       (dump_cgraph_node): Dump same body aliases.
+       (cgraph_for_node_thunks_and_aliases): Update for new alias
+       representation.
+       (cgraph_for_node_and_aliases): Likewise.
+       * cgraph.h (same_body): Kll pointer.
+       (same_body_alias): Update comment.
+       (same_body_aliases_done): Declare.
+       (cgraph_remove_same_body_alias): Remove declaration.
+       (cgraph_create_function_alias): Declare.
+       (cgraph_process_same_body_aliases): Declare.
+       (cgraph_function_with_gimple_body_p): Check for alias.
+       (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
+       (cgraph_alias_aliased_node): New function.
+       (cgraph_function_node): Update for new aliases.
+       (cgraph_function_or_thunk_node): Likewise.
+       * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
+       (inline_call): Remove dead aliases.
+       * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
+       name hack for same body aliases.
+       (clone_of_p): Look through aliases.
+       (verify_cgraph_node): Verify aliases.
+       (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
+       (cgraph_process_same_body_aliases): New function.
+       (process_function_and_variable_attributes): Disable weakref warning on
+       alias.
+       (cgraph_analyze_functions): Handle aliases.
+       (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
+       (assemble_thunks): Rename to ...
+       (assemble_thunks_and_aliases): ... this one; handle aliases, too.
+       (cgraph_expand_function): Remove alias output code.
+       (cgraph_output_in_order): Skip aliases.
+       (cgraph_preserve_function_body_p): Aliases don't need preserving.
+       * ipa-ref.c (ipa_ref_use_name): Add alias reference.
+       (ipa_record_reference): Do not assert on alias references.
+       (ipa_ref_has_aliases_p): New function.
+       * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
+       (ipa_ref_has_aliases_p): Declare.
+       * lto-cgraph.c (lto_output_node): Handle aliases.
+       (input_node): Likewise.
+       * lto-streamer-out.c (lto_output): Skip aliases.
+       (produce_symtab): Kill same_body_alias code.
+       * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
+       (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
+       * ipa-inline.c (update_caller_keys): Walk aliases.
+       (inline_small_functions): Fix thinko in previous patch.
+       * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
+       (function_and_variable_visibility): Do not walk same body aliases.
+       * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
+       (ipa_pta_execute): Use it.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
+       (*vec_dupv2df): Rename from vec_dupv2df.
+       (vec_dupv2df): New expander.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md: Use default value in "isa" attribute.
+       * config/i386/sse.md: Ditto.
+       * config/i386/mmx.md: Ditto.
+
+2011-06-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/45335
+       * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
+       stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
+       (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
+       (arm_legitimate_ldrd_p): New prototype.
+       (arm_output_ldrd): New prototype.
+       * config/arm/arm.c (arm_check_ldrd_operands): New function.
+       (arm_legitimate_ldrd_p): New function.
+       (arm_output_ldrd): New function.
+
+2011-06-10  David Li  <davidxl@google.com>
+
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
+       * passes.c (passr_eq): New function.
+       (create_pass_tab): New function.
+       (pass_traverse): New function.
+       (dump_one_pass): New function.
+       (dump_pass_list): New function.
+       (dump_passes): New function.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
+       setting the nothrow flag.
+       * ipa-reference.c (propagate): Skip aliases.
+       * ipa-pure-const.c (propagate_pure_const): Skip aliases.
+       (propagate_nothrow): Skip aliases; do not update cgraph.
+       (local_pure_const): Do not update cgraph.
+       * tree-profile.c (tree_profiling): Do fixup_cfg.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
+       (cgraph_local_node_p): ... here; handle aliases.
+       (has_addr_references_p): Break out from ...;
+       (cgraph_remove_unreachable_nodes) ... here.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * opts.c (default_options): Enlist OPT_finline_functions_called_once.
+       * common.opt (flag_inline_functions_called_once): Do not
+       initialize to 1.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
+       (ipcp_initialize_node_lattices): Do not deal with aliases;
+       Do not try to propagate through thunks.
+       (ipcp_change_tops_to_bottom): Do not deal with aliases.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_write_node_info): Stream jump functions
+       for indirect calls.
+       (ipa_read_node_info): Likewise.
+
 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR lto/49302
@@ -7,7 +285,7 @@
        (gimple_expand_builtin_pow): Minor cleanup.
        (gimple_expand_builtin_cabs): New.
        (execute_cse_sincos): Add case for BUILT_IN_CABS.
-       
+
 2011-06-10  Jan Hubicka  <jh@suse.cz>
 
        * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
 
 2011-06-10  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
-       Scan stmts forward when combining, visit inserted stmts when
-       a stmt was changed.
+       * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
+       forward when combining, visit inserted stmts when a stmt was changed.
 
 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
 
 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
            Richard Earnshaw  <rearnsha@arm.com>
 
-       * config/arm/arm.c (const_ok_for_op): Check to see
-       if mvn can be used.
+       * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
        * config/arm/vfp.md (*arm_movdi_vfp): Delete.
        (*thumb2_movdi_vfp): Delete.
        (*arm_movdi_vfp_cortexa8): Delete.
        (cgraph_for_node_thunks_and_aliases): New function.
        (cgraph_for_node_and_aliases): New function.
        (cgraph_make_node_local_1): Break out from ...
-       (cgraph_make_node_local) ... here; use cgraph_for_node_thunks_and_aliases.
+       (cgraph_make_node_local) ... here; use
+       cgraph_for_node_thunks_and_aliases.
        (cgraph_set_nothrow_flag_1): Break out from ...
-       (cgraph_set_nothrow_flag) ... here; use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_nothrow_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
        (cgraph_set_const_flag_1): Break out from ...
-       (cgraph_set_const_flag) ... here; use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_const_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
        (cgraph_set_pure_flag_1): Break out from ...
-       (cgraph_set_pure_flag) ... here; use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_pure_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
        (cgraph_propagate_frequency_1): Break out from ...
-       (cgraph_propagate_frequency) ... here; use cgraph_for_node_thunks_and_aliases.
+       (cgraph_propagate_frequency) ... here; use
+       cgraph_for_node_thunks_and_aliases.
        (cgraph_used_from_object_file_p): Do not care about aliases.
-       (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p): New functions.
+       (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
+       New functions.
        (collect_callers_of_node_1, collect_callers_of_node): New functions.
 
 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
 
        PR rtl-optimization/49154
-       * ira-costs.c (setup_regno_cost_classes_by_mode): If there
-       already is a matching slot in the hashtable, assign it to
-       classes_ptr.
+       * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
+       is a matching slot in the hashtable, assign it to classes_ptr.
 
        PR rtl-optimization/49154
        * doc/tm.texi.in (Register Classes): Document rule for the narrowest
        * config/ia64/unwind-ia64.c: Likewise.
        * config/xtensa/unwind-dw2-xtensa.c: Likewise.
 
-2011-06-03  Jack Howarth <howarth@bromo.med.uc.edu>
+2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
 
        * varpool.c (varpool_extra_name_alias): Return NULL, not false.