[llvm-bugs] [Bug 48176] New: Coroutine retcon/async lowering assertion error with new-pm

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Nov 13 13:24:16 PST 2020


https://bugs.llvm.org/show_bug.cgi?id=48176

            Bug ID: 48176
           Summary: Coroutine retcon/async lowering assertion error with
                    new-pm
           Product: new-bugs
           Version: trunk
          Hardware: Macintosh
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: lxfind at gmail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

To reproduce this bug, following the following steps:
1. Build LLVM with assertions on.
2. Enable new pass manager by adding "--enable-new-pm" to
"llvm/test/Transforms/Coroutines/coro-async.ll" and
"llvm/test/Transforms/Coroutines/coro-retcon-resume-values2.ll".
3. Run the tests: "bin/llvm-lit ../llvm/test/Transforms/Coroutines -sv"

We will see crashes like this:

Assertion failed: (E.getNode().isPopulated() && "Can't have an unpopulated
node!"), function verify, file
/Users/xun/OSS/llvm-project/llvm/lib/Analysis/LazyCallGraph.cpp, line 257.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace.
Stack dump:
0.      Program arguments: /Users/xun/OSS/llvm-project/build_clang/bin/opt
-enable-coroutines -O2 -S
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH
or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  opt                      0x00000001041e303d
llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 61
1  opt                      0x00000001041e35cb
PrintStackTraceSignalHandler(void*) + 27
2  opt                      0x00000001041e13bb llvm::sys::RunSignalHandlers() +
123
3  opt                      0x00000001041e512d SignalHandler(int) + 205
4  libsystem_platform.dylib 0x00007fff6f0c75fd _sigtramp + 29
5  libdyld.dylib            0x00007fff6eecd78f dyldGlobalLockRelease() + 0
6  libsystem_c.dylib        0x00007fff6ef9d808 abort + 120
7  libsystem_c.dylib        0x00007fff6ef9cac6 err + 0
8  opt                      0x0000000101e48d4e
llvm::LazyCallGraph::SCC::verify() + 798
9  opt                      0x0000000101e498a2
llvm::LazyCallGraph::RefSCC::verify() + 402
10 opt                      0x0000000101e67558
llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17::operator()() const + 24
11 opt                      0x0000000101e67537
llvm::detail::scope_exit<llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17>::~scope_exit() + 39
12 opt                      0x0000000101e529a5
llvm::detail::scope_exit<llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17>::~scope_exit() + 21
13 opt                      0x0000000101e52939
llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&) + 233
14 opt                      0x0000000101cbcf22
updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&
, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&, bool) +
2114
15 opt                      0x0000000101cbe3f9
llvm::updateCGAndAnalysisManagerForCGSCCPass(llvm::LazyCallGraph&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyC
allGraph&>&, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&)
+ 73
16 opt                      0x000000010311e260
updateCallGraphAfterCoroutineSplit(llvm::LazyCallGraph::Node&,
llvm::coro::Shape const&, llvm::SmallVectorImpl<llvm::Function*> const&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGrap
h&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&) + 256
17 opt                      0x000000010311dc58
llvm::CoroSplitPass::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 1784
18 opt                      0x000000010470ef3e
llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CoroSplitPass,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC,
llvm::LazyCallGraph&>, llvm::LazyCall
Graph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 78
19 opt                      0x0000000101cba71e
llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCal
lGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC,
llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 414
20 opt                      0x000000010480be69
llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdat
eResult&> >::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 297
21 opt                      0x000000010331a711
llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>
, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> > >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 2209
22 opt                      0x0000000103319dbe
llvm::detail::PassModel<llvm::Module,
llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::Laz
yCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&,
llvm::CGSCCUpdateResult&> > >, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 62
23 opt                      0x0000000103020366 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 406
24 opt                      0x00000001032ff06e
llvm::ModuleInlinerWrapperPass::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 686
25 opt                      0x0000000104707f6e
llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>
>::run(llvm::Module&, llvm::AnalysisManager<llvm::
Module>&) + 62
26 opt                      0x0000000103020366 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 406
27 opt                      0x00000001010f539d
llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*,
llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*,
llvm::ToolOutputFile*, llvm::
StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind,
llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) + 6269
28 opt                      0x0000000101147eb7 main + 6583
29 libdyld.dylib            0x00007fff6eececc9 start + 1
30 libdyld.dylib            0x0000000000000004 start + 18446603338655142716
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /Users/xun/OSS/llvm-project/build_clang/bin/FileCheck
--check-prefixes=CHECK
/Users/xun/OSS/llvm-project/llvm/test/Transforms/Coroutines/coro-async.ll



