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: PR middle-end/52141: ICE due to asm statement


On 02/15/12 03:48, Richard Guenther wrote:
On Tue, Feb 14, 2012 at 6:47 PM, Richard Henderson<rth@redhat.com> wrote:
On 02/14/2012 08:46 AM, Aldy Hernandez wrote:
The call to ipa_tm_diagnose_tm_safe() does nothing because there are no longer any calls in the function, since the function call has been inlined:

f ()
{
<bb 2>:
   __asm__ __volatile__("");
   return;

}

Perhaps we could issue the error when we notice the GIMPLE_ASM while scanning for irrevocable blocks earlier. The attached patch does so, and fixes the PR.

What am I missing, cause I *know* there's a rat's nest somewhere.

Ug.


Which means that the error message is all too likely simply be confusing
rather than anything else, since the asm isn't lexically present in the
transaction.

That's why I also specified the calling function in the error message. But I do agree that the message has the potential of confusing.



I wonder, not for the first time, if we shouldn't simply turn off early inlining with TM, or at least of and into tm-related functions, such as this. I assume that the IPA inlining pass would take up the slack...

You will hear no complaints from me. I'm tired of fixing the same bug over and over.


Hmm.  I think you rather want to teach local_pure_const about TM
properties you want to know and have them propagated properly
(of course unless pure/const which is about optimization and has an
easy fallback default yours wouldn't have that - you'd have to assume
the callee contains an invalid asm ...)

Richard G., can you explain the parenthesized comment. I'm not sure I follow you.



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