diff options
Diffstat (limited to 'llvm/tools/llvm-mca/Dispatch.cpp')
-rw-r--r-- | llvm/tools/llvm-mca/Dispatch.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/tools/llvm-mca/Dispatch.cpp b/llvm/tools/llvm-mca/Dispatch.cpp index c0f16f07376..51fe0d8791b 100644 --- a/llvm/tools/llvm-mca/Dispatch.cpp +++ b/llvm/tools/llvm-mca/Dispatch.cpp @@ -274,9 +274,11 @@ void RetireControlUnit::dump() const { #endif bool DispatchUnit::checkRAT(unsigned Index, const Instruction &Instr) { - const InstrDesc &Desc = Instr.getDesc(); - unsigned NumWrites = Desc.Writes.size(); - unsigned RegisterMask = RAT->isAvailable(NumWrites); + SmallVector<unsigned, 4> RegDefs; + for (const std::unique_ptr<WriteState> &RegDef : Instr.getDefs()) + RegDefs.emplace_back(RegDef->getRegisterID()); + + unsigned RegisterMask = RAT->isAvailable(RegDefs); // A mask with all zeroes means: register files are available. if (RegisterMask) { Owner->notifyStallEvent( |