From d518e291cacf9f6279742f6b2ce61084849968a8 Mon Sep 17 00:00:00 2001 From: Santiago Aboy Solanes Date: Tue, 14 Nov 2023 13:42:16 +0000 Subject: Allow LSE to remove acquire/release operations If we are synchronizing on a removable singleton, we can guarantee that no other thread has access to it. We can remove MonitorOperations related to that singleton since they are redundant. In a similar vein, Volatile load/stores related to removable singletons can be treated as regular load/stores. Bug: 227283233 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: Ia049ff7749ce341bdd05e0ade57221b44a8d298f --- compiler/optimizing/optimizing_compiler_stats.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'compiler/optimizing/optimizing_compiler_stats.h') diff --git a/compiler/optimizing/optimizing_compiler_stats.h b/compiler/optimizing/optimizing_compiler_stats.h index 4549af3cbf..60d18d2f24 100644 --- a/compiler/optimizing/optimizing_compiler_stats.h +++ b/compiler/optimizing/optimizing_compiler_stats.h @@ -50,6 +50,9 @@ enum class MethodCompilationStat { kRemovedDeadPhi, kRemovedTry, kRemovedNullCheck, + kRemovedVolatileLoad, + kRemovedVolatileStore, + kRemovedMonitorOp, kNotCompiledSkipped, kNotCompiledInvalidBytecode, kNotCompiledThrowCatchLoop, -- cgit v1.2.3-59-g8ed1b