diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86PreTileConfig.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86PreTileConfig.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86PreTileConfig.cpp b/llvm/lib/Target/X86/X86PreTileConfig.cpp index 75ad58e5cdcb..ecf923c0e2a2 100644 --- a/llvm/lib/Target/X86/X86PreTileConfig.cpp +++ b/llvm/lib/Target/X86/X86PreTileConfig.cpp @@ -237,11 +237,15 @@ void X86PreTileConfig::collectShapeInfo(MachineInstr &MI) { } bool X86PreTileConfig::runOnMachineFunction(MachineFunction &MF) { + X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>(); + // Early exit in the common case of non-AMX code. + if (X86FI->getAMXProgModel() != AMXProgModelEnum::ManagedRA) + return false; + const X86Subtarget &ST = MF.getSubtarget<X86Subtarget>(); const TargetInstrInfo *TII = ST.getInstrInfo(); const TargetRegisterInfo *TRI = ST.getRegisterInfo(); const TargetRegisterClass *RC = TRI->getRegClass(X86::TILERegClassID); - X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>(); BitVector AMXRegs(TRI->getNumRegs()); for (unsigned I = 0; I < RC->getNumRegs(); I++) @@ -301,7 +305,6 @@ bool X86PreTileConfig::runOnMachineFunction(MachineFunction &MF) { // There's no AMX instruction if we didn't find a tile config live in point. if (CfgNeedInsert.empty()) return false; - X86FI->setHasVirtualTileReg(true); // Avoid to insert ldtilecfg before any shape defs. SmallVector<MachineBasicBlock *, 8> WorkList; |
