summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-10-07 12:03:29 +0100
committer Vladimir Marko <vmarko@google.com> 2015-10-07 12:03:29 +0100
commitd4cf1e4fe0624b99df22ed5556dc1d042b32a7e0 (patch)
treed4ffdff0fcea7e28c5b4b4f76199e55d44305cdd
parentd6ace609ef3c5d37ea4d980a2aaa3a9c31943d3b (diff)
Quick: Work around large frame sizes for x86_64.
Bug: 24729377 Change-Id: Id608aabad60fb7f1a1450a02444bddfb0eb008a6
-rw-r--r--compiler/dex/global_value_numbering.cc4
-rw-r--r--compiler/dex/local_value_numbering.cc4
-rw-r--r--compiler/dex/local_value_numbering.h1
-rw-r--r--compiler/dex/mir_analysis.cc4
4 files changed, 13 insertions, 0 deletions
diff --git a/compiler/dex/global_value_numbering.cc b/compiler/dex/global_value_numbering.cc
index 94ba4fad2a..aee94dcf43 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 38f7d1e712..25a832604a 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 dff5e27521..715da41afd 100644
--- a/compiler/dex/local_value_numbering.h
+++ b/compiler/dex/local_value_numbering.h
@@ -37,6 +37,7 @@ class LocalValueNumbering : public DeletableArenaObject<kArenaAllocMisc> {
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 39f8ee8f7e..6a761d3f68 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);