summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
diff options
context:
space:
mode:
authorAditya Nandakumar <aditya_nandakumar@apple.com>2019-09-09 22:51:41 +0000
committerAditya Nandakumar <aditya_nandakumar@apple.com>2019-09-09 22:51:41 +0000
commit5112b71126a133b744b11b50d60fcb89d005513d (patch)
treec37ab2cdd30240d8c0b4806044ea4ec6661e241e /llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
parent2ca7370183a104b7769202032e9d5a41c04ed070 (diff)
downloadbcm5719-llvm-5112b71126a133b744b11b50d60fcb89d005513d.tar.gz
bcm5719-llvm-5112b71126a133b744b11b50d60fcb89d005513d.zip
[GlobalISel]: Fix a bug where we could dereference None
getConstantVRegVal returns None when dealing with constants > 64 bits. Don't assume we always have a value in GISelKnownBits. llvm-svn: 371465
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
index 7db64654e42..c0391f7771f 100644
--- a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
@@ -140,6 +140,8 @@ void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known,
}
case TargetOpcode::G_CONSTANT: {
auto CstVal = getConstantVRegVal(R, MRI);
+ if (!CstVal)
+ break;
Known.One = *CstVal;
Known.Zero = ~Known.One;
break;
OpenPOWER on IntegriCloud