diff options
author | Diego Novillo <dnovillo@gcc.gnu.org> | 2009-10-03 17:10:11 -0400 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2009-10-03 17:10:11 -0400 |
commit | d7f09764d7bc66b9997c811c22e11efc87b44792 (patch) | |
tree | 3a9882bd235e5026410e5397a5e46a97ece50b48 /gcc/ipa-cp.c | |
parent | b06e51a0c9852e7fb7c6f589b46f6906ce48febd (diff) | |
download | gcc-d7f09764d7bc66b9997c811c22e11efc87b44792.zip gcc-d7f09764d7bc66b9997c811c22e11efc87b44792.tar.gz gcc-d7f09764d7bc66b9997c811c22e11efc87b44792.tar.bz2 |
Merge lto branch into trunk.
From-SVN: r152434
Diffstat (limited to 'gcc/ipa-cp.c')
-rw-r--r-- | gcc/ipa-cp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index f7782cb..a974dd0 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -1273,7 +1273,13 @@ ipcp_generate_summary (void) static bool cgraph_gate_cp (void) { - return flag_ipa_cp; + /* FIXME lto. IPA-CP does not tolerate running when the inlining decisions + have not been applied. This happens when WPA modifies the callgraph. + Since those decisions are not applied until after all the IPA passes + have been run in LTRANS, this means that IPA passes may see partially + modified callgraphs. The solution to this is to apply WPA decisions + early during LTRANS. */ + return flag_ipa_cp && !flag_ltrans; } struct ipa_opt_pass_d pass_ipa_cp = |