Index: vm/jitrino/config/ia32/server_aggressive.emconf =================================================================== --- vm/jitrino/config/ia32/server_aggressive.emconf (revision 0) +++ vm/jitrino/config/ia32/server_aggressive.emconf (revision 0) @@ -0,0 +1,179 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#EM configuration for 'server' mode of Jitrino +chains=chain1,chain2 +chain1.jits=JET_CLINIT +chain2.jits=SD1_OPT,SD2_OPT + +chain1.filter=+:: +chain1.filter=- + +JET_CLINIT.file=jitrino +SD1_OPT.file=jitrino +SD2_OPT.file=jitrino + +# Edge profiler and recompilation parameters +EDGE_PROF.profilerType=EDGE_PROFILER +EDGE_PROF.entryThreshold=40000 +EDGE_PROF.backedgeThreshold=150000 +EDGE_PROF.tbsTimeout=10 +EDGE_PROF.tbsInitialTimeout=0 + +VALUE_PROF.profilerType=VALUE_PROFILER +VALUE_PROF.vpalgo=TNV_FIRST_N +VALUE_PROF.vpSteadySize=4 +SD1_OPT.genProfile=EDGE_PROF,VALUE_PROF +SD2_OPT.useProfile=EDGE_PROF,VALUE_PROF + +#options for JIT + +-XX:jit.JET_CLINIT.path= + +#register allocator configuration +-XX:jit.RA2.filter=- +-XX:jit.RA2.path=bp_regalloc1,bp_regalloc2 +-XX:jit.RA2.path.bp_regalloc1=bp_regalloc +-XX:jit.RA2.path.bp_regalloc2=bp_regalloc +-XX:jit.RA2.arg.bp_regalloc1.regs=ALL_GP +-XX:jit.RA2.arg.bp_regalloc2.regs=ALL_XMM +-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=5000 + +-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.dce1=cg_dce +-XX:jit.SD1_OPT.path.dce2=cg_dce + +-XX:jit.SD1_OPT.arg.codegen.dce1.early=yes +-XX:jit.SD1_OPT.arg.codegen.btr.insertCMOVs=no +-XX:jit.SD1_OPT.arg.codegen.btr.removeConstCompare=yes + +#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,inline,purge,simplify,dce,uce,lazyexc,throwopt,so2-,simplify,dce,uce,escape,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,statprof,unroll,ssa,simplify,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,classic_abcd,dce,uce,gcm,dessa,fastArrayFill,statprof,markglobals +-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.dce1=cg_dce +-XX:jit.SD2_OPT.path.dce2=cg_dce + +#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 + +#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 +-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 + +#helper inliner configuration +-XX:jit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=- +-XX:jit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_gen/GCHelper +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newArray=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newArray_className=org/apache/harmony/drlvm/gc_gen/GCHelper +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newArray_methodName=allocArray +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.newArray_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_className=org/apache/harmony/drlvm/thread/ThreadHelper +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_methodName=monitorEnterUseReservation +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_className=org/apache/harmony/drlvm/thread/ThreadHelper +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_methodName=monitorExit +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_className=org/apache/harmony/drlvm/VMHelperFastPath +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_methodName=getInterfaceVTable3 +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.checkCast=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_className=org/apache/harmony/drlvm/VMHelperFastPath +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_methodName=checkCast +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_hotnessPercent=1 + +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf=on +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_className=org/apache/harmony/drlvm/VMHelperFastPath +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_methodName=instanceOf +-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_hotnessPercent=1 + +-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.arg.codegen.emitter.align=4 + +#system properties +-Djava.compiler=server + +#GC magics support +-Dvm.components.gc_gen.startupclass=org.apache.harmony.drlvm.gc_gen.GCHelper +-XX:vm.component.classpath.gc_gen=gc_gen.jar + +#TM properties +-Dvm.components.hythr.startupclass=org.apache.harmony.drlvm.thread.ThreadHelper +-XX:vm.component.classpath.hythr=hythr.jar + +#VM helpers +-Dvm.components.vmcore1.startupclass=org.apache.harmony.drlvm.VMHelper +-Dvm.components.vmcore2.startupclass=org.apache.harmony.drlvm.VMHelperFastPath + +-XDjit.arg.optimizer.inline.growth_factor=210 +-XDjit.arg.optimizer.inline.min_stop=280 +-XDjit.arg.optimizer.inline.min_benefit_threshold=70 +-XDjit.arg.optimizer.inline.inline_small_method_max_size=67 +-XDjit.arg.optimizer.inline.inline_small_method_bonus=780 +-XDjit.arg.optimizer.inline.medium_method_max_size=1200 +-XDjit.arg.optimizer.inline.medium_method_bonus=770 +-XDjit.arg.optimizer.inline.large_method_min_size=1360 +-XDjit.arg.optimizer.inline.large_method_penalty=480 +-XDjit.arg.optimizer.inline.loop_bonus=140 +-XDjit.arg.optimizer.inline.leaf_bonus=2680 +-XDjit.arg.optimizer.inline.synch_bonus=50 +-XDjit.arg.optimizer.inline.recursion_penalty=730 +-XDjit.arg.optimizer.inline.exact_single_parameter_bonus=120 +-XDjit.arg.optimizer.inline.exact_all_parameter_bonus=170 +-XDjit.arg.optimizer.inline.skip_exception_path=true +-XDjit.arg.optimizer.inline.connect_early=true +-XDjit.arg.optimizer.inline.skip_api_magics=true +-XDjit.arg.optimizer.inline.sync_optcatch=false +-XDjit.arg.optimizer.inline.sync_optimistic=true + + +-XX:jit.arg.lazyResolution=off