summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/Dispatch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-mca/Dispatch.cpp')
-rw-r--r--llvm/tools/llvm-mca/Dispatch.cpp8
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(
OpenPOWER on IntegriCloud