Assertion failed: (E.getNode().isPopulated() && "Can't have an unpopulated
node!"), function verify, file
/Users/xun/OSS/llvm-project/llvm/lib/Analysis/LazyCallGraph.cpp, line 257.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace.
Stack dump:
0.      Program arguments: /Users/xun/OSS/llvm-project/build_clang/bin/opt
-coro-split -coro-cleanup -S
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH
or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  opt                      0x000000010f52c03d
llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 61
1  opt                      0x000000010f52c5cb
PrintStackTraceSignalHandler(void*) + 27
2  opt                      0x000000010f52a3bb llvm::sys::RunSignalHandlers() +
123
3  opt                      0x000000010f52e12d SignalHandler(int) + 205
4  libsystem_platform.dylib 0x00007fff6f0c75fd _sigtramp + 29
5  opt                      0x00000001115b9ae0
llvm::DenseMapInfo<llvm::codeview::GloballyHashedType>::Tombstone + 2094864
6  libsystem_c.dylib        0x00007fff6ef9d808 abort + 120
7  libsystem_c.dylib        0x00007fff6ef9cac6 err + 0
8  opt                      0x000000010d191d4e
llvm::LazyCallGraph::SCC::verify() + 798
9  opt                      0x000000010d1928a2
llvm::LazyCallGraph::RefSCC::verify() + 402
10 opt                      0x000000010d1b0558
llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17::operator()() const + 24
11 opt                      0x000000010d1b0537
llvm::detail::scope_exit<llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17>::~scope_exit() + 39
12 opt                      0x000000010d19b9a5
llvm::detail::scope_exit<llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&)::$_17>::~scope_exit() + 21
13 opt                      0x000000010d19b939
llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(llvm::LazyCallGraph::Node&,
llvm::LazyCallGraph::Node&) + 233
14 opt                      0x000000010d005f22
updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&
, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&, bool) +
2114
15 opt                      0x000000010d0073f9
llvm::updateCGAndAnalysisManagerForCGSCCPass(llvm::LazyCallGraph&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyC
allGraph&>&, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&)
+ 73
16 opt                      0x000000010e467260
updateCallGraphAfterCoroutineSplit(llvm::LazyCallGraph::Node&,
llvm::coro::Shape const&, llvm::SmallVectorImpl<llvm::Function*> const&,
llvm::LazyCallGraph::SCC&, llvm::LazyCallGrap
h&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&) + 256
17 opt                      0x000000010e466c58
llvm::CoroSplitPass::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 1784
18 opt                      0x000000010fa57f3e
llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CoroSplitPass,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC,
llvm::LazyCallGraph&>, llvm::LazyCall
Graph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 78
19 opt                      0x000000010d00371e
llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCal
lGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC,
llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 414
20 opt                      0x000000010fa86f01
llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm
::CGSCCUpdateResult&> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 2209
21 opt                      0x000000010fa865ae
llvm::detail::PassModel<llvm::Module,
llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyC
allGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> >,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>
>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 62
22 opt                      0x000000010e369366 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) + 406
23 opt                      0x000000010c43e39d
llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*,
llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*,
llvm::ToolOutputFile*, llvm::
StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind,
llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) + 6269
24 opt                      0x000000010c490eb7 main + 6583
25 libdyld.dylib            0x00007fff6eececc9 start + 1
26 libdyld.dylib            0x0000000000000004 start + 18446603338655142716
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /Users/xun/OSS/llvm-project/build_clang/bin/FileCheck
/Users/xun/OSS/llvm-project/llvm/test/Transforms/Coroutines/coro-retcon-resume-values2.ll

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20201113/f2acb6af/attachment-0001.html>


More information about the llvm-bugs mailing list