Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gardening] x64 AOT compilation in debug mode takes very long for co19/LibTest/collection/ListBase/ListBase_class_A01_t02 #54974

Closed
dcharkes opened this issue Feb 21, 2024 · 5 comments
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. gardening

Comments

@dcharkes
Copy link
Contributor

dcharkes commented Feb 21, 2024

TL;DR:

   - 88.10% dart::CallSiteInliner::InlineCalls()                                                                                                                                                                                                    ▒
      - 87.85% dart::CallSiteInliner::InlineStaticCalls()                                                                                                                                                                                           ▒
         - 87.67% dart::CallSiteInliner::TryInlining(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)                                                                                                                       ▒
            - 87.65% dart::CallSiteInliner::TryInliningImpl(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)                                                                                                                ▒
               - 82.04% dart::FlowGraphChecker::VisitBlocks()                                                                                                                                                                                       ▒
                  - 82.00% dart::FlowGraphChecker::VisitInstructions(dart::BlockEntryInstr*)                                                                                                                                                        ▒
                     - 70.13% dart::Instruction::GetBlock()    

AOT compilation for x64 in debug mode spends a long time in the inliner and flow graph checker in the specific test co19/LibTest/collection/ListBase/ListBase_class_A01_t02.

We should consider speeding up the flow graph checker.

=================================

The tests

co19/LibTest/collection/ListBase/ListBase_class_A01_t02 Timeout (expected Pass)

are failing on configurations

vm-aot-win-debug-x64

It's also flaking on:

  • vm-aot-linux-debug-x64c
  • vm-aot-win-debug-x64c

Current results: https://dart-current-results.web.app/#/filter=co19/LibTest/collection/ListBase/ListBase_class_A01_t02&showAll

--- Command "vm_compile_to_kernel" (took 03.000893s):
set DART_CONFIGURATION=DebugX64 & set DART_SUPPRESS_WER=1 & set DART_CRASHPAD_HANDLER=C:\b\s\w\ir\out\DebugX64\crashpad_handler.exe & C:\b\s\w\ir\pkg\vm\tool\gen_kernel.bat --aot --platform=out/DebugX64/vm_platform_strong.dill -o C:\b\s\w\ir\out\DebugX64\generated_compilations\vm-aot-win-debug-x64\short12422_istBase_ListBase_class_A01_t02\out.dill C:\b\s\w\ir\tests\co19\src\LibTest\collection\ListBase\ListBase_class_A01_t02.dart -Dtest_runner.configuration=vm-aot-win-debug-x64 --packages=C:\b\s\w\ir\.dart_tool\package_config.json -Ddart.vm.product=false --sound-null-safety

exit code:
0

--- Command "precompiler" (took 16:00.000009s):
set DART_CONFIGURATION=DebugX64 & set DART_SUPPRESS_WER=1 & set DART_CRASHPAD_HANDLER=C:\b\s\w\ir\out\DebugX64\crashpad_handler.exe & out\DebugX64\gen_snapshot --snapshot-kind=app-aot-elf --elf=C:/b/s/w/ir/out/DebugX64/generated_compilations/vm-aot-win-debug-x64/short12422_istBase_ListBase_class_A01_t02/out.aotsnapshot --loading-unit-manifest=C:/b/s/w/ir/out/DebugX64/generated_compilations/vm-aot-win-debug-x64/short12422_istBase_ListBase_class_A01_t02/ignored.json --sound-null-safety -Dtest_runner.configuration=vm-aot-win-debug-x64 --ignore-unrecognized-flags --packages=C:\b\s\w\ir\.dart_tool\package_config.json C:\b\s\w\ir\out\DebugX64\generated_compilations\vm-aot-win-debug-x64\short12422_istBase_ListBase_class_A01_t02\out.dill

exit code:
1

diagnostics:
win_sdk_path not found

--- Re-run this test:
python3 tools/test.py -n vm-aot-win-debug-x64 co19/LibTest/collection/ListBase/ListBase_class_A01_t02

I'm not sure why the test is timing out, it finishes rather quickly, even in debug mode:

$ time xcodebuild/DebugARM64/dart tests/co19/src/LibTest/collection/ListBase/ListBase_class_A01_t02.dart

real	0m1.954s
user	0m1.607s
sys	0m0.114s

