comparison src/share/vm/ci/ciTypeFlow.cpp @ 6824:f13867c41f73

7199742: A lot of C2 OSR compilations of the same method's bci Summary: Don't clone head of OSR loop. Reviewed-by: jrose, twisti
author kvn
date Tue, 02 Oct 2012 14:49:21 -0700
parents da91efe96a93
children 47bc9800972c
comparison
equal deleted inserted replaced
6823:859c45fb8cea 6824:f13867c41f73
2192 2192
2193 // check not already cloned 2193 // check not already cloned
2194 if (head->backedge_copy_count() != 0) 2194 if (head->backedge_copy_count() != 0)
2195 continue; 2195 continue;
2196 2196
2197 // Don't clone head of OSR loop to get correct types in start block.
2198 if (is_osr_flow() && head->start() == start_bci())
2199 continue;
2200
2197 // check _no_ shared head below us 2201 // check _no_ shared head below us
2198 Loop* ch; 2202 Loop* ch;
2199 for (ch = lp->child(); ch != NULL && ch->head() != head; ch = ch->sibling()); 2203 for (ch = lp->child(); ch != NULL && ch->head() != head; ch = ch->sibling());
2200 if (ch != NULL) 2204 if (ch != NULL)
2201 continue; 2205 continue;