summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2019-05-23 10:50:01 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2019-05-23 10:50:01 +0000
commit28afd8dc711261aeb082739740e86d28d1a50082 (patch)
treea76cd28aedbc8dec29c59d367366db5b050fffb7
parentf95b05c3df6eccb66d934c6529091400195d57ff (diff)
downloadbcm5719-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.h6
-rw-r--r--llvm/lib/MCA/Stages/EntryStage.cpp4
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)
OpenPOWER on IntegriCloud