summaryrefslogtreecommitdiffstats
path: root/src/compiler/dex/quick/ralloc_util.cc
diff options
context:
space:
mode:
authorbuzbee <buzbee@google.com>2013-04-12 14:39:29 -0700
committerbuzbee <buzbee@google.com>2013-05-13 12:34:28 -0700
commita5abf7091711eed1e9f1d0e1538fe9963ebdf31c (patch)
treee256df83ca632744d144854403a326d90cb683a7 /src/compiler/dex/quick/ralloc_util.cc
parentbf47e5f28b1aa39748dce8ac5abbabca1baee093 (diff)
downloadandroid_art-a5abf7091711eed1e9f1d0e1538fe9963ebdf31c.tar.gz
android_art-a5abf7091711eed1e9f1d0e1538fe9963ebdf31c.tar.bz2
android_art-a5abf7091711eed1e9f1d0e1538fe9963ebdf31c.zip
Compiler: replace DOM traversal computation
Originally the old trace JIT used a few recursive graph walking algorithms - which was perfectly reasonable given that the graph size was capped at a few dozen nodes at most. These were replaced with iterative walk order computations - or at least I thought they all were. Missed one of them, which caused a stack overflow on a pathologically large method compilation. Renaming of some arena_allocator items for consistency and clarity. More detailed memory usage logging. Reworked the allocator to waste less space when an allocation doesn't fit and a new block must be allocated. Change-Id: I4d84dded3c47819eefa0de90ebb821dd12eb8be8
Diffstat (limited to 'src/compiler/dex/quick/ralloc_util.cc')
-rw-r--r--src/compiler/dex/quick/ralloc_util.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler/dex/quick/ralloc_util.cc b/src/compiler/dex/quick/ralloc_util.cc
index dd389146ad..30ed1b7db2 100644
--- a/src/compiler/dex/quick/ralloc_util.cc
+++ b/src/compiler/dex/quick/ralloc_util.cc
@@ -37,6 +37,10 @@ void Mir2Lir::ResetRegPool()
if (reg_pool_->FPRegs[i].is_temp)
reg_pool_->FPRegs[i].in_use = false;
}
+ // Reset temp tracking sanity check.
+ if (kIsDebugBuild) {
+ live_sreg_ = INVALID_SREG;
+ }
}
/*