The flakiness is related to timeouts (and one single crash). flakiness dashboard link

Last linux debug x64 hang log:

--- Command "vm_compile_to_kernel" (took 04.000265s):
DART_CONFIGURATION=DebugX64 /b/s/w/ir/pkg/vm/tool/gen_kernel --aot --platform=out/DebugX64/vm_platform_strong.dill -o /b/s/w/ir/out/DebugX64/generated_compilations/vm-aot-linux-debug-x64/tests_co19_src_LibTest_collection_ListBase_ListBase_class_A01_t02/out.dill /b/s/w/ir/tests/co19/src/LibTest/collection/ListBase/ListBase_class_A01_t02.dart -Dtest_runner.configuration=vm-aot-linux-debug-x64 --packages=/b/s/w/ir/.dart_tool/package_config.json -Ddart.vm.product=false --sound-null-safety

exit code:
0

--- Command "precompiler" (took 16:00.000762s):
DART_CONFIGURATION=DebugX64 out/DebugX64/gen_snapshot --snapshot-kind=app-aot-assembly --assembly=/b/s/w/ir/out/DebugX64/generated_compilations/vm-aot-linux-debug-x64/tests_co19_src_LibTest_collection_ListBase_ListBase_class_A01_t02/out.S --sound-null-safety -Dtest_runner.configuration=vm-aot-linux-debug-x64 --ignore-unrecognized-flags --packages=/b/s/w/ir/.dart_tool/package_config.json /b/s/w/ir/out/DebugX64/generated_compilations/vm-aot-linux-debug-x64/tests_co19_src_LibTest_collection_ListBase_ListBase_class_A01_t02/out.dill

exit code:
1

diagnostics:
Process list including children: [120709]
Trying to capture stack trace for pid 120709
PID 120709 - process
TID 120709:
#0  0x000055e341f11240 dart::Instruction::AsBlockEntry() const
#1  0x000055e3422dc9a5 dart::Instruction::GetBlock()
#2  0x000055e3422ddc0a dart::Instruction::CanEliminate(dart::BlockEntryInstr const*) const
#3  0x000055e3423929b5 dart::DeadCodeElimination::EliminateDeadCode(dart::FlowGraph*)
#4  0x000055e3423bd980 dart::CompilerPass_DCE::DoBody(dart::CompilerPassState*) const
#5  0x000055e3423bc7f6 dart::CompilerPass::Run(dart::CompilerPassState*) const
#6  0x000055e3423bcee1 dart::CompilerPass::RunPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
#7  0x000055e34226979a dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
#8  0x000055e34226a584 dart::PrecompileFunctionHelper(dart::Precompiler*, dart::CompilationPipeline*, dart::Function const&, bool)
#9  0x000055e342264c2c dart::Precompiler::CompileFunction(dart::Precompiler*, dart::Thread*, dart::Zone*, dart::Function const&)
#10 0x000055e34226360e dart::Precompiler::ProcessFunction(dart::Function const&)
#11 0x000055e34225dc24 dart::Precompiler::Iterate()
#12 0x000055e34225a4ec dart::Precompiler::DoCompileAll()
#13 0x000055e342258b16 dart::Precompiler::CompileAll()
#14 0x000055e342498e8e Dart_Precompile
#15 0x000055e341bcd852 dart::bin::main(int, char**)
#16 0x00007fc6be706083 __libc_start_main
#17 0x000055e341bca659 _start
TID 120710:
#0  0x00007fc6be80168e epoll_wait
#1  0x000055e341bd2145 dart::bin::EventHandlerImplementation::Poll(unsigned long)
#2  0x000055e341bfa4c2 dart::bin::ThreadStart(void*)
#3  0x00007fc6bea2b609 start_thread
#4  0x00007fc6be801353 __clone

--- Re-run this test:
python3 tools/test.py -n vm-aot-linux-debug-x64 co19/LibTest/collection/ListBase/ListBase_class_A01_t02

So it only hangs(?) on x64 and x64c. Only in AOT.

Last seen new results on flakiness dashboard: 2023-04-04 2023-04-05 for linux. So this has been flaky for a while.

I'll try to repro it locally.

Edit: AOT compilation indeed takes very long for this test!

@dcharkes dcharkes added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. gardening labels Feb 21, 2024
@dcharkes
Copy link
Contributor Author

