summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-10-07 11:07:30 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-10-07 11:07:30 +0000
commit5928931541e07b4c98e677cfca3088106b2b9e64 (patch)
tree2497e003cc9df64357e933439d89ec299e2ff8bc
parent2e0cf19db386cbe003550027faf8c53739cf08db (diff)
parentd4cf1e4fe0624b99df22ed5556dc1d042b32a7e0 (diff)
Merge "Quick: Work around large frame sizes for x86_64."
-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);