diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-04-21 18:02:42 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-04-21 18:02:42 +0000 |
commit | 00207237ddfffe93b275914d086a0c7da1bbf63b (patch) | |
tree | 2537086a8c3260ab79ed5ff6094bedd0ce3228cd /include/llvm/CodeGen/Passes.h | |
parent | 9cdb4109d5fbbff3b881d3288a6ec518abc7712e (diff) | |
download | external_llvm-00207237ddfffe93b275914d086a0c7da1bbf63b.zip external_llvm-00207237ddfffe93b275914d086a0c7da1bbf63b.tar.gz external_llvm-00207237ddfffe93b275914d086a0c7da1bbf63b.tar.bz2 |
Add fast register allocator, enabled with -regalloc=fast.
So far this is just a clone of -regalloc=local that has been lobotomized to run
25% faster. It drops the least-recently-used calculations, and is just plain
stupid when it runs out of registers.
The plan is to make this go even faster for -O0 by taking advantage of the short
live intervals in unoptimized code. It should not be necessary to calculate
liveness when most virtual registers are killed 2-3 instructions after they are
born.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102006 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/Passes.h')
-rw-r--r-- | include/llvm/CodeGen/Passes.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h index 3833a7a..2f5d576 100644 --- a/include/llvm/CodeGen/Passes.h +++ b/include/llvm/CodeGen/Passes.h @@ -95,6 +95,11 @@ namespace llvm { /// FunctionPass *createLocalRegisterAllocator(); + /// FastRegisterAllocation Pass - This pass register allocates as fast as + /// possible. It is best suited for debug code where live ranges are short. + /// + FunctionPass *createFastRegisterAllocator(); + /// LinearScanRegisterAllocation Pass - This pass implements the linear scan /// register allocation algorithm, a global register allocator. /// |