harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4115) [drlvm] Dacapo.bloat failed on 7th iteration with server.emconf
Date Fri, 15 Jun 2007 08:15:26 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12505086
] 

Mikhail Fursov commented on HARMONY-4115:
-----------------------------------------

The problem description:
We have:
class C1 extends A;
class C2 extends A;

and code:
A a = foo();
a.virtualCall();

After virtual call devirtualization we have:

A a = foo();
if (a is C1) {
    a.directC1Call();
}else {
   a.virtualCall();
}


After inlining we have:

C2 a = new C2();
if (a is C1) {
  putfield(a, fieldOfC1);
}else {
   a.virtualCall();
}

'escape' pass removes "C2 a = new C2();" operation and at the point of escape restores the
object and adds store for fieldOfC1 for C2 object. This is bug in escape pass.
I propose the following solution:
1) Make simplifier to remove vtable comparison when both vtables are compile time known constants.
2) Make escape to assert in debug mode and return without do anything in release mode when
the situation is found like above.


> [drlvm] Dacapo.bloat failed on 7th iteration with server.emconf
> ---------------------------------------------------------------
>
>                 Key: HARMONY-4115
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4115
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports
>         Environment: Win/IA32
>            Reporter: Vladimir Strigun
>
> Dacapo.bloat failed for large workload on 7th iteration with server.emconf 
> Command line for reproducing the issue:
> java -Xem:server -Xmx900M -Xms900M -cp . Harness -s large -n 10 bloat 
> rev 545621
> Output:
> ===== DaCapo bloat starting warmup =====
> The GC did not provide gc_add_weak_root_set_entry()
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 84282 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 70313 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 71047 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 93579 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 95204 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ===== DaCapo bloat completed warmup in 70516 msec =====
> ===== DaCapo bloat starting warmup =====
> Optimized with: EDU.purdue.cs.bloat.optimize.Main -only EDU.purdue.cs.bloat.trans -pre
-dce -diva -prop -stack-alloc -peel-loops all -f EDU.purdue.cs.bloat.trans.CompactArrayInitializer
EDU.purdue.cs.bloat.trans.SSAPRE .\scratch\optimizedcode
> ** Exception while optimizing search(LEDU/purdue/cs/bloat/cfg/Block;LEDU/purdue/cs/bloat/trans/SSAPRE$ExprInfo;LEDU/purdue/cs/bloat/tree/Expr;LEDU/purdue/cs/bloat/trans/SSAPRE$Def;Ljava/util/List;)V
of class EDU/purdue/cs/bloat/trans/SSAPRE
> null
> java.lang.NullPointerException
> 	at EDU.purdue.cs.bloat.util.Graph$EdgeSet.iterator(Graph.java)
> 	at java.util.AbstractCollection.addAll(AbstractCollection.java:85)
> 	at EDU.purdue.cs.bloat.codegen.RegisterAllocator.<init>(RegisterAllocator.java)
> 	at EDU.purdue.cs.bloat.optimize.Main.bloatMethod(Main.java:1078)
> 	at EDU.purdue.cs.bloat.optimize.Main.editClass(Main.java:688)
> 	at EDU.purdue.cs.bloat.optimize.Main.main(Main.java:446)
> 	at dacapo.bloat.BloatHarness.iterate(BloatHarness.java:25)
> 	at dacapo.Benchmark.run(Benchmark.java)
> 	at dacapo.TestHarness.runBenchmark(TestHarness.java:301)
> 	at dacapo.TestHarness.main(TestHarness.java:242)
> 	at Harness.main(Harness.java:5)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message