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 13:48:09 GMT
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