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