OSDN Git Service

Major registor allocation rework - stage 1.
authorBill Buzbee <buzbee@google.com>
Thu, 24 Sep 2009 00:17:35 +0000 (17:17 -0700)
committerBill Buzbee <buzbee@google.com>
Fri, 30 Oct 2009 21:33:08 +0000 (14:33 -0700)
commit1465db5ee2d3c4c4dcc8e017a294172e858765cb
tree618d010f0001f74ce4ad7f5664c1cf7d0a37aa1c
parent113154c2cf1c09894c4426d30e37f03dd6fe4785
Major registor allocation rework - stage 1.

Direct usage of registers abstracted out.
Live values tracked locally.  Redundant loads and stores suppressed.
Address of registers and register pairs unified w/ single "location" mechanism
Register types inferred using existing dataflow analysis pass.
Interim (i.e. Hack) mechanism for storing register liveness info. Rewrite TBD.
Stubbed-out code for linear scan allocation (for loop and long traces)
Moved optimistic lock check for monitor-enter/exit inline for Thumb2
Minor restructuring, renaming and general cleanup of codegen
Renaming of enums to follow coding convention
Formatting fixes introduced by the enum renaming

Rewrite of RallocUtil.c and addition of linear scan to come in stage 2.
40 files changed:
vm/Dvm.mk
vm/compiler/Compiler.c
vm/compiler/CompilerIR.h
vm/compiler/CompilerUtility.h
vm/compiler/Dataflow.c
vm/compiler/Dataflow.h
vm/compiler/Frontend.c
vm/compiler/Loop.c
vm/compiler/Ralloc.c [new file with mode: 0644]
vm/compiler/codegen/CompilerCodegen.h
vm/compiler/codegen/Optimizer.h
vm/compiler/codegen/arm/ArchUtility.c
vm/compiler/codegen/arm/ArmLIR.h
vm/compiler/codegen/arm/Assemble.c
vm/compiler/codegen/arm/Codegen-armv5te-vfp.c
vm/compiler/codegen/arm/Codegen-armv5te.c
vm/compiler/codegen/arm/Codegen-armv7-a.c
vm/compiler/codegen/arm/Codegen.c
vm/compiler/codegen/arm/Codegen.h
vm/compiler/codegen/arm/GlobalOptimizations.c
vm/compiler/codegen/arm/RallocUtil.c [new file with mode: 0644]
vm/compiler/codegen/arm/Thumb2Util.c
vm/compiler/codegen/arm/ThumbUtil.c
vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c
vm/compiler/codegen/arm/armv5te/ArchVariant.c
vm/compiler/codegen/arm/armv7-a/ArchVariant.c
vm/compiler/template/armv5te-vfp/TEMPLATE_RESTORE_STATE.S [new file with mode: 0644]
vm/compiler/template/armv5te-vfp/TEMPLATE_SAVE_STATE.S [new file with mode: 0644]
vm/compiler/template/armv5te-vfp/TemplateOpList.h
vm/compiler/template/armv5te/TEMPLATE_CMPL_DOUBLE.S
vm/compiler/template/armv5te/TEMPLATE_CMPL_FLOAT.S
vm/compiler/template/armv5te/TEMPLATE_RESTORE_STATE.S [new file with mode: 0644]
vm/compiler/template/armv5te/TEMPLATE_SAVE_STATE.S [new file with mode: 0644]
vm/compiler/template/armv5te/TemplateOpList.h
vm/compiler/template/armv7-a/TemplateOpList.h
vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S
vm/compiler/template/out/CompilerTemplateAsm-armv5te.S
vm/compiler/template/out/CompilerTemplateAsm-armv7-a.S
vm/interp/InterpDefs.h
vm/interp/Jit.c