You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Estelle Liu <ly...@gmail.com> on 2007/04/01 13:53:58 UTC

Re: [jitrino][profile]how to use EdgeProfiler

Hi, Mikhail,
Thanks for your advice , and it works.
So is there any limitation for entryThreshold and backedgeThreshold, i.e,
can they be reduced to any  positive value? It seems when I reduce both ten
times, some access collision arises.


2007/3/31, Mikhail Fursov <mi...@gmail.com>:
>
> Estelle,
> AFAIR
> "edge_annotate" assigns -1 to every edge by default before applying
> profile.
> If there are any incompatibilities/wrong mapping of counters you have the
> assertion you've got: -  negative counters value.
> The error in your configuration could be here:
> -XDjit.CD_OPT.path.optimizer
> =ssa,devirt,inline,uce,purge,simplify,dce,uce,edge_instrument
> -XDjit.CD_OPT2.path.optimizer=ssa
> ,devirt,inline,uce,purge,simplify,dce,uce,edge_annotate
> inline path depends on runtime application state (like initialization
> order).
>
> I suggest you
> 1) moving inline optimization pass after instrumentation/annotation. (What
> is the reason to do inlining without profile?)
> 2) Check that you use the latest SVN version (HARMONY-3464 fixes very
> similar edge profiler issue)
> 3) Compare CFG before instrumentation and annotation: these graphs must be
> equal.
>
>
>
>
> On 3/31/07, Estelle Liu <ly...@gmail.com> wrote:
> >
> > Hi,all,
> > I wrote a configure file and used an edge profiler. Assertion error
> occurs
> > when running  simple bytecode such as HelloWorld.
> > The error  is:
> > File: ...\jitrino\dynopt\EdgeProfiler.cpp
> > Line: 266
> > Expression: edgeFreq >= 0
> >
> > It seems edgeFreq is negative,but why? Is my configure file something
> > wrong?
> >
> > My configure file is as follow:
> >
> > chains=chain1,chain2
> > chain1.jits=JET_CLINIT
> > chain2.jits=CD_OPT,CD_OPT2
> > chain1.filter=+::<clinit>
> > chain1.filter=-
> >
> > JET_CLINIT.file=jitrino
> > CD_OPT.file=jitrino
> > CD_OPT2.file=jitrino
> >
> > #Confuguration of profile collector and recompilation
> > EDGE_PROF.profilerType=EDGE_PROFILER
> > EDGE_PROF.entryThreshold=10000
> > EDGE_PROF.backedgeThreshold=40000
> > EDGE_PROF.tbsTimeout=10
> > EDGE_PROF.tbsInitialTimeout=0
> > CD_OPT.genProfile=EDGE_PROF
> > CD_OPT2.useProfile=EDGE_PROF
> >
> > # configuration of JET_CLINIT
> > -XDjit.JET_CLINIT.path=
> >
> > #configuration of CD_OPT
> > -XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
> > -XDjit.CD_OPT.path.optimizer=ssa
> ,devirt,inline,uce,purge,simplify,dce,uce,
> > edge_instrument
> > ,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> > -XDjit.CD_OPT.path.codegen=lock_method
> >
> >
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> > -XDjit.CD_OPT.path.dce1=cg_dce
> > -XDjit.CD_OPT.path.dce2=cg_dce
> > -XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
> > -XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
> > -XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
> > #inliner configuration of CD_OPT
> > -XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
> > -XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
> > -XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
> > -XDjit.CD_OPT.arg.codegen.dce1.early=yes
> > -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> > -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> > -XDjit.CD_OPT.arg.codegen.btr.insertCMOVs=no
> > -XDjit.CD_OPT.arg.codegen.btr.removeConstCompare=yes
> >
> > #configuration of CD_OPT2
> > -XDjit.CD_OPT2.path=opt_init,translator,optimizer,hir2lir,codegen
> > -XDjit.CD_OPT2.path.optimizer=ssa
> > ,devirt,inline,uce,purge,simplify,dce,uce,
> > edge_annotate
> > ,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> > -XDjit.CD_OPT2.path.codegen=lock_method
> >
> >
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> > -XDjit.CD_OPT2.path.dce1=cg_dce
> > -XDjit.CD_OPT2.path.dce2=cg_dce
> > -XDjit.CD_OPT2.path.regalloc=bp_regalloc1,bp_regalloc2
> > -XDjit.CD_OPT2.path.bp_regalloc1=bp_regalloc
> > -XDjit.CD_OPT2.path.bp_regalloc2=bp_regalloc
> > #inliner configuration of CD_OPT2
> > -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.filter=-
> > -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.path=ssa,devirt
> > -XDjit.CD_OPT2.arg.optimizer.inline.pipeline=CD_OPT2_inliner_pipeline
> > -XDjit.CD_OPT2.arg.codegen.dce1.early=yes
> > -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> > -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> > -XDjit.CD_OPT2.arg.codegen.btr.insertCMOVs=no
> > -XDjit.CD_OPT2.arg.codegen.btr.removeConstCompare=yes
> > -XDjit.arg.codegen.emitter.align=4
> >
> > #system properties
> > -Djava.compiler=client
> >
> >
> >
> > Thanks!
> > --
> > Estelle
> >
>
>
>
> --
> Mikhail Fursov
>



