diff options
| author | Ben Cheng <bccheng@android.com> | 2010-08-04 13:23:09 -0700 |
|---|---|---|
| committer | Ben Cheng <bccheng@android.com> | 2010-08-04 14:53:53 -0700 |
| commit | 4a41958266fb432629dea30832f4b3194667ba99 (patch) | |
| tree | 168a7bb727cada767d1eeb2bec87436e6d7cb5be /vm/compiler/codegen/arm/CodegenDriver.c | |
| parent | 19ddba58d8bd7bc39622f5014840d6702520337a (diff) | |
Bug fixes for JIT loop detection and formation
Specifically:
- Don't apply loop optimization if the basic induction variable is
manipulated (ie excluding cases like "i+=0")
- Fix a case where variables reloaded with constants in the body are
not considered as loop invariants
Bug: 2804188
Change-Id: Ia5ebb29bc6814b1be069e23794585f8313900b7d
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenDriver.c')
| -rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c index a1e54496e..dcabd8e52 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.c +++ b/vm/compiler/codegen/arm/CodegenDriver.c @@ -4339,14 +4339,14 @@ bool dvmCompilerDoWork(CompilerWorkOrder *work) case kWorkOrderTrace: /* Start compilation with maximally allowed trace length */ res = dvmCompileTrace(work->info, JIT_MAX_TRACE_LEN, &work->result, - work->bailPtr); + work->bailPtr, 0 /* no hints */); break; case kWorkOrderTraceDebug: { bool oldPrintMe = gDvmJit.printMe; gDvmJit.printMe = true; /* Start compilation with maximally allowed trace length */ res = dvmCompileTrace(work->info, JIT_MAX_TRACE_LEN, &work->result, - work->bailPtr); + work->bailPtr, 0 /* no hints */); gDvmJit.printMe = oldPrintMe; break; } |
