From 5eb1fd0dae3832ceee2102613bb08c291daca6f3 Mon Sep 17 00:00:00 2001 From: Santiago Aboy Solanes Date: Tue, 18 Apr 2023 15:16:06 +0100 Subject: Restrict the use of ConstantFolding's VisitIf It was taking a lot of time for the improvement it got. We can get 99.99% of the improvement, with only one VisitIf call. This is roughly 20% of the compile time it used to take. Bug: 278626992 Fixes: 278626992 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: Icc00c9ad6a9eb4f4fd18677bcb65655cbbe9d027 --- compiler/optimizing/optimization.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'compiler/optimizing/optimization.cc') diff --git a/compiler/optimizing/optimization.cc b/compiler/optimizing/optimization.cc index e1b97b4aac..12e9a1046d 100644 --- a/compiler/optimizing/optimization.cc +++ b/compiler/optimizing/optimization.cc @@ -77,6 +77,7 @@ const char* OptimizationPassName(OptimizationPass pass) { return BoundsCheckElimination::kBoundsCheckEliminationPassName; case OptimizationPass::kLoadStoreElimination: return LoadStoreElimination::kLoadStoreEliminationPassName; + case OptimizationPass::kAggressiveConstantFolding: case OptimizationPass::kConstantFolding: return HConstantFolding::kConstantFoldingPassName; case OptimizationPass::kDeadCodeElimination: @@ -227,6 +228,10 @@ ArenaVector ConstructOptimizations( case OptimizationPass::kConstantFolding: opt = new (allocator) HConstantFolding(graph, stats, pass_name); break; + case OptimizationPass::kAggressiveConstantFolding: + opt = new (allocator) + HConstantFolding(graph, stats, pass_name, /* use_all_optimizations_ = */ true); + break; case OptimizationPass::kDeadCodeElimination: opt = new (allocator) HDeadCodeElimination(graph, stats, pass_name); break; -- cgit v1.2.3-59-g8ed1b