summaryrefslogtreecommitdiffstats
path: root/runtime/sirt_ref.h
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2013-09-24 18:17:04 -0700
committerIan Rogers <irogers@google.com>2013-09-24 21:17:06 -0700
commitd0fbd85a82a266c21d6b72c61d6dc098ec362de7 (patch)
tree14f431e4bd889b6c7ec6b29322594786828d3bb1 /runtime/sirt_ref.h
parentfc0e94bed3f88ed7e50854fd8dfaf5dcb345250f (diff)
downloadart-d0fbd85a82a266c21d6b72c61d6dc098ec362de7.zip
art-d0fbd85a82a266c21d6b72c61d6dc098ec362de7.tar.gz
art-d0fbd85a82a266c21d6b72c61d6dc098ec362de7.tar.bz2
Reduce memory allocation in verifier.
Remove the use of a map PcToRegisterLineTable for efficiency (matches Dalvik). Place the register line register values inside the RegisterLine, saves a secondary allocation and indirection. Avoid the use of a deque in RegisterLine to avoid an allocation. Simplify the SirtRef destructor in non-debug builds. Saves >100ms from the two threaded compile time of ThinkFree on host. Change-Id: I2dacba61dbaf284ca02d4c194413e1da221dcb76
Diffstat (limited to 'runtime/sirt_ref.h')
-rw-r--r--runtime/sirt_ref.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/sirt_ref.h b/runtime/sirt_ref.h
index 25d6fb3..a1f8a66 100644
--- a/runtime/sirt_ref.h
+++ b/runtime/sirt_ref.h
@@ -30,7 +30,8 @@ class SirtRef {
self_->PushSirt(&sirt_);
}
~SirtRef() {
- CHECK_EQ(self_->PopSirt(), &sirt_);
+ StackIndirectReferenceTable* top_sirt = self_->PopSirt();
+ DCHECK_EQ(top_sirt, &sirt_);
}
T& operator*() const { return *get(); }