llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-llvm-ir Author: Matt Arsenault (arsenm) <details> <summary>Changes</summary> Co-authored-by: Claude (Claude-Opus-4.8) <noreply@<!-- -->anthropic.com> --- Full diff: https://github.com/llvm/llvm-project/pull/217907.diff 3 Files Affected: - (modified) llvm/test/tools/llvm-reduce/reduce-flags.ll (+24) - (modified) llvm/tools/llvm-reduce/ReducerWorkItem.cpp (+3) - (modified) llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp (+3) ``````````diff diff --git a/llvm/test/tools/llvm-reduce/reduce-flags.ll b/llvm/test/tools/llvm-reduce/reduce-flags.ll index f220fc429c89e..dd7610f583533 100644 --- a/llvm/test/tools/llvm-reduce/reduce-flags.ll +++ b/llvm/test/tools/llvm-reduce/reduce-flags.ll @@ -288,3 +288,27 @@ define i1 @icmp_samesign_keep(i32 %a) { %op = icmp samesign ult i32 %a, 10 ret i1 %op } + +; CHECK-LABEL: @addrspacecast_nonnull_drop( +; INTERESTING: = addrspacecast +; RESULT: addrspacecast ptr addrspace(1) %a to ptr +define ptr @addrspacecast_nonnull_drop(ptr addrspace(1) %a) { + %op = addrspacecast nonnull ptr addrspace(1) %a to ptr + ret ptr %op +} + +; CHECK-LABEL: @addrspacecast_nonnull_keep( +; INTERESTING: = addrspacecast nonnull +; RESULT: addrspacecast nonnull ptr addrspace(1) %a to ptr +define ptr @addrspacecast_nonnull_keep(ptr addrspace(1) %a) { + %op = addrspacecast nonnull ptr addrspace(1) %a to ptr + ret ptr %op +} + +; CHECK-LABEL: @addrspacecast_nonnull_vector_keep( +; INTERESTING: = addrspacecast nonnull +; RESULT: addrspacecast nonnull <2 x ptr addrspace(1)> %a to <2 x ptr> +define <2 x ptr> @addrspacecast_nonnull_vector_keep(<2 x ptr addrspace(1)> %a) { + %op = addrspacecast nonnull <2 x ptr addrspace(1)> %a to <2 x ptr> + ret <2 x ptr> %op +} diff --git a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp index fa4da7a073f1e..9be05aafc865d 100644 --- a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp +++ b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp @@ -681,6 +681,9 @@ static uint64_t computeIRComplexityScoreImpl(const Function &F) { } else if (const auto *PDI = dyn_cast<PossiblyDisjointInst>(&I)) { if (PDI->isDisjoint()) ++Score; + } else if (const auto *ASC = dyn_cast<AddrSpaceCastInst>(&I)) { + if (ASC->hasNonNull()) + ++Score; } else if (const auto *GEP = dyn_cast<GEPOperator>(&I)) { if (GEP->isInBounds()) ++Score; diff --git a/llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp b/llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp index 2937550bfec75..300747b4c5312 100644 --- a/llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp +++ b/llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp @@ -45,6 +45,9 @@ void llvm::reduceInstructionFlagsDeltaPass(Oracle &O, } else if (auto *ICmp = dyn_cast<ICmpInst>(&I)) { if (ICmp->hasSameSign() && !O.shouldKeep()) ICmp->setSameSign(false); + } else if (auto *ASC = dyn_cast<AddrSpaceCastInst>(&I)) { + if (ASC->hasNonNull() && !O.shouldKeep()) + ASC->setNonNull(false); } else if (auto *GEP = dyn_cast<GetElementPtrInst>(&I)) { GEPNoWrapFlags NW = GEP->getNoWrapFlags(); if (NW.isInBounds() && !O.shouldKeep()) `````````` </details> https://github.com/llvm/llvm-project/pull/217907 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
