Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8134802

LCM register pressure scheduling

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P3 P3
    • 9
    • 9
    • hotspot
    • None
    • b89
    • x86
    • generic

        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.

              mcberg Michael Berg (Inactive)
              mcberg Michael Berg (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: