From d4cf1e4fe0624b99df22ed5556dc1d042b32a7e0 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 7 Oct 2015 12:03:29 +0100 Subject: [PATCH] Quick: Work around large frame sizes for x86_64. Bug: 24729377 Change-Id: Id608aabad60fb7f1a1450a02444bddfb0eb008a6 --- compiler/dex/global_value_numbering.cc | 4 ++++ compiler/dex/local_value_numbering.cc | 4 ++++ compiler/dex/local_value_numbering.h | 1 + compiler/dex/mir_analysis.cc | 4 ++++ 4 files changed, 13 insertions(+) diff --git a/compiler/dex/global_value_numbering.cc b/compiler/dex/global_value_numbering.cc index 94ba4fad2..aee94dcf4 100644 --- a/compiler/dex/global_value_numbering.cc +++ b/compiler/dex/global_value_numbering.cc @@ -41,9 +41,13 @@ GlobalValueNumbering::GlobalValueNumbering(CompilationUnit* cu, ScopedArenaAlloc merge_lvns_(allocator->Adapter()) { } +// FIXME: Large frame size for x86_64 target. Bug: 24729377. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wframe-larger-than=" GlobalValueNumbering::~GlobalValueNumbering() { STLDeleteElements(&lvns_); } +#pragma GCC diagnostic pop LocalValueNumbering* GlobalValueNumbering::PrepareBasicBlock(BasicBlock* bb, ScopedArenaAllocator* allocator) { diff --git a/compiler/dex/local_value_numbering.cc b/compiler/dex/local_value_numbering.cc index 38f7d1e71..25a832604 100644 --- a/compiler/dex/local_value_numbering.cc +++ b/compiler/dex/local_value_numbering.cc @@ -347,6 +347,10 @@ LocalValueNumbering::LocalValueNumbering(GlobalValueNumbering* gvn, uint16_t id, std::fill_n(unresolved_ifield_version_, arraysize(unresolved_ifield_version_), 0u); } +LocalValueNumbering::~LocalValueNumbering() { + // All done by member destructors. +} + bool LocalValueNumbering::Equals(const LocalValueNumbering& other) const { DCHECK(gvn_ == other.gvn_); // Compare the maps/sets and memory versions. diff --git a/compiler/dex/local_value_numbering.h b/compiler/dex/local_value_numbering.h index dff5e2752..715da41af 100644 --- a/compiler/dex/local_value_numbering.h +++ b/compiler/dex/local_value_numbering.h @@ -37,6 +37,7 @@ class LocalValueNumbering : public DeletableArenaObject { public: LocalValueNumbering(GlobalValueNumbering* gvn, BasicBlockId id, ScopedArenaAllocator* allocator); + ~LocalValueNumbering(); BasicBlockId Id() const { return id_; diff --git a/compiler/dex/mir_analysis.cc b/compiler/dex/mir_analysis.cc index 39f8ee8f7..6a761d3f6 100644 --- a/compiler/dex/mir_analysis.cc +++ b/compiler/dex/mir_analysis.cc @@ -1305,6 +1305,9 @@ void MIRGraph::DoCacheFieldLoweringInfo() { } } +// FIXME: Large frame size for x86_64 target. Bug: 24729377. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wframe-larger-than=" void MIRGraph::DoCacheMethodLoweringInfo() { static constexpr uint16_t invoke_types[] = { kVirtual, kSuper, kDirect, kStatic, kInterface }; static constexpr uint32_t kMethodIdxFlagQuickened = 0x80000000; @@ -1429,6 +1432,7 @@ void MIRGraph::DoCacheMethodLoweringInfo() { MirMethodLoweringInfo::Resolve(cu_->compiler_driver, GetCurrentDexCompilationUnit(), method_lowering_infos_.data(), count); } +#pragma GCC diagnostic pop bool MIRGraph::SkipCompilationByName(const std::string& methodname) { return cu_->compiler_driver->SkipCompilation(methodname); -- 2.11.0