From 1da40991ee82e39705dd772c272a96693e4f1132 Mon Sep 17 00:00:00 2001 From: Nikolas Klauser Date: Sun, 8 Feb 2026 20:55:06 +0100 Subject: [PATCH] [PredicateInfo] Fix crash on nonnull assume taking a constant --- llvm/lib/Transforms/Utils/PredicateInfo.cpp | 2 +- llvm/test/Transforms/SCCP/assume-operand-bundles.ll | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/Utils/PredicateInfo.cpp b/llvm/lib/Transforms/Utils/PredicateInfo.cpp index 79ef0a608b35e..a5fff94b60d18 100644 --- a/llvm/lib/Transforms/Utils/PredicateInfo.cpp +++ b/llvm/lib/Transforms/Utils/PredicateInfo.cpp @@ -365,7 +365,7 @@ void PredicateInfoBuilder::processAssume( if (II->hasOperandBundles()) { for (auto BOI : II->bundle_op_infos()) { if (RetainedKnowledge RK = getKnowledgeFromBundle(*II, BOI)) { - if (RK.AttrKind == Attribute::NonNull) + if (RK.AttrKind == Attribute::NonNull && shouldRename(RK.WasOn)) addInfoFor(OpsToRename, RK.WasOn, new (Allocator) PredicateBundleAssume(RK.WasOn, II, Attribute::NonNull)); diff --git a/llvm/test/Transforms/SCCP/assume-operand-bundles.ll b/llvm/test/Transforms/SCCP/assume-operand-bundles.ll index 6f86fc331422d..7485b9e289393 100644 --- a/llvm/test/Transforms/SCCP/assume-operand-bundles.ll +++ b/llvm/test/Transforms/SCCP/assume-operand-bundles.ll @@ -124,5 +124,13 @@ false1: %cf4 = icmp ne ptr null, %v call void @use(i1 %cf4) ret void +} + +define void @check_for_constant() { +; CHECK-LABEL: define void @check_for_constant() { +; CHECK-NEXT: call void @llvm.assume(i1 true) [ "nonnull"(ptr null) ] +; CHECK-NEXT: ret void +; + call void @llvm.assume(i1 true) [ "nonnull"(ptr null) ] ret void }