-- 
Estelle

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Mikhail Fursov <mi...@gmail.com>.
Here is an error in your config: inline pass is used without additional
'cleaning' sequence.
Solution: replace 'inline' with 'inline,purge,dce,uce' in your
configuration.

On 4/3/07, Estelle Liu <ly...@gmail.com> wrote:
>
> Hi,
> I run the programe again and still met the same problem. I use P4 1cpu
> 2.80GHz windowsXP.
> The configuration file is nearly the same as the one on the top of this
> issue, the differences are the values of two thresholds and the setting
> for
> inline as you figured out above.
> And I attach the whole just below:
>
> chains=chain1,chain2
> chain1.jits=JET_CLINIT
> chain2.jits=CD_OPT,CD_OPT2
> chain1.filter=+::<clinit>
> chain1.filter=-
> JET_CLINIT.file=jitrino
> CD_OPT.file=jitrino
> CD_OPT2.file=jitrino
> #Confuguration of profile collector and recompilation
> EDGE_PROF.profilerType=EDGE_PROFILER
> EDGE_PROF.entryThreshold=1000
> EDGE_PROF.backedgeThreshold=1000
> EDGE_PROF.tbsTimeout=10
> EDGE_PROF.tbsInitialTimeout=0
> CD_OPT.genProfile=EDGE_PROF
> CD_OPT2.useProfile=EDGE_PROF
> # configuration of JET_CLINIT
> -XDjit.JET_CLINIT.path=
> #configuration of CD_OPT
> -XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
> -XDjit.CD_OPT.path.optimizer=ssa
> ,devirt,uce,purge,simplify,dce,uce,edge_instrument,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> -XDjit.CD_OPT.path.codegen=lock_method
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> -XDjit.CD_OPT.path.dce1=cg_dce
> -XDjit.CD_OPT.path.dce2=cg_dce
> -XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
> -XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
> -XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
> -XDjit.CD_OPT.arg.codegen.dce1.early=yes
> -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> -XDjit.CD_OPT.arg.codegen.btr.insertCMOVs=no
> -XDjit.CD_OPT.arg.codegen.btr.removeConstCompare=yes
> #configuration of CD_OPT2
> -XDjit.CD_OPT2.path=opt_init,translator,optimizer,hir2lir,codegen
> -XDjit.CD_OPT2.path.optimizer=ssa
> ,devirt,uce,purge,simplify,dce,uce,edge_annotate,inline,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> -XDjit.CD_OPT2.path.codegen=lock_method
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> -XDjit.CD_OPT2.path.dce1=cg_dce
> -XDjit.CD_OPT2.path.dce2=cg_dce
> -XDjit.CD_OPT2.path.regalloc=bp_regalloc1,bp_regalloc2
> -XDjit.CD_OPT2.path.bp_regalloc1=bp_regalloc
> -XDjit.CD_OPT2.path.bp_regalloc2=bp_regalloc
> #inliner configuration of CD_OPT2
> -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.filter=-
> -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.path=ssa,devirt
> -XDjit.CD_OPT2.arg.optimizer.inline.pipeline=CD_OPT2_inliner_pipeline
> -XDjit.CD_OPT2.arg.codegen.dce1.early=yes
> -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> -XDjit.CD_OPT2.arg.codegen.btr.insertCMOVs=no
> -XDjit.CD_OPT2.arg.codegen.btr.removeConstCompare=yes
> -XDjit.arg.codegen.emitter.align=4
>
> #system properties
> -Djava.compiler=client
>



-- 
Mikhail Fursov

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Estelle Liu <ly...@gmail.com>.
Hi,
I run the programe again and still met the same problem. I use P4 1cpu
2.80GHz windowsXP.
The configuration file is nearly the same as the one on the top of this
issue, the differences are the values of two thresholds and the setting for
inline as you figured out above.
And I attach the whole just below:

 chains=chain1,chain2
