summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
index 3614333037c..8630ef842b4 100644
--- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
@@ -137,8 +137,13 @@ MachineInstrBuilder MachineIRBuilder::buildConstDbgValue(const Constant &C,
MIB.addCImm(CI);
else
MIB.addImm(CI->getZExtValue());
- } else
+ } else if (auto *CFP = dyn_cast<ConstantFP>(&C)) {
+ assert(isa<ConstantFP>(C) && "Unexpected constant dbg value");
MIB.addFPImm(&cast<ConstantFP>(C));
+ } else {
+ // Insert %noreg if we didn't find a usable constant and had to drop it.
+ MIB.addReg(0U);
+ }
return MIB.addImm(Offset).addMetadata(Variable).addMetadata(Expr);
}
OpenPOWER on IntegriCloud