harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Egor Pasko <egor.pa...@gmail.com>
Subject Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper
Date Wed, 02 May 2007 14:56:38 GMT
On the 0x2CA day of Apache Harmony Pavel Ozhdikhin wrote:
> Egor,
> 
> Thanks for the patch! I needed to update it to run smoothly:
> 
> <        if ( dst &&
> >        if ( dst && !dst->isNull() &&

oops :)

> and with the updated patch I've managed to pass the stress.Stack test.
> I'm re-running other tests to check if everything is fine now.

greater thanks!

> -Pavel
> 
> On 02 May 2007 17:48:09 +0400, Egor Pasko <egor.pasko@gmail.com> wrote:
> > On the 0x2CA day of Apache Harmony Pavel Ozhdikhin wrote:
> > > I've attached the stack trace, the compilation log and dot files in
> > > JIRA. Hope this'll help.
> >
> > Pavel, thanks for that. The bug is in the InequalityGraph creation
> > code that incorrectly assumes that integer results can be obtained
> > only by operations of type Integer. Which is not right for the inst,
> > where two unmanaged pinters are compared resulting in an int.
> >
> > Please, try this (untested) fix:
> > --- a/vm/jitrino/src/optimizer/abcd/classic_abcd.cpp
> > +++ b/vm/jitrino/src/optimizer/abcd/classic_abcd.cpp
> > @@ -211,6 +211,16 @@ void BuildInequalityGraphWalker::applyTo
> >     Type::Tag inst_type = inst->getType();
> >     if ( !Type::isInteger(inst_type) && inst_type != Type::Boolean &&
> >          inst_type != Type::Char ) {
> > +        // note: some operations of unsupported type can produce operands of
> > +        // supported (int) types, for example,
> > +        // inst-compare-two-unmanaged-pointers, we need these operands as
> > +        // unconstrained in the graph
> > +        Opnd* dst = inst->getDst();
> > +        if ( dst &&
> > +                (dst->getType()->isInteger() ||
> > +                 dst->getType()->isBoolean() ) ) {
> > +            addOldOrCreateOpnd(dst)->setUnconstrained(true);
> > +        }
> >         return;
> >     }
> >     if ( inst->isUnconditionalBranch() || inst->isConditionalBranch() ||
> >
> >
> >
> > hope this helps
> > not having windows, sorry
> >
> > > Thanks,
> > > Pavel
> > >
> > > On 01 May 2007 14:25:33 +0400, Egor Pasko <egor.pasko@gmail.com> wrote:
> > > > On the 0x2C9 day of Apache Harmony Naveen Neelakantam wrote:
> > > > > On Apr 25, 2007, at 7:14 PM, Naveen Neelakantam wrote:
> > > > >
> > > > > >
> > > > > > On Apr 25, 2007, at 9:06 AM, Pavel Ozhdikhin wrote:
> > > > > >
> > > > > >> On 4/25/07, Pavel Ozhdikhin <pavel.ozhdikhin@gmail.com>
wrote:
> > > > >
> > > > > <snip>
> > > > >
> > > > > >>> I've started looking into this patch. I've run into
compilation
> > > > > >>> problems
> > > > > >>> on VS .NET 2003. I can update the patch and test it
before
> > > > > >>> integration to
> > > > > >>> SVN, if you don't mind. Is there anything preventing
us from
> > > > > >>> including the
> > > > > >>> new ABCD into the server optimization path? I can also
update the
> > > > > >>> emconf
> > > > > >>> files to put classic_abcd in place of the old abcd pass.
> > > > > >>>
> > > > > >>
> > > > > >>
> > > > > >> Naveen,
> > > > > >>
> > > > > >> I've updated the patch but ran into the smoke test failure
in -
> > > > > >> Xem:server
> > > > > >> mode. Please see details in the JIRA.
> > > > > >>
> > > > > >> Thanks,
> > > > > >> Pavel
> > > > > >
> > > > > > I'll take a look, but I need to setup a Windows dev environment
first.
> > > > >
> > > > > There goes that plan.  I've tried building on two completely
> > > > > different windows setups (Windows 2003 + .NET 2003, Windows XP +
.NET
> > > > > 2005) and couldn't get harmony built on either.
> > > > >
> > > > > So, I'm stalled trying to reproduce the failure.
> > > >
> > > > I think, if would be great if Pavel gave us a log with the stack trace...
> > > >
> > > > --
> > > > Egor Pasko
> > > >
> > > >
> > >
> >
> > --
> > Egor Pasko
> >
> >
> 

-- 
Egor Pasko


Mime
View raw message