OSDN Git Service

* tree-pass.h (pass_ipa_cdtor_merge): New function.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Aug 2010 12:36:19 +0000 (12:36 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Aug 2010 12:36:19 +0000 (12:36 +0000)
commita53e74714e8c41c838809e7304eed308d75a6a7c
treea5bb59f19d8d091599bf4239efb438a415ce4c98
parentdf5d57d48a207573fa7b4724b9c9e1294be9efc5
* tree-pass.h (pass_ipa_cdtor_merge): New function.
* cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
heap allocated.
(record_cdtor_fn): Move to ipa.c; do not test for
have_ctors_dtors.
(build_cdtor): Move to ipa.c; add code avoiding construction
when target have ctors/dtors and there is only one ctor/dtor at given
priority.
(compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize sort;
reverse order of constructors.
(cgraph_build_cdtor_fns):Move to ipa.c; rename to build_cdtor_fns.
(cgraph_finalize_function): Do not call record_cdtor_fn.
(cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
(cgraph_build_static_cdtor): Move to ipa.c.
* ipa.c: Include target.h and tree-iterator.h.
(cgraph_build_static_cdtor, static_ctors, static_dtors,
record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
pass_ipa_cdtor_merge): New.
* passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
* ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of bounds access.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163443 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/cgraphunit.c
gcc/ipa-prop.c
gcc/ipa-pure-const.c
gcc/ipa.c
gcc/passes.c
gcc/tree-pass.h