Add a pressure_tracking flag to register banks.

This makes it possible to define register banks that opt out of register
pressure tracking. This will be used to define banks for special-purpose
registers like the CPU flags.

The pressure tracker does not need to use resources for a top-level
register class in a non-tracked bank. The constant MAX_TOPRCS is renamed
to MAX_TRACKED_TOPRCS to indicate that there may be top-level register
classes with higher numbers, but they won't require pressure tracking.

We won't be tracking register pressure for CPU flags since only one
value is allowed to be live at a time.
This commit is contained in:
Jakob Stoklund Olesen
2017-10-13 10:54:44 -07:00
parent c808447468
commit 1dbc55dadf
5 changed files with 66 additions and 21 deletions

View File

@@ -28,6 +28,9 @@ def gen_regbank(regbank, fmt):
fmt.format('prefix: "{}",', regbank.prefix)
fmt.format('first_toprc: {},', regbank.toprcs[0].index)
fmt.format('num_toprcs: {},', len(regbank.toprcs))
fmt.format(
'pressure_tracking: {},',
'true' if regbank.pressure_tracking else 'false')
def gen_regbank_units(regbank, fmt):