summaryrefslogtreecommitdiff
path: root/compiler/optimizing/scheduler.cc
diff options
context:
space:
mode:
author Santiago Aboy Solanes <solanes@google.com> 2022-10-14 16:55:47 +0100
committer Santiago Aboy Solanes <solanes@google.com> 2022-10-24 16:05:21 +0000
commit2e2c94d32fcf3ee221e3d2f6cbb68ec6251f8c86 (patch)
tree1903374e48f34ed58300ea2ce64cac392d32e26d /compiler/optimizing/scheduler.cc
parente4e701b55ef341156d36db9dfc23f63d59dbf928 (diff)
Allow LSA to run with acquire/release operations
LSA will run in graphs with acquire loads (i.e. monitor enter and volatile load) and release stores (i.e. monitor exit and volatile stores). Helps both LSE and the Scheduler, and brings code size and memory use reductions. For example, ~40KB (~0.1%) reduction in memory use when compiling android framework in armv8. Code size gains (locally run on Pixel 5 w/ AOSP): Android Google Search App (AGSA): 209KB System server: 44KB System UI: 20KB which is ~0.1% for each compile. Bug: 227283233 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I9ac79cf2324348414186f95e531c98b4215b28ea
Diffstat (limited to 'compiler/optimizing/scheduler.cc')
-rw-r--r--compiler/optimizing/scheduler.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/scheduler.cc b/compiler/optimizing/scheduler.cc
index d228aba95a..d6568980c8 100644
--- a/compiler/optimizing/scheduler.cc
+++ b/compiler/optimizing/scheduler.cc
@@ -721,6 +721,7 @@ bool HScheduler::IsSchedulable(const HInstruction* instruction) const {
// HNop
// HThrow
// HTryBoundary
+ // All volatile field access e.g. HInstanceFieldGet
// TODO: Some of the instructions above may be safe to schedule (maybe as
// scheduling barriers).
return instruction->IsArrayGet() ||