Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/parse2.cpp @ 10278:6f3fd5150b67
6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
author | kvn |
---|---|
date | Wed, 08 May 2013 15:08:01 -0700 |
parents | e370f63dc5b1 |
children | f478c98e8114 |
comparison
equal
deleted
inserted
replaced
10277:aabf54ccedb1 | 10278:6f3fd5150b67 |
---|---|
985 // the path may be cold again. Make sure it doesn't look untaken | 985 // the path may be cold again. Make sure it doesn't look untaken |
986 profile_taken_branch(target_bci, !ProfileInterpreter); | 986 profile_taken_branch(target_bci, !ProfileInterpreter); |
987 uncommon_trap(Deoptimization::Reason_unreached, | 987 uncommon_trap(Deoptimization::Reason_unreached, |
988 Deoptimization::Action_reinterpret, | 988 Deoptimization::Action_reinterpret, |
989 NULL, "cold"); | 989 NULL, "cold"); |
990 if (EliminateAutoBox) { | 990 if (C->eliminate_boxing()) { |
991 // Mark the successor blocks as parsed | 991 // Mark the successor blocks as parsed |
992 branch_block->next_path_num(); | 992 branch_block->next_path_num(); |
993 next_block->next_path_num(); | 993 next_block->next_path_num(); |
994 } | 994 } |
995 return; | 995 return; |
1010 Node* iftrue = _gvn.transform( new (C) IfTrueNode (iff) ); | 1010 Node* iftrue = _gvn.transform( new (C) IfTrueNode (iff) ); |
1011 set_control(iftrue); | 1011 set_control(iftrue); |
1012 | 1012 |
1013 if (stopped()) { // Path is dead? | 1013 if (stopped()) { // Path is dead? |
1014 explicit_null_checks_elided++; | 1014 explicit_null_checks_elided++; |
1015 if (EliminateAutoBox) { | 1015 if (C->eliminate_boxing()) { |
1016 // Mark the successor block as parsed | 1016 // Mark the successor block as parsed |
1017 branch_block->next_path_num(); | 1017 branch_block->next_path_num(); |
1018 } | 1018 } |
1019 } else { // Path is live. | 1019 } else { // Path is live. |
1020 // Update method data | 1020 // Update method data |
1030 Node* iffalse = _gvn.transform( new (C) IfFalseNode(iff) ); | 1030 Node* iffalse = _gvn.transform( new (C) IfFalseNode(iff) ); |
1031 set_control(iffalse); | 1031 set_control(iffalse); |
1032 | 1032 |
1033 if (stopped()) { // Path is dead? | 1033 if (stopped()) { // Path is dead? |
1034 explicit_null_checks_elided++; | 1034 explicit_null_checks_elided++; |
1035 if (EliminateAutoBox) { | 1035 if (C->eliminate_boxing()) { |
1036 // Mark the successor block as parsed | 1036 // Mark the successor block as parsed |
1037 next_block->next_path_num(); | 1037 next_block->next_path_num(); |
1038 } | 1038 } |
1039 } else { // Path is live. | 1039 } else { // Path is live. |
1040 // Update method data | 1040 // Update method data |
1067 // the path may be cold again. Make sure it doesn't look untaken | 1067 // the path may be cold again. Make sure it doesn't look untaken |
1068 profile_taken_branch(target_bci, !ProfileInterpreter); | 1068 profile_taken_branch(target_bci, !ProfileInterpreter); |
1069 uncommon_trap(Deoptimization::Reason_unreached, | 1069 uncommon_trap(Deoptimization::Reason_unreached, |
1070 Deoptimization::Action_reinterpret, | 1070 Deoptimization::Action_reinterpret, |
1071 NULL, "cold"); | 1071 NULL, "cold"); |
1072 if (EliminateAutoBox) { | 1072 if (C->eliminate_boxing()) { |
1073 // Mark the successor blocks as parsed | 1073 // Mark the successor blocks as parsed |
1074 branch_block->next_path_num(); | 1074 branch_block->next_path_num(); |
1075 next_block->next_path_num(); | 1075 next_block->next_path_num(); |
1076 } | 1076 } |
1077 return; | 1077 return; |
1133 { PreserveJVMState pjvms(this); | 1133 { PreserveJVMState pjvms(this); |
1134 taken_branch = _gvn.transform(taken_branch); | 1134 taken_branch = _gvn.transform(taken_branch); |
1135 set_control(taken_branch); | 1135 set_control(taken_branch); |
1136 | 1136 |
1137 if (stopped()) { | 1137 if (stopped()) { |
1138 if (EliminateAutoBox) { | 1138 if (C->eliminate_boxing()) { |
1139 // Mark the successor block as parsed | 1139 // Mark the successor block as parsed |
1140 branch_block->next_path_num(); | 1140 branch_block->next_path_num(); |
1141 } | 1141 } |
1142 } else { | 1142 } else { |
1143 // Update method data | 1143 // Update method data |
1152 untaken_branch = _gvn.transform(untaken_branch); | 1152 untaken_branch = _gvn.transform(untaken_branch); |
1153 set_control(untaken_branch); | 1153 set_control(untaken_branch); |
1154 | 1154 |
1155 // Branch not taken. | 1155 // Branch not taken. |
1156 if (stopped()) { | 1156 if (stopped()) { |
1157 if (EliminateAutoBox) { | 1157 if (C->eliminate_boxing()) { |
1158 // Mark the successor block as parsed | 1158 // Mark the successor block as parsed |
1159 next_block->next_path_num(); | 1159 next_block->next_path_num(); |
1160 } | 1160 } |
1161 } else { | 1161 } else { |
1162 // Update method data | 1162 // Update method data |