From c90d7c7cd3103a7b7ce62b40873d2dfcf306ca74 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Tue, 6 Oct 2015 17:30:45 +0000 Subject: Revert "Optimizing: Disable -Wframe-larger-than= for CompileOptimized()." Instead, prevent inlining of AllocateRegisters() that uses huge stack-allocated objects. Bug: 24698147 This reverts commit 67f784e63343db5ecd6e584343484684ea60d1f8. Change-Id: I94c408f7acf6e43897a248d9ea0761b979ed00c8 --- compiler/optimizing/optimizing_compiler.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'compiler/optimizing/optimizing_compiler.cc') diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 12d6b03a12..28514e18ec 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -31,6 +31,7 @@ #include "base/arena_allocator.h" #include "base/arena_containers.h" #include "base/dumpable.h" +#include "base/macros.h" #include "base/timing_logger.h" #include "boolean_simplifier.h" #include "bounds_check_elimination.h" @@ -534,6 +535,7 @@ static ArrayRef AlignVectorSize(ArenaVector& vector) { return ArrayRef(vector); } +NO_INLINE // Avoid increasing caller's frame size by large stack-allocated objects. static void AllocateRegisters(HGraph* graph, CodeGenerator* codegen, PassObserver* pass_observer) { @@ -562,9 +564,6 @@ static ArenaVector EmitAndSortLinkerPatches(CodeGenerator* codegen) return linker_patches; } -// TODO: The function below uses too much stack space. Bug: 24698147 -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wframe-larger-than=" CompiledMethod* OptimizingCompiler::CompileOptimized(HGraph* graph, CodeGenerator* codegen, CompilerDriver* compiler_driver, @@ -614,7 +613,6 @@ CompiledMethod* OptimizingCompiler::CompileOptimized(HGraph* graph, soa.Self()->TransitionFromSuspendedToRunnable(); return compiled_method; } -#pragma GCC diagnostic pop CompiledMethod* OptimizingCompiler::CompileBaseline( CodeGenerator* codegen, -- cgit v1.2.3-59-g8ed1b