public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* can_throw_internal affected by inlining?
@ 2009-07-10 22:58 Richard Henderson
  2009-07-11 12:59 ` Jan Hubicka
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2009-07-10 22:58 UTC (permalink / raw)
  To: jh; +Cc: gcc

Re: http://gcc.gnu.org/ml/gcc-patches/2009-03/msg01404.html

Do you have test cases for this?

Changing can_throw_internal/external to depend on whether or not future 
inlining is possible looks *very* wrong to me.  Surely the only thing 
that matters for new code that might appear "below" this position in the 
tree is whether or not it might throw, and the only thing that changes 
with inlining is increased knowledge of whether and how it throws.

The only thing I can imagine is that somehow an inline function was 
incorrectly marked as nothrow, and then it was inlined exposing the 
throw (i.e. resx) which then led the problem you report.

On the trans-mem branch this is causing me problems.  I'm replacing a 
direct function call with an indirect function call.  Neither can be 
inlined, but inlinable_call_p thinks that it's a possibility for the 
indirect function call.  With your logic, this magically changes a 
statement from !can_throw_internal to can_throw_internal.  Which then of 
course results in a verify_cfg abort.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-07-17 10:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-10 22:58 can_throw_internal affected by inlining? Richard Henderson
2009-07-11 12:59 ` Jan Hubicka
2009-07-11 17:44   ` Richard Henderson
2009-07-11 17:59     ` Jan Hubicka
2009-07-11 18:09       ` Richard Henderson
2009-07-11 18:53         ` Jan Hubicka
2009-07-16 17:09   ` Richard Henderson
2009-07-17 10:36     ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).