This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/55823] [4.8 Regression] ice in inline_call, at ipa-inline-transform.c:270
- From: "hubicka at ucw dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 02 Jan 2013 00:10:52 +0000
- Subject: [Bug tree-optimization/55823] [4.8 Regression] ice in inline_call, at ipa-inline-transform.c:270
- Auto-submitted: auto-generated
- References: <bug-55823-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55823
--- Comment #5 from Jan Hubicka <hubicka at ucw dot cz> 2013-01-02 00:10:52 UTC ---
ipa-cp is behaving funny here. It clones InitCommon so THIS pointer's binfo is
known to enable devirtualization of SetLayoutDirection.
It doesn't devirtualize GetLayoutDirection because it works on per-argument
basis. This is stupid: obviously whenever THIS binfo is known also DC binfo is
known, so we should propagate both into the clone. This is missed optimization
relative to previous ipa-cp implementation and I think relatively serious one -
it is very common that more than one argument is constant.
Martin, can you take a look?
Still don't know exactly why we miss the devirtualization after inlining.
Honza