This is the mail archive of the
mailing list for the GCC project.
Re: [tree-profiling-branch PATCH IPCP extensions + Function cloning
- From: Razya Ladelsky <RAZYA at il dot ibm dot com>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: Ayal Zaks <ZAKS at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org, hubicka at ucw dot cz, Jan Hubicka <jh at suse dot cz>, Mircea Namolaru <NAMOLARU at il dot ibm dot com>, stevenb at suse dot de
- Date: Mon, 17 Jan 2005 12:02:08 +0200
- Subject: Re: [tree-profiling-branch PATCH IPCP extensions + Function cloning
> What makes templates so special so you want to avoid the versioning
Many libstdc++ tests failed when we versioned templates.
I'll continue to investigate this, in the meantime I want to avoid it.
>> bootstrap failed until this change was done...
> Hmm, this sounds like latent inliner (or at least copy_body) bug. Would
> you mind to explain what went wrong without this hunk?
When copying the edge between the EXIT block and its predecessor, the
flags of the original edge
are not copied, but it is assigned with FALLTHROUGH flag.
It appears that there are some functions in which this particular edge has
a different flag. Copying the
cfg of such a function, in such manner, causes ICE for the copied version.
(The cfg verification fails
if I remember correctly.)
I can try and recreate this case if you wish.