diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-30 11:01:26 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-30 11:01:26 +0000 |
commit | 9da15f94e01c84572d5cfcd786fa92d27c0d240c (patch) | |
tree | 89e94c45167bc166ebbe1ae2a2c33e0c8cbf65b0 | |
parent | e86bbaeeed5c0bd4aeccc31eae6f7be4ba2b522e (diff) | |
download | gcc-9da15f94e01c84572d5cfcd786fa92d27c0d240c.tar.gz |
PR middle-end/48752
* ipa-inline.c (early_inliner): Disable when doing late
addition of function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173211 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0655cf644a7..f209b7e2d23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-30 Jan Hubicka <jh@suse.cz> + + PR middle-end/48752 + * ipa-inline.c (early_inliner): Disable when doing late + addition of function. + 2011-04-30 Jakub Jelinek <jakub@redhat.com> * dwarf2out.c (get_address_mode): New inline. diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 47b26f43da5..1194785acaa 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1664,6 +1664,15 @@ early_inliner (void) if (seen_error ()) return 0; + /* Do nothing if datastructures for ipa-inliner are already computed. This + happens when some pass decides to construct new function and + cgraph_add_new_function calls lowering passes and early optimization on + it. This may confuse ourself when early inliner decide to inline call to + function clone, because function clones don't have parameter list in + ipa-prop matching their signature. */ + if (ipa_node_params_vector) + return 0; + #ifdef ENABLE_CHECKING verify_cgraph_node (node); #endif |