diff options
| author | Tim Northover <tnorthover@apple.com> | 2016-08-09 23:01:30 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2016-08-09 23:01:30 +0000 |
| commit | d403a3d8eef42e0af61cd37d4cb299235f3a26ca (patch) | |
| tree | e7bc36986948a3a96f7e72fda39c3c66226b1d30 /llvm/lib | |
| parent | aae168f9934eaba1898edd987852778aff70cdc4 (diff) | |
| download | bcm5719-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.cpp | 10 |
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; } |

