Wow! Thanks for testing it Pavel!
However, should unguard be disabled? As I understand it, won't most
virtual calls be devirtualized using the static heuristic during
first compilation? It is fairly accurate, but unguard will remove
the ones that are unprofitable. This seems intelligent to me.
Perhaps the profile-based devirtualization code should be modified so
that it only devirtualizes virtual calls that have been unguarded?
On the other hand, profile-based devirtualization will do the "right"
thing every time. So, maybe you are right and we should disable the
static heuristic and unguard.
What do you think?
Naveen
On Apr 17, 2007, at 8:14 AM, Pavel Ozhdikhin wrote:
I've tested HARMONY-3630. Profile-guided devirtualizations gives ~2%
improvement on SPECjbb2005 which is impressive! We should disable
unguard
config before integrating the patch - otherwise we'll devirtualize
virtual
calls twice. Also we should get rid of code duplication in
ValueProfiler.cpp.
I'm going to prepare the patch which includes removing unguard
config and
then we can integrate profile-guided devirt for abstract and
virtual calls.
Thanks,
Pavel
On 4/12/07, Pavel Ozhdikhin <[EMAIL PROTECTED]> wrote:
Naveen,
It's great! Do you have any data about performance gain/profiling
overhead
for profile-guided devirtualization of virtual and abstract calls?
Current
agressive devirtualization with unguard pass works pretty well and
it's
interesting if we can beat it with value profile.
I'm going to play with your patches a bit to better understand the
performance overhead/gain implications. I'll comment about the
results here
on the dev list.
Thanks,
Pavel
On 4/12/07, Naveen Neelakantam <[EMAIL PROTECTED]> wrote:
>
> I've uploaded a patch against Egor's ABCD implementation in
> HARMONY-1788. It passes the tests included with HARMONY-2141,
> HARMONY-2144 and HARMONY-2147, and removes all but one bounds check
> from BidirectionalBubbleSort in HARMONY-1564. I've also ran the
> DaCapo benchmarks using it and it doesn't seem to break anything.
>
> I've also opened a JIRA issue for my profile-based abstract and
> virtual call devirtualization patch: HARMONY-3630.
>
> Naveen
>
> On Apr 9, 2007, at 12:23 AM, Pavel Ozhdikhin wrote:
>
> > Naveen,
> >
> > Congrartulations! I eager to read your paper - please announce a
> > link here
> > when it's available.
> >
> > I'm also looking forward to a new ABCD impementation from Egor
and
> > your -
> > your both did a lot to make it working, now it's time to make use
> > of it in
> > Harmony.
> >
> > Thanks,
> > Pavel
> >
> > On 4/8/07, Naveen Neelakantam < [EMAIL PROTECTED]> wrote:
> >>
> >> Hello all,
> >>
> >> You might like to hear that a paper which used Apache Harmony
as part
> >> of a research infrastructure was accepted to ISCA 2007
(International
>
> >> Symposium on Computer Architecture). I will be presenting
this work
> >> in San Diego in June and will be sure to include a slide
plugging
> >> Harmony.
> >>
> >> I would like to thank all of the JVM and classlib developers
who made
>
> >> such an endeavor even possible. You are doing a wonderful
job, and
> >> it is much appreciated! Please pat yourself on the back. :-)
> >>
> >> BTW, in the process of doing this work I helped get Egor
Pasko's ABCD
>
> >> reimplementation finished, and I added profile-based abstract
call
> >> and virtual devirtualization to the code from HARMONY-2012.
I'll
> >> post the patches after the weekend.
> >>
> >> Thanks again,
> >> Naveen
> >>
>
>