[llvm] [polly] Reapply "IR: Remove uselist for constantdata (#137313)" (PR #138961)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Mon May 12 07:20:56 PDT 2025


dtcxzyw wrote:

> We've bisected an assertion failure to this commit:
> 
> ```
> clang: /work/llvm-project/llvm/include/llvm/IR/Value.h:360: llvm::Value::const_use_iterator llvm::Value::materialized_use_begin() const: Assertion `hasUseList()' failed.
> ```
> 
> There's a stack and reproducer at https://crbug.com/417175765#comment3
> 
> Can you take a look?
> 
> I've started a creduce run, but it might take a while.

Reduced reproducer:
```
; bin/opt -passes=objc-arc reduced.ll -S

target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx11.0.0"

; Function Attrs: nounwind
declare ptr @llvm.objc.retain(ptr returned) #0

; Function Attrs: nounwind
declare void @llvm.objc.release(ptr) #0

declare ptr @objc_msgSend(...)

; Function Attrs: null_pointer_is_valid
define i1 @_ZN8GrMtlGpu20readOrTransferPixelsEP9GrSurface7SkIRect11GrColorTypePU19objcproto9MTLBuffer11objc_objectmmm(ptr %this) #1 {
entry:
  %0 = tail call ptr @llvm.objc.retain(ptr %this)
  br i1 false, label %cleanup66, label %if.end30

if.end30:                                         ; preds = %entry
  %1 = load ptr, ptr %this, align 8
  call void @objc_msgSend(ptr null, ptr %1, ptr null)
  br label %cleanup66

cleanup66:                                        ; preds = %if.end30, %entry
  %mtlTexture.1103 = phi ptr [ null, %entry ], [ %this, %if.end30 ]
  tail call void @llvm.objc.release(ptr %mtlTexture.1103)
  ret i1 false
}

attributes #0 = { nounwind }
attributes #1 = { null_pointer_is_valid }
```
```
opt: /home/dtcxzyw/WorkSpace/Projects/compilers/llvm-project/llvm/include/llvm/IR/Value.h:360: llvm::Value::const_use_iterator llvm::Value::materialized_use_begin() const: Assertion `hasUseList()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: bin/opt -passes=objc-arc reduced.ll -S
1.      Running pass "function(objc-arc)" on module "reduced.ll"
2.      Running pass "objc-arc" on function "_ZN8GrMtlGpu20readOrTransferPixelsEP9GrSurface7SkIRect11GrColorTypePU19objcproto9MTLBuffer11objc_objectmmm"
 #0 0x0000763f65626032 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.21.0git+0x226032)
 #1 0x0000763f65622f0f llvm::sys::RunSignalHandlers() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.21.0git+0x222f0f)
 #2 0x0000763f65623054 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x0000763f65045330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x0000763f6509eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x0000763f6509eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x0000763f6509eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x0000763f6504527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x0000763f650288ff abort ./stdlib/abort.c:81:7
 #9 0x0000763f6502881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x0000763f6503b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x0000763f64788eff IsStoredObjCPointer(llvm::Value const*) ProvenanceAnalysis.cpp:0:0
#12 0x0000763f6478a162 llvm::objcarc::ProvenanceAnalysis::related(llvm::Value const*, llvm::Value const*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x29162)
#13 0x0000763f6478b16e llvm::objcarc::ProvenanceAnalysis::relatedPHI(llvm::PHINode const*, llvm::Value const*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x2a16e)
#14 0x0000763f6478a162 llvm::objcarc::ProvenanceAnalysis::related(llvm::Value const*, llvm::Value const*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x29162)
#15 0x0000763f64787d1a llvm::objcarc::CanUse(llvm::Instruction const*, llvm::Value const*, llvm::objcarc::ProvenanceAnalysis&, llvm::objcarc::ARCInstKind) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x26d1a)
#16 0x0000763f6478ecf1 llvm::objcarc::BottomUpPtrState::HandlePotentialUse(llvm::BasicBlock*, llvm::Instruction*, llvm::Value const*, llvm::objcarc::ProvenanceAnalysis&, llvm::objcarc::ARCInstKind) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x2dcf1)
#17 0x0000763f6477abe7 (anonymous namespace)::ObjCARCOpt::VisitInstructionBottomUp(llvm::Instruction*, llvm::BasicBlock*, llvm::BlotMapVector<llvm::Value*, llvm::objcarc::RRInfo>&, (anonymous namespace)::BBState&) ObjCARCOpts.cpp:0:0
#18 0x0000763f6477b33e (anonymous namespace)::ObjCARCOpt::VisitBottomUp(llvm::BasicBlock*, llvm::DenseMap<llvm::BasicBlock const*, (anonymous namespace)::BBState, llvm::DenseMapInfo<llvm::BasicBlock const*, void>, llvm::detail::DenseMapPair<llvm::BasicBlock const*, (anonymous namespace)::BBState>>&, llvm::BlotMapVector<llvm::Value*, llvm::objcarc::RRInfo>&) ObjCARCOpts.cpp:0:0
#19 0x0000763f6477cb9e (anonymous namespace)::ObjCARCOpt::OptimizeSequences(llvm::Function&) ObjCARCOpts.cpp:0:0
#20 0x0000763f6477e963 llvm::ObjCARCOptPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMObjCARCOpts.so.21.0git+0x1d963)
#21 0x0000763f5f2eaec5 llvm::detail::PassModel<llvm::Function, llvm::ObjCARCOptPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMPasses.so.21.0git+0xeaec5)
#22 0x0000763f5c12a624 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.21.0git+0x32a624)
#23 0x0000763f640db3c5 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMX86CodeGen.so.21.0git+0xdb3c5)
#24 0x0000763f5c128f00 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.21.0git+0x328f00)
#25 0x0000763f640dbd85 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMX86CodeGen.so.21.0git+0xdbd85)
#26 0x0000763f5c1294f5 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.21.0git+0x3294f5)
#27 0x0000763f6580a2e9 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMOptDriver.so.21.0git+0x2c2e9)
#28 0x0000763f65815306 optMain (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMOptDriver.so.21.0git+0x37306)
#29 0x0000763f6502a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#30 0x0000763f6502a28b call_init ./csu/../csu/libc-start.c:128:20
#31 0x0000763f6502a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#32 0x0000636398032095 _start (bin/opt+0x1095)
```

https://github.com/llvm/llvm-project/pull/138961


More information about the llvm-commits mailing list