summaryrefslogtreecommitdiffstats
path: root/vm/compiler/Utility.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@android.com>2011-03-16 17:19:06 -0700
committerBen Cheng <bccheng@android.com>2011-03-18 17:02:20 -0700
commit46cd4fb73824ab57160994c149ce2d7a06923b83 (patch)
tree0839bd9c762c10ca1f4656f8f340b0d6113f1a22 /vm/compiler/Utility.c
parent4ee46dbdc0d6ab1337a483b870775e0929a011cc (diff)
downloadandroid_dalvik-46cd4fb73824ab57160994c149ce2d7a06923b83.tar.gz
android_dalvik-46cd4fb73824ab57160994c149ce2d7a06923b83.tar.bz2
android_dalvik-46cd4fb73824ab57160994c149ce2d7a06923b83.zip
Extend a trace with a backward branch into a loop.
When seeing a trace that ends with a backward branch, exhaust all code blocks reachable from that trace and try to identify if there exists a non-nested loop. If the derived loop is found to be too complex or only acyclic code is seen, revert to the original compilation mechanism to translate a simple trace. This CL uses the whole-method parser/dataflow analysis framework to identify such loops. No optimization/codegen are performed yet. Bug: 4086718 Change-Id: I19ed3ee53ea1cbda33940c533de8e9220e647156
Diffstat (limited to 'vm/compiler/Utility.c')
-rw-r--r--vm/compiler/Utility.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/vm/compiler/Utility.c b/vm/compiler/Utility.c
index 7be57efa2..fb16388cb 100644
--- a/vm/compiler/Utility.c
+++ b/vm/compiler/Utility.c
@@ -352,7 +352,7 @@ void dvmDebugBitVector(char *msg, const BitVector *bv, int length)
LOGE("%s", msg);
for (i = 0; i < length; i++) {
if (dvmIsBitSet(bv, i)) {
- LOGE("Bit %d is set", i);
+ LOGE(" Bit %d is set", i);
}
}
}
@@ -398,6 +398,9 @@ void dvmGetBlockName(BasicBlock *bb, char *name)
case kDalvikByteCode:
snprintf(name, BLOCK_NAME_LEN, "block%04x", bb->startOffset);
break;
+ case kChainingCellNormal:
+ snprintf(name, BLOCK_NAME_LEN, "chain%04x", bb->startOffset);
+ break;
case kExceptionHandling:
snprintf(name, BLOCK_NAME_LEN, "exception%04x", bb->startOffset);
break;