chain1.jits=JET_CLINIT
chain2.jits=CD_OPT,CD_OPT2
chain1.filter=+::<clinit>
chain1.filter=-
JET_CLINIT.file=jitrino
CD_OPT.file=jitrino
CD_OPT2.file=jitrino
 #Confuguration of profile collector and recompilation
EDGE_PROF.profilerType=EDGE_PROFILER
EDGE_PROF.entryThreshold=1000
EDGE_PROF.backedgeThreshold=1000
EDGE_PROF.tbsTimeout=10
EDGE_PROF.tbsInitialTimeout=0
CD_OPT.genProfile=EDGE_PROF
CD_OPT2.useProfile=EDGE_PROF
 # configuration of JET_CLINIT
-XDjit.JET_CLINIT.path=
 #configuration of CD_OPT
-XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
-XDjit.CD_OPT.path.optimizer=ssa,devirt,uce,purge,simplify,dce,uce,edge_instrument,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
-XDjit.CD_OPT.path.codegen=lock_method,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
-XDjit.CD_OPT.path.dce1=cg_dce
-XDjit.CD_OPT.path.dce2=cg_dce
-XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
-XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
-XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
-XDjit.CD_OPT.arg.codegen.dce1.early=yes
-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
-XDjit.CD_OPT.arg.codegen.btr.insertCMOVs=no
-XDjit.CD_OPT.arg.codegen.btr.removeConstCompare=yes
 #configuration of CD_OPT2
-XDjit.CD_OPT2.path=opt_init,translator,optimizer,hir2lir,codegen
-XDjit.CD_OPT2.path.optimizer=ssa,devirt,uce,purge,simplify,dce,uce,edge_annotate,inline,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
-XDjit.CD_OPT2.path.codegen=lock_method,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
-XDjit.CD_OPT2.path.dce1=cg_dce
-XDjit.CD_OPT2.path.dce2=cg_dce
-XDjit.CD_OPT2.path.regalloc=bp_regalloc1,bp_regalloc2
-XDjit.CD_OPT2.path.bp_regalloc1=bp_regalloc
-XDjit.CD_OPT2.path.bp_regalloc2=bp_regalloc
#inliner configuration of CD_OPT2
-XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.filter=-
-XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.path=ssa,devirt
-XDjit.CD_OPT2.arg.optimizer.inline.pipeline=CD_OPT2_inliner_pipeline
-XDjit.CD_OPT2.arg.codegen.dce1.early=yes
-XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
-XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
-XDjit.CD_OPT2.arg.codegen.btr.insertCMOVs=no
-XDjit.CD_OPT2.arg.codegen.btr.removeConstCompare=yes
-XDjit.arg.codegen.emitter.align=4

#system properties
-Djava.compiler=client

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Mikhail Fursov <mi...@gmail.com>.
On 4/3/07, Mikhail Fursov <mi...@gmail.com> wrote:
>
>
> On 4/3/07, Estelle Liu <ly...@gmail.com> wrote:
> >
> > >
> > >
> > > > Do you mean that profile is changing when you access it from
> > > > compilation?
> > > > Yes, this is a normal situation.
> > >
> > >
> > Hi,Mikhail,
> >
> > I set them both 1000, with the same configuration and run HelloWorld as
> > before.The right result can be printed out but with extra error dialog:
> > " Java.exe application errors,"0x018b81e0"instruction refers
> > "0x00000010"
> > but it can't be read. "
>
>
> I think I can reproduce this bug. If put server.emconf file into another
> directory and use -Xem:<full_path_to_file> cmd line option VM fails. I will
> try to fix it today.
>

Estelle,
The failure I described above is my fault: I used 64bit version of
server.emconf and there is no surprise that VM failed.
After valid server.emconf is used with counters set to 1000 (like your
example) "Hello world" application passed.
I use P4 1 CPU 2HT PC, Windows 2003.
Here is cmd-line and output:

C:\users\mfursov\tests\hello>C:\users\mfursov\harmony_build\drlvm\build\win_ia32_msvc_debug\deploy\jdk\jre\bin\java.exe
-Xem:C:/users/mfursov/tests/hello/server.emconf -verbose:em.SD2_OPT Hello
EM: recompile start:[SD2_OPT n=1] java/lang/Object::<init>()V
EM: recompile done:[SD2_OPT n=1: OK] java/lang/Object::<init>()V
EM: recompile start:[SD2_OPT n=2] java/lang/String::hashCode()I
EM: recompile done:[SD2_OPT n=2: OK] java/lang/String::hashCode()I
EM: recompile start:[SD2_OPT n=3]
java/lang/String::regionMatches(ILjava/lang/String;II)Z
EM: recompile done:[SD2_OPT n=3: OK]
java/lang/String::regionMatches(ILjava/lang/String;II)Z
EM: recompile start:[SD2_OPT n=4] java/lang/String::charAt(I)C
EM: recompile done:[SD2_OPT n=4: OK] java/lang/String::charAt(I)C
EM: recompile start:[SD2_OPT n=5] java/lang/String::indexOf(II)I
EM: recompile done:[SD2_OPT n=5: OK] java/lang/String::indexOf(II)I
EM: recompile start:[SD2_OPT n=6]
java/util/jar/InitManifest::nextChunk(Ljava/io/InputStream;Ljava/util/List;)[B
EM: recompile done:[SD2_OPT n=6: OK]
java/util/jar/InitManifest::nextChunk(Ljava/io/InputStream;Ljava/util/List;)[B
EM: recompile start:[SD2_OPT n=7] java/io/ByteArrayOutputStream::write(I)V
EM: recompile done:[SD2_OPT n=7: OK]
java/io/ByteArrayOutputStream::write(I)V
EM: recompile start:[SD2_OPT n=8]
org/apache/harmony/luni/util/Util::convertUTF8WithBuf([B[CII)Ljava/lang/String;
PASSED!
EM: recompile done:[SD2_OPT n=8: OK]
org/apache/harmony/luni/util/Util::convertUTF8WithBuf([B[CII)Ljava/lang/String;



If you still have the problem, I suggest opening new JIRA issue and
attaching all configuration files you use.


-- 
Mikhail Fursov

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Mikhail Fursov <mi...@gmail.com>.
On 4/3/07, Estelle Liu <ly...@gmail.com> wrote:
>
> >
> >
> > > Do you mean that profile is changing when you access it from
> > > compilation?
> > > Yes, this is a normal situation.
> >
> >
> Hi,Mikhail,
>
> I set them both 1000, with the same configuration and run HelloWorld as
> before.The right result can be printed out but with extra error dialog:
> " Java.exe application errors,"0x018b81e0"instruction refers "0x00000010"
> but it can't be read. "


I think I can reproduce this bug. If put server.emconf file into another
directory and use -Xem:<full_path_to_file> cmd line option VM fails. I will
try to fix it today.

And then also assertion failed, that's for line 709 of PMF.cpp,  the
> expression :depth==0
>

This is a common assertion when VM is stopped by errors like above.

-- 
Mikhail Fursov

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Estelle Liu <ly...@gmail.com>.
>
>
> > Do you mean that profile is changing when you access it from
> > compilation?
> > Yes, this is a normal situation.
>
>
Hi,Mikhail,

I set them both 1000, with the same configuration and run HelloWorld as
before.The right result can be printed out but with extra error dialog:
" Java.exe application errors,"0x018b81e0"instruction refers "0x00000010"
but it can't be read. "
And then also assertion failed, that's for line 709 of PMF.cpp,  the
expression :depth==0


Regards
-- 
Estelle

Re: [jitrino][profile]how to use EdgeProfiler

Posted by Mikhail Fursov <mi...@gmail.com>.
On 4/1/07, Estelle Liu <ly...@gmail.com> wrote:
>
> Hi, Mikhail,
> Thanks for your advice , and it works.
> So is there any limitation for entryThreshold and backedgeThreshold, i.e,
> can they be reduced to any  positive value?


Yes, you can put them both == 1. I use this configuration sometimes to test
server mode.

It seems when I reduce both ten
> times, some access collision arises.


Do you mean that profile is changing when you access it from compilation?
Yes, this is a normal situation.


2007/3/31, Mikhail Fursov <mi...@gmail.com>:
> >
> > Estelle,
> > AFAIR
> > "edge_annotate" assigns -1 to every edge by default before applying
> > profile.
> > If there are any incompatibilities/wrong mapping of counters you have
> the
> > assertion you've got: -  negative counters value.
> > The error in your configuration could be here:
> > -XDjit.CD_OPT.path.optimizer
> > =ssa,devirt,inline,uce,purge,simplify,dce,uce,edge_instrument
> > -XDjit.CD_OPT2.path.optimizer=ssa
> > ,devirt,inline,uce,purge,simplify,dce,uce,edge_annotate
> > inline path depends on runtime application state (like initialization
> > order).
> >
> > I suggest you
> > 1) moving inline optimization pass after instrumentation/annotation.
> (What
> > is the reason to do inlining without profile?)
> > 2) Check that you use the latest SVN version (HARMONY-3464 fixes very
> > similar edge profiler issue)
> > 3) Compare CFG before instrumentation and annotation: these graphs must
> be
> > equal.
> >
> >
> >
> >
> > On 3/31/07, Estelle Liu <ly...@gmail.com> wrote:
> > >
> > > Hi,all,
> > > I wrote a configure file and used an edge profiler. Assertion error
> > occurs
> > > when running  simple bytecode such as HelloWorld.
> > > The error  is:
> > > File: ...\jitrino\dynopt\EdgeProfiler.cpp
> > > Line: 266
> > > Expression: edgeFreq >= 0
> > >
> > > It seems edgeFreq is negative,but why? Is my configure file something
> > > wrong?
> > >
> > > My configure file is as follow:
> > >
> > > chains=chain1,chain2
> > > chain1.jits=JET_CLINIT
> > > chain2.jits=CD_OPT,CD_OPT2
> > > chain1.filter=+::<clinit>
> > > chain1.filter=-
> > >
> > > JET_CLINIT.file=jitrino
> > > CD_OPT.file=jitrino
> > > CD_OPT2.file=jitrino
> > >
> > > #Confuguration of profile collector and recompilation
> > > EDGE_PROF.profilerType=EDGE_PROFILER
> > > EDGE_PROF.entryThreshold=10000
> > > EDGE_PROF.backedgeThreshold=40000
> > > EDGE_PROF.tbsTimeout=10
> > > EDGE_PROF.tbsInitialTimeout=0
> > > CD_OPT.genProfile=EDGE_PROF
> > > CD_OPT2.useProfile=EDGE_PROF
> > >
> > > # configuration of JET_CLINIT
> > > -XDjit.JET_CLINIT.path=
> > >
> > > #configuration of CD_OPT
> > > -XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
> > > -XDjit.CD_OPT.path.optimizer=ssa
> > ,devirt,inline,uce,purge,simplify,dce,uce,
> > > edge_instrument
> > > ,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> > > -XDjit.CD_OPT.path.codegen=lock_method
> > >
> > >
> >
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> > > -XDjit.CD_OPT.path.dce1=cg_dce
> > > -XDjit.CD_OPT.path.dce2=cg_dce
> > > -XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
> > > -XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
> > > -XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
> > > #inliner configuration of CD_OPT
> > > -XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
> > > -XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
> > > -XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
> > > -XDjit.CD_OPT.arg.codegen.dce1.early=yes
> > > -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> > > -XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> > > -XDjit.CD_OPT.arg.codegen.btr.insertCMOVs=no
> > > -XDjit.CD_OPT.arg.codegen.btr.removeConstCompare=yes
> > >
> > > #configuration of CD_OPT2
> > > -XDjit.CD_OPT2.path=opt_init,translator,optimizer,hir2lir,codegen
> > > -XDjit.CD_OPT2.path.optimizer=ssa
> > > ,devirt,inline,uce,purge,simplify,dce,uce,
> > > edge_annotate
> > > ,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
> > > -XDjit.CD_OPT2.path.codegen=lock_method
> > >
> > >
> >
> ,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method
> > > -XDjit.CD_OPT2.path.dce1=cg_dce
> > > -XDjit.CD_OPT2.path.dce2=cg_dce
> > > -XDjit.CD_OPT2.path.regalloc=bp_regalloc1,bp_regalloc2
> > > -XDjit.CD_OPT2.path.bp_regalloc1=bp_regalloc
> > > -XDjit.CD_OPT2.path.bp_regalloc2=bp_regalloc
> > > #inliner configuration of CD_OPT2
> > > -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.filter=-
> > > -XDjit.CD_OPT2.CD_OPT2_inliner_pipeline.path=ssa,devirt
> > > -XDjit.CD_OPT2.arg.optimizer.inline.pipeline=CD_OPT2_inliner_pipeline
> > > -XDjit.CD_OPT2.arg.codegen.dce1.early=yes
> > > -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
> > > -XDjit.CD_OPT2.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
> > > -XDjit.CD_OPT2.arg.codegen.btr.insertCMOVs=no
> > > -XDjit.CD_OPT2.arg.codegen.btr.removeConstCompare=yes
> > > -XDjit.arg.codegen.emitter.align=4
> > >
> > > #system properties
> > > -Djava.compiler=client
> > >
> > >
> > >
> > > Thanks!
> > > --
> > > Estelle
> > >
> >
> >
> >
> > --
> > Mikhail Fursov
> >
>
>
>
> --
> Estelle
>



-- 
Mikhail Fursov