dcharkes commented Feb 21, 2024

tools/test.py --build -n vm-aot-linux-debug-x64 co19/LibTest/collection/ListBase/ListBase_class_A01_t02 -v -k
perf record -o perf.perf -g out/DebugX64/gen_snapshot --snapshot-kind=app-aot-assembly --assembly=/usr/local/google/home/dacoharkes/dart-sdk/sdk/out/DebugX64/generated_compilations/vm-aot-linux-debug-x64/tests_co19_src_LibTest_collection_ListBase_ListBase_class_A01_t02/out.S --sound-null-safety -Dtest_runner.configuration=vm-aot-linux-debug-x64 --ignore-unrecognized-flags --packages=/usr/local/google/home/dacoharkes/dart-sdk/sdk/.dart_tool/package_config.json /usr/local/google/home/dacoharkes/dart-sdk/sdk/out/DebugX64/generated_compilations/vm-aot-linux-debug-x64/tests_co19_src_LibTest_collection_ListBase_ListBase_class_A01_t02/out.dill

Cancelled after 30 seconds:

Samples: 96K of event 'cpu-clock:upppH', Event count (approx.): 24102250000
  Children      Self  Command       Shared Object         Symbol
+   90.41%     0.13%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitBlocks()
+   90.08%     0.16%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitInstructions(dart::BlockEntryInstr*)
+   88.11%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::InlineCalls()
+   87.86%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::TryInlining(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)
+   87.85%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::InlineStaticCalls()
+   87.85%     0.01%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::TryInliningImpl(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)
+   71.47%    69.04%  gen_snapshot  gen_snapshot          [.] dart::Instruction::GetBlock()
+   26.61%     0.00%  gen_snapshot  libc.so.6             [.] __libc_start_call_main
+   26.61%     0.00%  gen_snapshot  gen_snapshot          [.] dart::bin::main(int, char**)
+   26.30%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::CompileAll()
+   26.30%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::DoCompileAll()
+   26.28%     0.00%  gen_snapshot  gen_snapshot          [.] Dart_Precompile
+   25.64%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::CompileFunction(dart::Precompiler*, dart::Thread*, dart::Zone*, dart::Function const&)
+   25.64%     0.00%  gen_snapshot  gen_snapshot          [.] dart::PrecompileFunctionHelper(dart::Precompiler*, dart::CompilationPipeline*, dart::Function const&, bool)
+   25.50%     0.00%  gen_snapshot  gen_snapshot          [.] dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
+   24.65%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::Iterate()
+   24.65%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::ProcessFunction(dart::Function const&)
+   24.34%     0.02%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::Run(dart::CompilerPassState*) const
+   24.03%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::RunPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
+   15.00%    15.00%  gen_snapshot  gen_snapshot          [.] dart::Instruction::AsBlockEntry() const
+   14.89%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_Inlining::DoBody(dart::CompilerPassState*) const
+   14.89%     0.00%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphInliner::Inline()
+    7.92%     0.27%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitInstruction(dart::Instruction*)
+    3.64%     0.00%  gen_snapshot  gen_snapshot          [.] dart::kernel::FlowGraphBuilder::BuildGraph()
+    3.56%     0.00%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildGraph()
+    3.50%     1.69%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitUseDef(dart::Instruction*, dart::Value*, long, bool)
+    3.21%     0.10%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitDefinition(dart::Definition*)
+    2.93%     0.01%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildGraphOfFunction(bool)
+    2.74%     0.00%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildFunctionBody(dart::Function const&, dart::LocalVariable*, bool)
+    2.55%     0.49%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphChecker::VisitDefUse(dart::Definition*, dart::Value*, dart::Value*, bool)
+    2.42%     0.00%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildBlock(dart::TokenPosition*)
+    2.31%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::RunInliningPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
+    2.03%     0.55%  gen_snapshot  gen_snapshot          [.] dart::Instruction::IsDominatedBy(dart::Instruction*)
+    1.57%     0.01%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildMethodInvocation(dart::TokenPosition*, bool)
BlockEntryInstr* Instruction::GetBlock() {
  // TODO(fschneider): Implement a faster way to get the block of an
  // instruction.

Trace for release (precompilation finishes in 2 seconds.)

Samples: 11K of event 'cpu-clock:upppH', Event count (approx.): 2953500000
  Children      Self  Command       Shared Object         Symbol
+   95.21%     0.00%  gen_snapshot  libc.so.6             [.] __libc_start_call_main
+   95.21%     0.00%  gen_snapshot  gen_snapshot          [.] dart::bin::main(int, char**)
+   91.88%     0.00%  gen_snapshot  gen_snapshot          [.] Dart_Precompile
+   91.88%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::CompileAll()
+   91.88%     0.00%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::DoCompileAll()
+   87.24%     0.01%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::CompileFunction(dart::Precompiler*, dart::Thread*, dart::Zone*, dart::Function const&)
+   87.24%     0.01%  gen_snapshot  gen_snapshot          [.] dart::PrecompileFunctionHelper(dart::Precompiler*, dart::CompilationPipeline*, dart::Function const&, bool)
+   86.91%     0.09%  gen_snapshot  gen_snapshot          [.] dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
+   86.22%     0.01%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::Iterate()
+   85.29%     0.02%  gen_snapshot  gen_snapshot          [.] dart::Precompiler::ProcessFunction(dart::Function const&)
+   79.26%     0.24%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::Run(dart::CompilerPassState*) const
+   76.86%     0.03%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::RunPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
+   24.21%     0.02%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphInliner::Inline()
+   24.20%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_Inlining::DoBody(dart::CompilerPassState*) const
+   23.95%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::InlineCalls()
+   22.57%     0.02%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::InlineStaticCalls()
+   22.23%     0.02%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::TryInlining(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)
+   22.09%     0.13%  gen_snapshot  gen_snapshot          [.] dart::CallSiteInliner::TryInliningImpl(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)
+   21.76%    21.21%  gen_snapshot  gen_snapshot          [.] dart::Instruction::GetBlock()
+   15.64%     0.01%  gen_snapshot  gen_snapshot          [.] dart::kernel::FlowGraphBuilder::BuildGraph()
+   15.24%     0.03%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildGraph()
+   14.03%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_EliminateEnvironments::DoBody(dart::CompilerPassState*) const
+   13.95%     0.12%  gen_snapshot  gen_snapshot          [.] dart::FlowGraph::EliminateEnvironments()
+   11.43%     0.04%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildGraphOfFunction(bool)
+   11.22%     0.01%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_DelayAllocations::DoBody(dart::CompilerPassState*) const
+   11.21%     0.08%  gen_snapshot  gen_snapshot          [.] dart::DelayAllocations::Optimize(dart::FlowGraph*)
+   10.85%     0.01%  gen_snapshot  gen_snapshot          [.] dart::DelayAllocations::IsOneTimeUse(dart::Instruction*, dart::Definition*)
+   10.09%     0.03%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildFunctionBody(dart::Function const&, dart::LocalVariable*, bool)
+    8.62%     0.03%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildBlock(dart::TokenPosition*)
+    7.36%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass::RunInliningPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
+    6.64%     0.02%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_TypePropagation::DoBody(dart::CompilerPassState*) const
+    6.63%     0.01%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphTypePropagator::Propagate(dart::FlowGraph*)
+    6.57%     6.57%  gen_snapshot  gen_snapshot          [.] icu_68::LocaleKeyFactory::handleCreate(icu_68::Locale const&, int, icu_68::ICUService const*, UErrorCode&) const
+    6.08%     0.00%  gen_snapshot  gen_snapshot          [.] dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)
+    5.60%     0.10%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphTypePropagator::Propagate()
+    5.37%     0.04%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildStatement(dart::TokenPosition*)
+    5.29%     0.66%  gen_snapshot  gen_snapshot          [.] dart::FlowGraphTypePropagator::PropagateRecursive(dart::BlockEntryInstr*)
+    5.08%     0.08%  gen_snapshot  gen_snapshot          [.] dart::kernel::StreamingFlowGraphBuilder::BuildMethodInvocation(dart::TokenPosition*, bool)
+    4.44%     0.03%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_Canonicalize::DoBody(dart::CompilerPassState*) const
+    4.43%     0.08%  gen_snapshot  gen_snapshot          [.] dart::FlowGraph::ComputeSSA(dart::ZoneGrowableArray<dart::Definition*>*)
+    4.33%     0.00%  gen_snapshot  gen_snapshot          [.] dart::CompilerPass_AllocateRegisters::DoBody(dart::CompilerPassState*) const
+    4.11%     0.19%  gen_snapshot  gen_snapshot          [.] dart::FlowGraph::Canonicalize()

