diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2019-05-23 10:50:01 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2019-05-23 10:50:01 +0000 |
| commit | 28afd8dc711261aeb082739740e86d28d1a50082 (patch) | |
| tree | a76cd28aedbc8dec29c59d367366db5b050fffb7 | |
| parent | f95b05c3df6eccb66d934c6529091400195d57ff (diff) | |
| download | bcm5719-llvm-28afd8dc711261aeb082739740e86d28d1a50082.tar.gz bcm5719-llvm-28afd8dc711261aeb082739740e86d28d1a50082.zip | |
[MCA] Make the bool conversion operator in class InstRef explicit. NFCI
This patch makes the bool conversion operator in InstRef explicit.
It also adds a operator< to hel comparing InstRef objects in sets.
llvm-svn: 361482
| -rw-r--r-- | llvm/include/llvm/MCA/Instruction.h | 6 | ||||
| -rw-r--r-- | llvm/lib/MCA/Stages/EntryStage.cpp | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/llvm/include/llvm/MCA/Instruction.h b/llvm/include/llvm/MCA/Instruction.h index 0cb6f6cd417..a7a47fd3645 100644 --- a/llvm/include/llvm/MCA/Instruction.h +++ b/llvm/include/llvm/MCA/Instruction.h @@ -526,13 +526,17 @@ public: InstRef(unsigned Index, Instruction *I) : Data(std::make_pair(Index, I)) {} bool operator==(const InstRef &Other) const { return Data == Other.Data; } + bool operator!=(const InstRef &Other) const { return Data != Other.Data; } + bool operator<(const InstRef &Other) const { + return Data.first < Other.Data.first; + } unsigned getSourceIndex() const { return Data.first; } Instruction *getInstruction() { return Data.second; } const Instruction *getInstruction() const { return Data.second; } /// Returns true if this references a valid instruction. - operator bool() const { return Data.second != nullptr; } + explicit operator bool() const { return Data.second != nullptr; } /// Invalidate this reference. void invalidate() { Data.second = nullptr; } diff --git a/llvm/lib/MCA/Stages/EntryStage.cpp b/llvm/lib/MCA/Stages/EntryStage.cpp index 2028b9e2b76..d2f5613a0fb 100644 --- a/llvm/lib/MCA/Stages/EntryStage.cpp +++ b/llvm/lib/MCA/Stages/EntryStage.cpp @@ -18,7 +18,9 @@ namespace llvm { namespace mca { -bool EntryStage::hasWorkToComplete() const { return CurrentInstruction; } +bool EntryStage::hasWorkToComplete() const { + return static_cast<bool>(CurrentInstruction); +} bool EntryStage::isAvailable(const InstRef & /* unused */) const { if (CurrentInstruction) |

