RFR 8134802 - LCM register pressure scheduling

Berg, Michael C michael.c.berg at intel.com
Fri Sep 4 20:33:57 UTC 2015


Hi Folks,

I would like to contribute LCM register pressure scheduling. I need two reviewers to examine this patch and comment as needed:

Bug-id: https://bugs.openjdk.java.net/browse/JDK-8134802

webrev:
http://cr.openjdk.java.net/~mcberg/8134802/webrev.01/


These changes calculate register pressure at the entry of a basic block, at the end and incrementally while we are scheduling. It uses an efficient algorithm for recalculating register pressure on a as needed basis. The algorithm uses heuristics to switch to a pressure based algorithm to reduce spills for int and float registers using thresholds for each. It also uses weights which count on a per register class basis to dope ready list candidate choice while scheduling so that we reduce register pressure when possible. Once we fall over either threshold, we start trying mitigate pressure upon the affected class of registers which are over the limit. This happens on both register classes and/or separately for each. We switch back to latency scheduling when pressure is alleviated. As before we obey hard artifacts such as barriers, fences and such. Overhead for constructing and providing liveness information and the additional algorithmic usage is very minimal, so as affect compile time minimally.

Thanks,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20150904/bdb36a0c/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list