diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-11-24 07:26:20 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-11-24 07:26:20 +0000 |
commit | b2a6e7458d7229d53e59824d0a350b1a054f165a (patch) | |
tree | afb3884fe93640b970d5194a80c6531e4a6d6375 /llvm/lib/Transforms | |
parent | 403011848502577344a222633918496fa03f32d4 (diff) | |
download | bcm5719-llvm-b2a6e7458d7229d53e59824d0a350b1a054f165a.tar.gz bcm5719-llvm-b2a6e7458d7229d53e59824d0a350b1a054f165a.zip |
InstCombine: Don't assume DataLayout is always available
We tried to get the result of DataLayout::getLargestLegalIntTypeSize but
we didn't have a DataLayout. This resulted in opt crashing.
This fixes PR21651.
llvm-svn: 222645
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp index 292c20678ec..5eee15f6489 100644 --- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp +++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp @@ -2095,7 +2095,8 @@ Instruction *InstCombiner::visitSwitchInst(SwitchInst &SI) { // the largest legal integer type. We need to be conservative here since // x86 generates redundant zero-extenstion instructions if the operand is // truncated to i8 or i16. - if (BitWidth > NewWidth && NewWidth >= DL->getLargestLegalIntTypeSize()) { + if (DL && BitWidth > NewWidth && + NewWidth >= DL->getLargestLegalIntTypeSize()) { IntegerType *Ty = IntegerType::get(SI.getContext(), NewWidth); Builder->SetInsertPoint(&SI); Value *NewCond = Builder->CreateTrunc(SI.getCondition(), Ty, "trunc"); |