Skip to content

Commit e1982fa

Browse files
committed
[X86][APX] Check APX features for keeping using non-rex2 register
Previous PRs for disabling APX for relocation: llvm#136660 llvm#137794 llvm#138500 llvm#139285
1 parent ed07412 commit e1982fa

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

llvm/lib/Target/X86/X86RegisterInfo.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,14 @@ X86RegisterInfo::getLargestLegalSuperClass(const TargetRegisterClass *RC,
123123
if (RC == &X86::GR8_NOREXRegClass)
124124
return RC;
125125

126+
const X86Subtarget &Subtarget = MF.getSubtarget<X86Subtarget>();
127+
126128
// Keep using non-rex2 register class when APX feature (EGPR/NDD/NF) is not
127129
// enabled for relocation.
128-
if (!X86EnableAPXForRelocation && isNonRex2RegClass(RC))
130+
if ((Subtarget.hasNDD() || Subtarget.hasNF() || Subtarget.hasEGPR()) &&
131+
!X86EnableAPXForRelocation && isNonRex2RegClass(RC))
129132
return RC;
130133

131-
const X86Subtarget &Subtarget = MF.getSubtarget<X86Subtarget>();
132-
133134
const TargetRegisterClass *Super = RC;
134135
auto I = RC->superclasses().begin();
135136
auto E = RC->superclasses().end();

0 commit comments

Comments
 (0)