@dcharkes
Copy link
Contributor Author

dcharkes commented Feb 21, 2024

Likely offending chain:

   - 88.10% dart::CallSiteInliner::InlineCalls()                                                                                                                                                                                                    ▒
      - 87.85% dart::CallSiteInliner::InlineStaticCalls()                                                                                                                                                                                           ▒
         - 87.67% dart::CallSiteInliner::TryInlining(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)                                                                                                                       ▒
            - 87.65% dart::CallSiteInliner::TryInliningImpl(dart::Function const&, dart::Array const&, dart::InlinedCallData*, bool)                                                                                                                ▒
               - 82.04% dart::FlowGraphChecker::VisitBlocks()                                                                                                                                                                                       ▒
                  - 82.00% dart::FlowGraphChecker::VisitInstructions(dart::BlockEntryInstr*)                                                                                                                                                        ▒
                     - 70.13% dart::Instruction::GetBlock()                                                                                                                                                                                         ▒
                          dart::Instruction::AsBlockEntry() const       

I wonder what function body triggers this.

The compiler seems to freeze after:

*** BEGIN CFG
After TryOptimizePatterns
==== file:///usr/local/google/home/dacoharkes/dart-sdk/sdk/tests/co19/src/LibTest/collection/ListBase/ListBase_class_A01_t02.dart_::_main (RegularFunction)
B0[graph]:0 {
      v5 <- Constant(#null) T{Null?}
}
B3[function entry]:2
    StaticCall:12( test<0> )
    Return:16(v5)
*** END CFG
Callee graph for inlining file:///usr/local/google/home/dacoharkes/dart-sdk/sdk/tests/co19/src/LibTest/collection/ListBase/ListBase_class_A01_t02.dart_::_main (optimized)
==== file:///usr/local/google/home/dacoharkes/dart-sdk/sdk/tests/co19/src/LibTest/collection/ListBase/ListBase_class_A01_t02.dart_::_main (RegularFunction)
B0[graph]:0 {
      v5 <- Constant(#null) T{Null?}
}
B3[function entry]:2
    StaticCall:12( test<0> )
    Return:16(v5)
     Success
       with reason need to count first, code size 2, call sites: 1
  Closure Calls (0)
  Depth 2 ----------
  Polymorphic Instance Calls (0)
  Static Calls (1)
  => test (deopt count 0)

After that CPU use drops.

When running this in the debugger though, it seems to always be compiling or checking something, and at some point in the future exits.

@dcharkes dcharkes changed the title [gardening] co19/LibTest/collection/ListBase/ListBase_class_A01_t02 flakily timing out in AOT on x64 and x64c [gardening] x64 AOT compilation in debug mode takes very long for co19/LibTest/collection/ListBase/ListBase_class_A01_t02 Feb 21, 2024
@dcharkes
Copy link
Contributor Author

FYI: @sstrickl @rmacnak-google @mkustermann

Should we consider having a pointer to the surrounding block in every instruction?

Or maybe less aggressively running the flow graph checker after every try inlining and only running it after the inlining pass is done?

Any other suggestions.

@mkustermann
Copy link
Member

I think this is a duplicate of #21708

@whesse
Copy link
Contributor

whesse commented Feb 28, 2024

Because this is causing deflaking times of up to an hour when deflaking just this single test, and the test is flakily timing-out, I am skipping this test on debug aot with SkipSlow in the co19-runtime.status file. The precompiler takes between 10 and 15 minutes to generate the snapshot.

Work on this is being tracked in issue #21708

copybara-service bot pushed a commit that referenced this issue Feb 28, 2024
The test LibTest/collection/ListBase/ListBase_class_A01_t02 takes
more than 10 minutes to be precompiled in debug mode, due to
a known issue.

Skipping this test on the CI and CQ  because it causes deflaking problems
when timing out. The problem is being tracked already in an issue.

Bug: #54974
Bug: #21708
Change-Id: Ib05e0f18baac684cf3317dbc2171a5a585e04f98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354844
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. gardening
Projects
None yet
Development

No branches or pull requests

3 participants