<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>