diff options
author | 2022-10-14 16:55:47 +0100 | |
---|---|---|
committer | 2022-10-24 16:05:21 +0000 | |
commit | 2e2c94d32fcf3ee221e3d2f6cbb68ec6251f8c86 (patch) | |
tree | 1903374e48f34ed58300ea2ce64cac392d32e26d /compiler/optimizing/scheduler.cc | |
parent | e4e701b55ef341156d36db9dfc23f63d59dbf928 (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.cc | 1 |
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() || |