This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix early inliner inlining uninlinable functions


On Thu, Dec 1, 2011 at 05:59, Richard Guenther <rguenther@suse.de> wrote:
> On Tue, 29 Nov 2011, Diego Novillo wrote:
>
>> On Tue, Nov 29, 2011 at 12:49, H.J. Lu <hjl.tools@gmail.com> wrote:
>>
>> > This caused:
>> >
>> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51346
>>
>> Thanks. ÂI'm on it.
>
> The patch was wrong, please revert it. ÂAt the gimple stmt
> modification level we shouldn't modify the cgraph. ÂThat's
> a layering violation at least.

No, this is a pre-existing problem that got aggravated with the new
changes to the inline attribute in fold.  I think we need to either
toss out the edge attribute or make it such that they are more
automatically sync'd.  Unfortunately, we cannot get rid of it, since
we sometimes do not have the statement.

So, we have to live with the two attributes.  How about, we make the
edge attribute always dependent on the statement?  If the statement
exists, the edge attribute always take its value from it.  Only when
the statement doesn't exist, we take its value from the call.  All
this can be put into a small predicate.

> Please file a bug with a reduced testcase that still fails
> without your fix.

I'll add a test to the final patch after it finishes reducing (the
original test case is huge).


Diego.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]