harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Ozhdikhin" <pavel.ozhdik...@gmail.com>
Subject Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper
Date Wed, 02 May 2007 14:47:59 GMT
Egor,

Thanks for the patch! I needed to update it to run smoothly:

<        if ( dst &&
>        if ( dst && !dst->isNull() &&

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.

-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
>
>

Mime
View raw message