summaryrefslogtreecommitdiff
path: root/compiler/optimizing/optimization.cc
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2020-06-08 10:26:06 +0100
committerVladimir Marko <vmarko@google.com>2020-06-08 12:41:04 +0000
commitef898425c975f150caaed077ca204fa86b951e7f (patch)
tree1ad038b90bb860fe1b9a20872b990c7918fcd1e1 /compiler/optimizing/optimization.cc
parentf7290cac4af6a981d98122af1a6d48b0e80da574 (diff)
Run LSA as a part of the LSE pass.
Make LSA a helper class, not an optimization pass. Move all its allocations to ScopedArenaAllocator to reduce the peak memory usage a little bit. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I7fc634abe732d22c99005921ffecac5207bcf05f
Diffstat (limited to 'compiler/optimizing/optimization.cc')
-rw-r--r--compiler/optimizing/optimization.cc10
1 files changed, 1 insertions, 9 deletions
diff --git a/compiler/optimizing/optimization.cc b/compiler/optimizing/optimization.cc
index 7483190a45..ec3b8c4904 100644
--- a/compiler/optimizing/optimization.cc
+++ b/compiler/optimizing/optimization.cc
@@ -48,7 +48,6 @@
#include "instruction_simplifier.h"
#include "intrinsics.h"
#include "licm.h"
-#include "load_store_analysis.h"
#include "load_store_elimination.h"
#include "loop_optimization.h"
#include "scheduler.h"
@@ -66,8 +65,6 @@ const char* OptimizationPassName(OptimizationPass pass) {
return SideEffectsAnalysis::kSideEffectsAnalysisPassName;
case OptimizationPass::kInductionVarAnalysis:
return HInductionVarAnalysis::kInductionPassName;
- case OptimizationPass::kLoadStoreAnalysis:
- return LoadStoreAnalysis::kLoadStoreAnalysisPassName;
case OptimizationPass::kGlobalValueNumbering:
return GVNOptimization::kGlobalValueNumberingPassName;
case OptimizationPass::kInvariantCodeMotion:
@@ -138,7 +135,6 @@ OptimizationPass OptimizationPassByName(const std::string& pass_name) {
X(OptimizationPass::kInliner);
X(OptimizationPass::kInstructionSimplifier);
X(OptimizationPass::kInvariantCodeMotion);
- X(OptimizationPass::kLoadStoreAnalysis);
X(OptimizationPass::kLoadStoreElimination);
X(OptimizationPass::kLoopOptimization);
X(OptimizationPass::kScheduling);
@@ -175,7 +171,6 @@ ArenaVector<HOptimization*> ConstructOptimizations(
// name list or fails fatally if no such analysis can be found.
SideEffectsAnalysis* most_recent_side_effects = nullptr;
HInductionVarAnalysis* most_recent_induction = nullptr;
- LoadStoreAnalysis* most_recent_lsa = nullptr;
// Loop over the requested optimizations.
for (size_t i = 0; i < length; i++) {
@@ -196,9 +191,6 @@ ArenaVector<HOptimization*> ConstructOptimizations(
case OptimizationPass::kInductionVarAnalysis:
opt = most_recent_induction = new (allocator) HInductionVarAnalysis(graph, pass_name);
break;
- case OptimizationPass::kLoadStoreAnalysis:
- opt = most_recent_lsa = new (allocator) LoadStoreAnalysis(graph, pass_name);
- break;
//
// Passes that need prior analysis.
//
@@ -223,7 +215,7 @@ ArenaVector<HOptimization*> ConstructOptimizations(
case OptimizationPass::kLoadStoreElimination:
CHECK(most_recent_side_effects != nullptr && most_recent_induction != nullptr);
opt = new (allocator) LoadStoreElimination(
- graph, *most_recent_side_effects, *most_recent_lsa, stats, pass_name);
+ graph, *most_recent_side_effects, stats, pass_name);
break;
//
// Regular passes.