summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/tools/llvm-exegesis/lib/RegisterValue.h6
-rw-r--r--llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/RegisterValue.h b/llvm/tools/llvm-exegesis/lib/RegisterValue.h
index 51ea30ac8eb..689e354e241 100644
--- a/llvm/tools/llvm-exegesis/lib/RegisterValue.h
+++ b/llvm/tools/llvm-exegesis/lib/RegisterValue.h
@@ -14,6 +14,9 @@
///
//===----------------------------------------------------------------------===//
+#ifndef LLVM_TOOLS_LLVM_EXEGESIS_REGISTERVALUE_H
+#define LLVM_TOOLS_LLVM_EXEGESIS_REGISTERVALUE_H
+
#include <llvm/ADT/APFloat.h>
#include <llvm/ADT/APInt.h>
@@ -22,6 +25,7 @@ namespace exegesis {
// A simple object storing the value for a particular register.
struct RegisterValue {
+ static RegisterValue zero(unsigned Reg) { return {Reg, llvm::APInt()}; }
unsigned Register;
llvm::APInt Value;
};
@@ -45,3 +49,5 @@ llvm::APInt bitcastFloatValue(const llvm::fltSemantics &FltSemantics,
} // namespace exegesis
} // namespace llvm
+
+#endif // LLVM_TOOLS_LLVM_EXEGESIS_REGISTERVALUE_H
diff --git a/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp b/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
index eb6a8577b57..88ba315548d 100644
--- a/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+++ b/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
@@ -91,7 +91,7 @@ std::vector<RegisterValue> SnippetGenerator::computeRegisterInitialValues(
if (Op.isUse()) {
const unsigned Reg = GetOpReg(Op);
if (Reg > 0 && !DefinedRegs.test(Reg)) {
- RIV.push_back(RegisterValue{Reg, llvm::APInt()});
+ RIV.push_back(RegisterValue::zero(Reg));
DefinedRegs.set(Reg);
}
}
OpenPOWER on IntegriCloud