This fixes PR34908. Patch by Alex Crichton!
Differential Revision: https://reviews.llvm.org/D38765
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315429
91177308-0d34-0410-b5e6-
96231b3b80d8
}
markInstructionForDeletion(IntrinsicI);
return false;
+ } else if (isa<Constant>(V)) {
+ // If it's not false, and constant, it must evaluate to true. This means our
+ // assume is assume(true), and thus, pointless, and we don't want to do
+ // anything more here.
+ return false;
}
Constant *True = ConstantInt::getTrue(V->getContext());
--- /dev/null
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -gvn -S | FileCheck %s
+
+define i1 @foo() {
+; CHECK-LABEL: @foo(
+; CHECK-NEXT: call void @llvm.assume(i1 undef)
+; CHECK-NEXT: ret i1 undef
+;
+ call void @llvm.assume(i1 undef)
+ ret i1 undef
+}
+
+declare void @llvm.assume(i1)