mikaelholmen wrote:

> #196345 fixes the assertion failure.

Thanks! It fixes
```opt -passes="require<no-op-loop>" require.ll -o /dev/null```
but
```opt -passes="loop(invalidate<all>)" require.ll -o /dev/null```
still crashes
```
opt: [...]/llvm/lib/Transforms/Scalar/LoopPassManager.cpp:266: auto 
llvm::FunctionToLoopPassAdaptor::run(Function &, FunctionAnalysisManager 
&)::(anonymous class)::operator()(StringRef, Any) const: Assertion 
`L->isRecursivelyLCSSAForm(LAR.DT, LI) && "Loops must remain in LCSSA form!"' 
failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and 
include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: build-all/bin/opt -passes=loop(invalidate<all>) 
require.ll -o /dev/null
1.      Running pass "function(loop(invalidate<all>))" on module "require.ll"
2.      Running pass "loop(invalidate<all>)" on function "foo"
 #0 0x000055e80acbd216 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
(build-all/bin/opt+0x520c216)
 #1 0x000055e80acb9e81 llvm::sys::RunSignalHandlers() 
(build-all/bin/opt+0x5208e81)
 #2 0x000055e80acbe469 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007f70a87e1990 __restore_rt (/lib64/libpthread.so.0+0x12990)
 #4 0x00007f70a61815af raise (/lib64/libc.so.6+0x4e5af)
 #5 0x00007f70a6154ee5 abort (/lib64/libc.so.6+0x21ee5)
 #6 0x00007f70a6154db9 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21db9)
 #7 0x00007f70a6179f06 (/lib64/libc.so.6+0x46f06)
 #8 0x000055e80c55cc63 (build-all/bin/opt+0x6aabc63)
 #9 0x000055e80c55c3ac bool 
llvm::PassInstrumentation::runBeforePass<llvm::Loop, 
llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, 
llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&>>(llvm::detail::PassConcept<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&> const&, llvm::Loop 
const&) const LoopPassManager.cpp:0:0
#10 0x000055e80c55a95d std::optional<llvm::PreservedAnalyses> 
llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, 
llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&>::runSinglePass<llvm::Loop, 
std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, 
std::default_delete<llvm::detail::PassConcept<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>>(llvm::Loop&, 
std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, 
std::default_delete<llvm::detail::PassConcept<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>&, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, 
llvm::PassInstrumentation&) (build-all/bin/opt+0x6aa995d)
#11 0x000055e80c55a5c3 llvm::PassManager<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) 
(build-all/bin/opt+0x6aa95c3)
#12 0x000055e80c559ac4 llvm::PassManager<llvm::Loop, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, 
llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, 
llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) 
(build-all/bin/opt+0x6aa8ac4)
#13 0x000055e80c2351bd llvm::detail::PassModel<llvm::Loop, 
llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, 
llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&>, llvm::AnalysisManager<llvm::Loop, 
llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, 
llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, 
llvm::LPMUpdater&) PassBuilderPipelines.cpp:0:0
#14 0x000055e80c55b890 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, 
llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x6aaa890)
#15 0x000055e80c237d3d llvm::detail::PassModel<llvm::Function, 
llvm::FunctionToLoopPassAdaptor, 
llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, 
llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#16 0x000055e80af09a25 llvm::PassManager<llvm::Function, 
llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, 
llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x5458a25)
#17 0x000055e80c239a1d llvm::detail::PassModel<llvm::Function, 
llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, 
llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, 
llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#18 0x000055e80af0e2ce llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, 
llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x545d2ce)
#19 0x000055e80c1c6e2d llvm::detail::PassModel<llvm::Module, 
llvm::ModuleToFunctionPassAdaptor, 
llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, 
llvm::AnalysisManager<llvm::Module>&) NewPMDriver.cpp:0:0
#20 0x000055e80af08725 llvm::PassManager<llvm::Module, 
llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, 
llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x5457725)
#21 0x000055e80c1bf345 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, bool) 
(build-all/bin/opt+0x670e345)
#22 0x000055e80ac5b970 optMain (build-all/bin/opt+0x51aa970)
#23 0x00007f70a616d865 __libc_start_main (/lib64/libc.so.6+0x3a865)
#24 0x000055e80ac58eee _start (build-all/bin/opt+0x51a7eee)
Abort (core dumped)

```


https://github.com/llvm/llvm-project/pull/192120
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to