<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Coroutine retcon/async lowering assertion error with new-pm"
href="https://bugs.llvm.org/show_bug.cgi?id=48176">48176</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Coroutine retcon/async lowering assertion error with new-pm
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Macintosh
</td>
</tr>
<tr>
<th>OS</th>
<td>MacOS X
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>lxfind@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>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 <a href="https://bugs.llvm.org/">https://bugs.llvm.org/</a> 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>
<span class="quote">>::run(llvm::Module&, llvm::AnalysisManager<llvm::</span >
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 <a href="https://bugs.llvm.org/">https://bugs.llvm.org/</a> 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>
<span class="quote">>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 62</span >
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</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>