Mercurial > hg > truffle
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; |