You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Naveen Neelakantam <ne...@uiuc.edu> on 2007/05/01 04:17:04 UTC

Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

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 <pa...@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.

Naveen

> Naveen
>
>>
>>
>>> Thanks,
>>> Pavel

<snip>

Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

Posted by Egor Pasko <eg...@gmail.com>.
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 <eg...@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 <eg...@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 <pa...@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


Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

Posted by Pavel Ozhdikhin <pa...@gmail.com>.
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 <eg...@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 <eg...@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 <pa...@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
>
>

Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

Posted by Egor Pasko <eg...@gmail.com>.
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 <eg...@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 <pa...@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


Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

Posted by Pavel Ozhdikhin <pa...@gmail.com>.
I've attached the stack trace, the compilation log and dot files in
JIRA. Hope this'll help.

Thanks,
Pavel

On 01 May 2007 14:25:33 +0400, Egor Pasko <eg...@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 <pa...@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
>
>

Re: [drlvm][jit] abcd and devirtualizer patches was: [OT] Harmony used in accepted research paper

Posted by Egor Pasko <eg...@gmail.com>.
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 <pa...@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