diff options
| author | Andrew Trick <atrick@apple.com> | 2011-07-26 18:31:49 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2011-07-26 18:31:49 +0000 |
| commit | e69a19569b3a785d0566d4833d8783e7f9025761 (patch) | |
| tree | 6b88566afddc9455bf00741df63db3b91bff6234 /llvm/docs | |
| parent | 3fe5d685638434a223774d2d0c38d93d2661c53f (diff) | |
| download | bcm5719-llvm-e69a19569b3a785d0566d4833d8783e7f9025761.tar.gz bcm5719-llvm-e69a19569b3a785d0566d4833d8783e7f9025761.zip | |
Updating stale documentation on regalloc modes.
llvm-svn: 136112
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/CodeGenerator.html | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/llvm/docs/CodeGenerator.html b/llvm/docs/CodeGenerator.html index 53c2b54d36a..8d3b7d9b4b3 100644 --- a/llvm/docs/CodeGenerator.html +++ b/llvm/docs/CodeGenerator.html @@ -1768,22 +1768,28 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, different register allocators:</p> <ul> - <li><i>Linear Scan</i> — <i>The default allocator</i>. This is the - well-know linear scan register allocator. Whereas the - <i>Simple</i> and <i>Local</i> algorithms use a direct mapping - implementation technique, the <i>Linear Scan</i> implementation - uses a spiller in order to place load and stores.</li> - <li><i>Fast</i> — This register allocator is the default for debug builds. It allocates registers on a basic block level, attempting to keep values in registers and reusing registers as appropriate.</li> + <li><i>Basic</i> — This is an incremental approach to register + allocation. Live ranges are assigned to registers one at a time in + an order that is driven by heuristics. Since code can be rewritten + on-the-fly during allocation, this framework allows interesting + allocators to be developed as extensions. It is not itself a + production register allocator but is a potentially useful + stand-alone mode for triaging bugs and as a performance baseline. + + <li><i>Greedy</i> — <i>The default allocator</i>. This is a + highly tuned implementation of the <i>Basic</i> allocator that + incorporates global live range splitting. This allocator works hard + to minimize the cost of spill code. + <li><i>PBQP</i> — A Partitioned Boolean Quadratic Programming (PBQP) based register allocator. This allocator works by constructing a PBQP problem representing the register allocation problem under consideration, solving this using a PBQP solver, and mapping the solution back to a register assignment.</li> - </ul> <p>The type of register allocator used in <tt>llc</tt> can be chosen with the |

