Index: vm/jitrino/config/ia32/server_aggressive.emconf =================================================================== --- vm/jitrino/config/ia32/server_aggressive.emconf (revision 700854) +++ vm/jitrino/config/ia32/server_aggressive.emconf (working copy) @@ -13,12 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -#EM configuration for 'server' mode of Jitrino +# EM configuration for 'server-aggressive' mode of Jitrino +# +# When changing configuration for SD2_OPT JIT, do not forget to reflect the same +# changes for SS_OPT JIT in server_static.emconf (used for debugging purposes) +# +# rules for server -> server_static conversion +# JET_CLINIT -> SS_OPT +# inline_helpers -> inline_helpers- +# edge_annotate -> statprof + chains=chain1,chain2 chain1.jits=JET_CLINIT chain2.jits=SD1_OPT,SD2_OPT -chain1.filter=+:: +chain1.filter=+. chain1.filter=- JET_CLINIT.file=jitrino @@ -53,13 +62,14 @@ -XX:jit.RA3.filter=- -XX:jit.RA3.path=webmaker,cg_regalloc,spillgen -XX:jit.RA3.arg.webmaker.calc=true + -XX:jit.arg.codegen.regalloc.opnds=10000 -XX:jit.SD1_OPT.path=opt_init,lock_method,translator,optimizer,hir2lir,codegen,unlock_method - --XX:jit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,vp_instrument,edge_instrument,dessa,statprof --XX:jit.SD1_OPT.path.codegen=bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info +-XX:jit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,vp_instrument,devirt_virtual,edge_instrument,dessa,statprof +-XX:jit.SD1_OPT.path.codegen=bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,light_jni-,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info +-XX:jit.SD1_OPT.path.devirt_virtual=devirt -XX:jit.SD1_OPT.path.dce1=cg_dce -XX:jit.SD1_OPT.path.dce2=cg_dce @@ -70,37 +80,35 @@ #enable profiling of all virtual calls -XX:jit.SD1_OPT.arg.optimizer.vp_instrument.profile_all_virtual=true - -XX:jit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen --XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,hlo_api_magic,inline,purge,osr_path-,simplify,dce,uce,lazyexc,throwopt,escape_path,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,statprof,unroll,ssa,simplify,dce,uce,memopt,dce,uce,hvn,dce,uce,gcm,dessa,statprof,markglobals --XX:jit.SD2_OPT.path.osr_path=simplify,dce,uce,gcm,osr +-XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic,inline,purge,simplify,dce,uce,osr_path,lazyexc,throwopt,escape_path,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,statprof,unroll,ssa,simplify,dce,uce,memopt,dce,uce,hvn,dce,uce,gcm,dessa,statprof +-XX:jit.SD2_OPT.path.osr_path=gcm,osr,simplify,dce,uce -XX:jit.SD2_OPT.path.escape_path=hvn,simplify,dce,uce,escape -XX:jit.SD2_OPT.path.abce=classic_abcd,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,memopt,dce,uce,dessa,fastArrayFill,ssa,statprof,dabce,dce,uce - --XX:jit.SD2_OPT.path.codegen=lock_method,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,cg_fastArrayFill,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method +-XX:jit.SD2_OPT.path.codegen=lock_method,bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,light_jni-,early_prop,peephole,itrace-,native,cg_fastArrayFill,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info,unlock_method -XX:jit.SD2_OPT.path.dce1=cg_dce -XX:jit.SD2_OPT.path.dce2=cg_dce - --XX:jit.SD2_OPT.arg.String_indexOf_as_magic=true - #devirt configuration --XX:jit.SD2_OPT.arg.optimizer.devirt.devirt_intf_calls=true --XX:jit.SD2_OPT.arg.optimizer.devirt.devirt_abstract_calls=true --XX:jit.SD2_OPT.arg.optimizer.devirt.devirt_virtual_calls=true --XX:jit.SD2_OPT.arg.optimizer.devirt.devirt_using_profile=true +-XX:jit.SD2_OPT.path.devirt_virtual=devirt +-XX:jit.SD2_OPT.path.devirt_intf=devirt +-XX:jit.SD2_OPT.arg.optimizer.devirt_intf.devirt_intf_calls=true +-XX:jit.SD2_OPT.arg.optimizer.devirt_intf.devirt_abstract_calls=true +-XX:jit.SD2_OPT.arg.optimizer.devirt_intf.devirt_virtual_calls=false #inliner configuration -XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=- --XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt,hlo_api_magic +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic -XX:jit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline -XX:jit.SD2_OPT.arg.optimizer.inline.connect_early=false + #devirt configuration for inliner pipeline --XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt.devirt_intf_calls=true --XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt.devirt_abstract_calls=true --XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt.devirt_virtual_calls=true --XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt.devirt_using_profile=true +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.path.devirt_virtual=devirt +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.path.devirt_intf=devirt +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt_intf.devirt_intf_calls=true +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt_intf.devirt_abstract_calls=true +-XX:jit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt_intf.devirt_virtual_calls=false #helper inliner configuration -XX:jit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=- @@ -131,11 +139,16 @@ -XX:jit.SD2_OPT.arg.codegen.dce1.early=yes -XX:jit.SD2_OPT.arg.codegen.btr.insertCMOVs=no -XX:jit.SD2_OPT.arg.codegen.btr.removeConstCompare=yes +-XX:jit.SD2_OPT.arg.codegen.btr.eliminateSignCheck=yes -XX:jit.arg.codegen.emitter.align=4 #system properties -Djava.compiler=server +-XX:jit.SD2_OPT.arg.String_indexOf_as_magic=true +-XX:jit.arg.lazyResolution=off +-XX:jit.arg.opt_init.rept_aggressive=true + -XX:jit.arg.optimizer.inline.growth_factor=210 -XX:jit.arg.optimizer.inline.min_stop=280 -XX:jit.arg.optimizer.inline.min_benefit_threshold=70 @@ -156,8 +169,4 @@ -XX:jit.arg.optimizer.inline.skip_api_magics=true -XX:jit.arg.optimizer.inline.sync_optcatch=false -XX:jit.arg.optimizer.inline.sync_optimistic=true - --XX:jit.arg.lazyResolution=off --XX:jit.arg.opt_init.rept_aggressive=true -