The MC layer doesn't expect to deal with vregs but
TargetRegisterClass::contains() forwards into MCRegisterClass::contains()
and this can cause vregs to turn up in the MC layer APIs. Add guards
against this to prevent this becoming a problem as we replace unsigned
with a new MCRegister object for improved type safety.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
llvm/include/llvm/CodeGen/TargetRegisterInfo.h | ||
---|---|---|
90–91 ↗ | (On Diff #212717) | I think this should be a hard assert. Any of the users of this almost certainly do not intend to reach this |
llvm/include/llvm/CodeGen/TargetRegisterInfo.h | ||
---|---|---|
90–91 ↗ | (On Diff #212717) | Unfortunately they do expect it at the moment. This is what happens when you make it a hard assert: Expected Passes : 31313 Expected Failures : 154 Unsupported Tests : 435 Unexpected Failures: 894 It affects Hexagon, X86, ARM, AMDGPU, and AArch64 primarily. |
llvm/include/llvm/CodeGen/TargetRegisterInfo.h | ||
---|---|---|
90–91 ↗ | (On Diff #212717) | Should add a FIXME |