Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_LIR.cpp @ 1791:3a294e483abc
6919069: client compiler needs to capture more profile information for tiered work
Summary: Added profiling of instanceof and aastore.
Reviewed-by: kvn, jrose, never
author | iveresov |
---|---|
date | Mon, 13 Sep 2010 12:10:49 -0700 |
parents | d5d065957597 |
children | 87b64980e2f1 |
comparison
equal
deleted
inserted
replaced
1790:7f9553bedfd5 | 1791:3a294e483abc |
---|---|
1017 masm->emit_alloc_array(this); | 1017 masm->emit_alloc_array(this); |
1018 masm->emit_code_stub(stub()); | 1018 masm->emit_code_stub(stub()); |
1019 } | 1019 } |
1020 | 1020 |
1021 void LIR_OpTypeCheck::emit_code(LIR_Assembler* masm) { | 1021 void LIR_OpTypeCheck::emit_code(LIR_Assembler* masm) { |
1022 if (code() == lir_checkcast) { | 1022 masm->emit_opTypeCheck(this); |
1023 masm->emit_checkcast(this); | |
1024 } else { | |
1025 masm->emit_opTypeCheck(this); | |
1026 } | |
1027 if (stub()) { | 1023 if (stub()) { |
1028 masm->emit_code_stub(stub()); | 1024 masm->emit_code_stub(stub()); |
1029 } | 1025 } |
1030 } | 1026 } |
1031 | 1027 |
1378 c->set_should_profile(true); | 1374 c->set_should_profile(true); |
1379 } | 1375 } |
1380 append(c); | 1376 append(c); |
1381 } | 1377 } |
1382 | 1378 |
1383 void LIR_List::instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_patch) { | 1379 void LIR_List::instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_patch, ciMethod* profiled_method, int profiled_bci) { |
1384 append(new LIR_OpTypeCheck(lir_instanceof, result, object, klass, tmp1, tmp2, tmp3, fast_check, NULL, info_for_patch, NULL)); | 1380 LIR_OpTypeCheck* c = new LIR_OpTypeCheck(lir_instanceof, result, object, klass, tmp1, tmp2, tmp3, fast_check, NULL, info_for_patch, NULL); |
1381 if (profiled_method != NULL) { | |
1382 c->set_profiled_method(profiled_method); | |
1383 c->set_profiled_bci(profiled_bci); | |
1384 c->set_should_profile(true); | |
1385 } | |
1386 append(c); | |
1385 } | 1387 } |
1386 | 1388 |
1387 | 1389 |
1388 void LIR_List::store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception) { | 1390 void LIR_List::store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception) { |
1389 append(new LIR_OpTypeCheck(lir_store_check, object, array, tmp1, tmp2, tmp3, info_for_exception)); | 1391 append(new LIR_OpTypeCheck(lir_store_check, object, array, tmp1, tmp2, tmp3, info_for_exception)); |