summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-08-09 23:01:30 +0000
committerTim Northover <tnorthover@apple.com>2016-08-09 23:01:30 +0000
commitd403a3d8eef42e0af61cd37d4cb299235f3a26ca (patch)
treee7bc36986948a3a96f7e72fda39c3c66226b1d30 /llvm/lib
parentaae168f9934eaba1898edd987852778aff70cdc4 (diff)
downloadbcm5719-llvm-d403a3d8eef42e0af61cd37d4cb299235f3a26ca.tar.gz
bcm5719-llvm-d403a3d8eef42e0af61cd37d4cb299235f3a26ca.zip
GlobalISel: support 'undef' constant.
llvm-svn: 278174
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index ef836304c14..a5f62cf0f39 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -318,12 +318,14 @@ bool IRTranslator::translate(const Instruction &Inst) {
}
bool IRTranslator::translate(const Constant &C, unsigned Reg) {
- if (auto CI = dyn_cast<ConstantInt>(&C)) {
+ if (auto CI = dyn_cast<ConstantInt>(&C))
EntryBuilder.buildConstant(LLT{*CI->getType()}, Reg, CI->getZExtValue());
- return true;
- }
+ else if (isa<UndefValue>(C))
+ EntryBuilder.buildInstr(TargetOpcode::IMPLICIT_DEF).addDef(Reg);
+ else
+ llvm_unreachable("unhandled constant kind");
- llvm_unreachable("unhandled constant kind");
+ return true;
}
OpenPOWER on IntegriCloud