aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/RallocUtil.c
Commit message (Collapse)AuthorAgeFilesLines
* JIT: Source code reorganization to isolate target independent codebuzbee2010-09-241-1010/+0
| | | | | | | Much of the register utility code is target independent. Move it up a level so the x86 JIT can use it. Change-Id: Id9895a42281fd836cb1a2c942e106de94df62a9a
* Staticify.Andy McFadden2010-09-171-1/+1
| | | | | | Mark some functions "static". Change-Id: Ia80bccab1f72690729e43f99783d34fe366108b2
* Jit: Fix for 2793725 SIGSEGV in JIT code cacheBill Buzbee2010-06-231-0/+2
| | | | | | | r8 was missing from the handler clobber set, and is stepped on by the handlers for inline string compareto and indexof. Change-Id: I6e5d6f46b595d638863b27edcc8718157a3e411f
* Remove unused labels, variables, and functions. Enable warnings.Carl Shapiro2010-05-211-22/+0
| | | | Change-Id: Icbe24eaf1ad499f28b68b6a5f05368271a0a7e86
* Jit: Fix for 2542488 JIT codegen bug with overlapping wide operandsBill Buzbee2010-03-251-1/+11
| | | | Change-Id: I7b922e223fe1f5242d1f3db1fa18f54aaed725af
* Jit: Make most Jit compile failures non-fatal; just abort offending translationBill Buzbee2010-03-071-6/+6
| | | | | | | | Issue 2175597 Jit compile failures should abort translation, but not the VM Added new dvmCompileAbort() to replace uses of dvmAbort() when something goes wrong during the compliation of a trace. In that case, we'll abort the translation and set it's head to the interpret-only "translation".
* Jit: Sapphire tuning - mostly scheduling.Bill Buzbee2010-03-031-41/+67
| | | | | | | | | | | | 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.
* Fix a couple of typos in JIT function names.Elliott Hughes2010-02-251-10/+10
| | | | (I saw these the other day, but preferred a separate patch.)
* Jit: Phase 1 of register utility cleanup/rewrite - the great renamingBill Buzbee2010-02-091-128/+131
| | | | | Renaming of all of those register utilities which used to be local because of our include mechanism to the standard dvmCompiler prefix scheme.
* Jit: Fix register usage bug (driveabout failure)Bill Buzbee2010-01-281-0/+1
| | | | | | Some of the execute-inline templates were using r4, which wasn't in the save set for templates. The failing traces expected it to be live across the template call.
* Restructure the codegen to make architectural depedency explicit.Ben Cheng2009-11-221-201/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original Codegen.c is broken into three components: - CodegenCommon.c (arch-independend) - CodegenFactory.c (Thumb1/2 dependent) - CodegenDriver.c (Dalvik dependent) For the Thumb/Thumb2 directories, each contain the followin three files: - Factory.c (low-level routines for instruction selections) - Gen.c (invoke the ISA-specific instruction selection routines) - Ralloc.c (arch-dependent register pools) The FP directory contains FP-specific codegen routines depending on Thumb/Thumb2/VFP/PortableFP: - Thumb2VFP.c - ThumbVFP.c - ThumbPortableFP.c Then the hierarchy is formed by stacking these files in the following top-down order: 1 CodegenCommon.c 2 Thumb[2]/Factory.c 3 CodegenFactory.c 4 Thumb[2]/Gen.c 5 FP stuff 6 Thumb[2]/Ralloc.c 7 CodegenDriver.c
* Major registor allocation rework - stage 1.Bill Buzbee2009-10-301-0/+1005
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.