OSDN Git Service

Jit: Sapphire tuning - mostly scheduling.
authorBill Buzbee <buzbee@google.com>
Wed, 3 Mar 2010 00:14:41 +0000 (16:14 -0800)
committerBill Buzbee <buzbee@google.com>
Wed, 3 Mar 2010 23:13:17 +0000 (15:13 -0800)
commit1f74863d3e0f19930818398f375ebf1cf2d78969
tree4e646a4e73cae7d5e98c621d1cc1aa330a466cf9
parent10ebc7d0b84dcb98e1a7eeac96ef06acdfc8d184
Jit: Sapphire tuning - mostly scheduling.

Re-enabled load/store motion that had inadvertently been turned off for
non-armv7 targets.  Tagged memory references with the kind of memory
they touch (Dalvik frame, literal pool, heap) to enable more aggressive
load hoisting.  Eliminated some largely duplicate code in the target
specific files.  Reworked temp register allocation code to allocate next
temp round-robin (to improve scheduling opportunities).

Overall, nice gain for Sapphire.  Shows 5% to 15% on some benchmarks, and
measurable improvements for Passion.
15 files changed:
vm/compiler/Compiler.c
vm/compiler/codegen/CompilerCodegen.h
vm/compiler/codegen/arm/ArmLIR.h
vm/compiler/codegen/arm/Assemble.c
vm/compiler/codegen/arm/CodegenCommon.c
vm/compiler/codegen/arm/CodegenDriver.c
vm/compiler/codegen/arm/LocalOptimizations.c
vm/compiler/codegen/arm/RallocUtil.c
vm/compiler/codegen/arm/Thumb/Factory.c
vm/compiler/codegen/arm/Thumb/Gen.c
vm/compiler/codegen/arm/Thumb2/Factory.c
vm/compiler/codegen/arm/Thumb2/Gen.c
vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c
vm/compiler/codegen/arm/armv5te/ArchVariant.c
vm/compiler/codegen/arm/armv7-a/ArchVariant.c