Loop strip mining to decreases safepoint poll frequency
Roland Westrelin
rwestrel at redhat.com
Tue Feb 28 10:23:50 UTC 2017
http://cr.openjdk.java.net/~roland/shenandoah/loopstripmining/webrev.00/
This implements loop strip mining in c2:
for (..) {
// work
safepoint poll
}
is transformed to:
for (..) {
for (..) {
// work
}
safepoint poll
}
so the loop runs for at most LoopStripMiningIter iterations between
safepoint polls. This patch enables it by default for shenandoah and
sets LoopStripMiningIter to an arbitrary 1000 iterations. All loop
optimizations should be preserved. LoopStripMiningIter=0 disables it
(and it then runs with no safepoints). +UseCountedLoopSafepoints is
another way to disable it (and it then runs with a safepoint per loop
iteration).
Roland.
More information about the shenandoah-dev
mailing list