diff options
author | Alex Light <allight@google.com> | 2021-01-25 14:11:05 +0000 |
---|---|---|
committer | Alex Light <allight@google.com> | 2021-01-25 07:01:32 -0800 |
commit | 3a73ffb70151dbc99fa41f300a237f8c29783e0e (patch) | |
tree | 8debef1b372e5bea27d5265a9019446229955e3d /compiler/optimizing/load_store_elimination.h | |
parent | e585964df42e9fd2fab6f209810cb03e1b261ab1 (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.h | 14 |
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"; |