# 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.updateStrategy=LOCKED 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=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,global_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,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.escape_path=hvn,simplify,dce,uce,escape -XX:jit.SD2_OPT.path.abce=memopt,dce,uce,simplify,dce,uce,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,global_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 #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.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.VM_RT_NEW_RESOLVED_USING_VTABLE_AND_SIZE=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_NEW_RESOLVED_USING_VTABLE_AND_SIZE_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_NEW_VECTOR_USING_VTABLE=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_NEW_VECTOR_USING_VTABLE_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_MONITOR_ENTER=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_MONITOR_ENTER_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_MONITOR_EXIT=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_MONITOR_EXIT_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_GET_INTERFACE_VTABLE_VER0=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_GET_INTERFACE_VTABLE_VER0_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_CHECKCAST=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_CHECKCAST_hotnessPercent=1 -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_INSTANCEOF=on -XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_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 -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 -XX:jit.arg.optimizer.inline.inline_small_method_max_size=67 -XX:jit.arg.optimizer.inline.inline_small_method_bonus=780 -XX:jit.arg.optimizer.inline.medium_method_max_size=1200 -XX:jit.arg.optimizer.inline.medium_method_bonus=770 -XX:jit.arg.optimizer.inline.large_method_min_size=1360 -XX:jit.arg.optimizer.inline.large_method_penalty=480 -XX:jit.arg.optimizer.inline.loop_bonus=140 -XX:jit.arg.optimizer.inline.leaf_bonus=2680 -XX:jit.arg.optimizer.inline.synch_bonus=50 -XX:jit.arg.optimizer.inline.recursion_penalty=730 -XX:jit.arg.optimizer.inline.exact_single_parameter_bonus=120 -XX:jit.arg.optimizer.inline.exact_all_parameter_bonus=170 -XX:jit.arg.optimizer.inline.skip_exception_path=true -XX:jit.arg.optimizer.inline.connect_early=true -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