Skip to content

Commit 7ba1266

Browse files
mralephcommit-bot@chromium.org
authored andcommitted
[vm/compiler] Fix LoadStaticField::ComputeCanDeoptimize
It should only return true in JIT mode similar to other calls. Discovered when looking at allocation sinking in FFI version of reverse-complement microbenchmark. TEST=ci Issue dart-lang/sdk#40308 Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-product-x64-try,vm-kernel-precomp-linux-release-x64-try Change-Id: I79f432ffb88a467336fcb412a2d9fcdedc390cd8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/187404 Reviewed-by: Alexander Markov <[email protected]> Commit-Queue: Vyacheslav Egorov <[email protected]>
1 parent f2dfe3a commit 7ba1266

File tree

1 file changed

+6
-2
lines changed
  • runtime/vm/compiler/backend

1 file changed

+6
-2
lines changed

runtime/vm/compiler/backend/il.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5552,7 +5552,9 @@ class LoadStaticFieldInstr : public TemplateDefinition<0, Throws> {
55525552
return field().is_final() && !FLAG_fields_may_be_reset;
55535553
}
55545554

5555-
virtual bool ComputeCanDeoptimize() const { return calls_initializer(); }
5555+
virtual bool ComputeCanDeoptimize() const {
5556+
return calls_initializer() && !CompilerState::Current().is_aot();
5557+
}
55565558
virtual bool HasUnknownSideEffects() const { return calls_initializer(); }
55575559
virtual bool CanTriggerGC() const { return calls_initializer(); }
55585560
virtual bool MayThrow() const { return calls_initializer(); }
@@ -6592,7 +6594,9 @@ class LoadFieldInstr : public TemplateDefinition<1, Throws> {
65926594
DECLARE_INSTRUCTION(LoadField)
65936595
virtual CompileType ComputeType() const;
65946596

6595-
virtual bool ComputeCanDeoptimize() const { return calls_initializer(); }
6597+
virtual bool ComputeCanDeoptimize() const {
6598+
return calls_initializer() && !CompilerState::Current().is_aot();
6599+
}
65966600

65976601
virtual bool HasUnknownSideEffects() const {
65986602
return calls_initializer() && !throw_exception_on_initialization();

0 commit comments

Comments
 (0)