summaryrefslogtreecommitdiff
path: root/compiler/optimizing/load_store_elimination.h
diff options
context:
space:
mode:
authorAlex Light <allight@google.com>2021-01-25 14:11:05 +0000
committerAlex Light <allight@google.com>2021-01-25 07:01:32 -0800
commit3a73ffb70151dbc99fa41f300a237f8c29783e0e (patch)
tree8debef1b372e5bea27d5265a9019446229955e3d /compiler/optimizing/load_store_elimination.h
parente585964df42e9fd2fab6f209810cb03e1b261ab1 (diff)
Revert^4 "Partial Load Store Elimination"
This reverts commit 791df7a161ecfa28eb69862a4bc285282463b960. This unreverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024. This unreverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07. We incorrectly failed to include PredicatedInstanceFieldGet in a few conditions, including a DCHECK. This caused tests to fail under the read-barrier-table-lookup configuration. Reason for revert: Fixed 2 incorrect checks Bug: 67037140 Test: ./art/test/testrunner/run_build_test_target.py -j70 art-gtest-read-barrier-table-lookup Change-Id: I32b01b29fb32077fb5074e7c77a0226bd1fcaab4
Diffstat (limited to 'compiler/optimizing/load_store_elimination.h')
-rw-r--r--compiler/optimizing/load_store_elimination.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/compiler/optimizing/load_store_elimination.h b/compiler/optimizing/load_store_elimination.h
index 60c547cb8b..e73ef5ef34 100644
--- a/compiler/optimizing/load_store_elimination.h
+++ b/compiler/optimizing/load_store_elimination.h
@@ -25,12 +25,24 @@ class SideEffectsAnalysis;
class LoadStoreElimination : public HOptimization {
public:
+ // Whether or not we should attempt partial Load-store-elimination which
+ // requires additional blocks and predicated instructions.
+ static constexpr bool kEnablePartialLSE = true;
+
+ // Controls whether to enable VLOG(compiler) logs explaining the transforms taking place.
+ static constexpr bool kVerboseLoggingMode = false;
+
LoadStoreElimination(HGraph* graph,
OptimizingCompilerStats* stats,
const char* name = kLoadStoreEliminationPassName)
: HOptimization(graph, name, stats) {}
- bool Run() override;
+ bool Run() override {
+ return Run(kEnablePartialLSE);
+ }
+
+ // Exposed for testing.
+ bool Run(bool enable_partial_lse);
static constexpr const char* kLoadStoreEliminationPassName = "load_store_elimination";