Tom Tromey wrote:
"Ian" == Ian Lance Taylor <[EMAIL PROTECTED]> writes:

Ian> But note that IPA via LTO is not going to permit callbacks into the
Ian> front end, because there isn't going to be a front end.  So the
Ian> information needs to be represented in GIMPLE somewhere.

Unfortunately there are lots of unsolved problems here, namely what
the type system will look like.  My current devirtualization pass
relies on facts about the java type system in order to do its work.

To make LTO work, we're going to want to understand what facts you need, and then get them passed on to LTO. If we can get a GIMPLE pass that can do what we need, then we're most of the way there.

And unless I'm mistaken there are even simpler LTO problems that
remain unsolved -- e.g., gcj sets flag_wrapv, but it seems to me that
this would have to be a flag on operations rather than a global for
LTO to be truly language independent.

Sure, we've got to fix that. Want to help? :-) No question there's a long row to hoe, here. I would hope that we could start with a devirtualization pass on GIMPLE, using langhooks if necessary, and gradually migrate that to work with LTO. I certainly wouldn't argue that we should wait for LTO to be done to tackle devirtualization.

--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713

Reply via email to