diff options
| author | Henrik Smiding <henrik.smiding@stericsson.com> | 2013-02-21 23:11:53 +0100 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2013-07-24 12:59:42 -0700 |
| commit | d49ca93f47b83e1b03be8d610d6ee5ec680dee7f (patch) | |
| tree | 048383a01cd2d7728cec9b953053121f27f4ce82 /vm/compiler/codegen/arm/CodegenDriver.cpp | |
| parent | 25b94295a57290623e34882e7fd86ea10928a54e (diff) | |
JIT: Hoist loop load operations above loop.
Hoists Dalvik frame load operations outside of loops, when possible.
This improves performance in most loops, and is noticable in many
applications.
Change-Id: Ibe42b509b50a13f19758fd923f31d703e33a51c6
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenDriver.cpp')
| -rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.cpp b/vm/compiler/codegen/arm/CodegenDriver.cpp index cdc4f0203..de53b00fb 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.cpp +++ b/vm/compiler/codegen/arm/CodegenDriver.cpp @@ -3838,7 +3838,7 @@ static void handlePCReconstruction(CompilationUnit *cUnit, * We should never reach here through fall-through code, so insert * a bomb to signal troubles immediately. */ - if (numElems) { + if ((numElems) || (cUnit->jitMode == kJitLoop)) { newLIR0(cUnit, kThumbUndefined); } @@ -4493,6 +4493,7 @@ void dvmCompilerMIR2LIR(CompilationUnit *cUnit) (LIR *) cUnit->loopAnalysis->branchToBody); dvmCompilerAppendLIR(cUnit, (LIR *) cUnit->loopAnalysis->branchToPCR); + cUnit->loopAnalysis->branchesAdded = true; } if (headLIR) { |
