< prev index next >
src/hotspot/share/opto/loopPredicate.cpp
Print this page
@@ -383,11 +383,11 @@
// Search original predicates
Node* entry = old_entry;
ProjNode* limit_check_proj = NULL;
limit_check_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
if (limit_check_proj != NULL) {
- entry = entry->in(0)->in(0);
+ entry = skip_loop_predicates(entry);
}
ProjNode* profile_predicate_proj = NULL;
ProjNode* predicate_proj = NULL;
if (UseProfiledLoopPredicate) {
profile_predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);
@@ -465,11 +465,11 @@
Node* PhaseIdealLoop::skip_all_loop_predicates(Node* entry) {
Node* predicate = NULL;
predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
if (predicate != NULL) {
- entry = entry->in(0)->in(0);
+ entry = skip_loop_predicates(entry);
}
if (UseProfiledLoopPredicate) {
predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);
if (predicate != NULL) { // right pattern that can be used by loop predication
entry = skip_loop_predicates(entry);
@@ -1352,11 +1352,11 @@
ProjNode *predicate_proj = NULL;
ProjNode *profile_predicate_proj = NULL;
// Loop limit check predicate should be near the loop.
loop_limit_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
if (loop_limit_proj != NULL) {
- entry = loop_limit_proj->in(0)->in(0);
+ entry = skip_loop_predicates(loop_limit_proj);
}
bool has_profile_predicates = false;
profile_predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_profile_predicate);
if (profile_predicate_proj != NULL) {
Node* n = skip_loop_predicates(entry);
< prev index next >