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

LCM register pressure scheduling

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b89
    • CPU:
      x86
    • OS:
      generic

      Backports

        Description

        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.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  mcberg Michael Berg
                  Reporter:
                  mcberg Michael Berg
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved: