Christudasan Devadasan 40ddde5d1f [TableGen] Allow targets to entirely ignore Psets for registers
Tablegen currently expects targets to have at least one
pressure set for every broader register category. AMDGPU's
VGPR or AGPR, for instance, seemed to work correctly without
any pset, though we have forced one for each type to avoid
the assertion in computeRegUnitSets. However, psets can not
be entirely empty. At least one set is mandatory for every
target. This patch bypasses the assertion for the classes
when GeneratePressureSet is zero while ensuring the
RegUnitSets are not empty.

Reviewed By: arsenm, rampitec

Differential Revision: https://reviews.llvm.org/D110305
2021-09-23 23:07:35 -04:00

16 lines
373 B
TableGen

// RUN: not llvm-tblgen -gen-register-info -I %p/../../include -I %p/Common %s 2>&1 | FileCheck %s
// Negative test to check empty Psets for a target.
include "llvm/Target/Target.td"
def R : Register<"r">;
def R_32 : RegisterClass<"MyTarget", [i32], 32, (add R)> {
let GeneratePressureSet = 0;
}
def MyTarget : Target;
// CHECK: error: RegUnitSets cannot be empty!