diff options
| author | buzbee <buzbee@google.com> | 2013-04-12 14:39:29 -0700 |
|---|---|---|
| committer | buzbee <buzbee@google.com> | 2013-05-13 12:34:28 -0700 |
| commit | a5abf7091711eed1e9f1d0e1538fe9963ebdf31c (patch) | |
| tree | e256df83ca632744d144854403a326d90cb683a7 /src/compiler/dex/quick/ralloc_util.cc | |
| parent | bf47e5f28b1aa39748dce8ac5abbabca1baee093 (diff) | |
| download | android_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.cc | 4 |
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; + } } /* |
