From 1465db5ee2d3c4c4dcc8e017a294172e858765cb Mon Sep 17 00:00:00 2001 From: Bill Buzbee Date: Wed, 23 Sep 2009 17:17:35 -0700 Subject: 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. --- vm/compiler/codegen/CompilerCodegen.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'vm/compiler/codegen/CompilerCodegen.h') diff --git a/vm/compiler/codegen/CompilerCodegen.h b/vm/compiler/codegen/CompilerCodegen.h index 28e13a5b1..8f138a699 100644 --- a/vm/compiler/codegen/CompilerCodegen.h +++ b/vm/compiler/codegen/CompilerCodegen.h @@ -36,6 +36,12 @@ void* dvmJitChain(void *tgtAddr, u4* branchAddr); u4* dvmJitUnchain(void *codeAddr); void dvmJitUnchainAll(void); +/* Implemented in codegen//Ralloc.c */ +void dvmCompilerRegAlloc(CompilationUnit *cUnit); + +/* Implemented in codegen//ThumbUtil.c */ +void dvmCompilerInitializeRegAlloc(CompilationUnit *cUnit); + /* Implemented in codegen///ArchVariant.c */ JitInstructionSetType dvmCompilerInstructionSet(CompilationUnit *cUnit); -- cgit v1.2.3