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 | 5acaeb512114ebf5eaf47645f7a3a8e37948fc6c (patch) | |
tree | c93ddd87500346038cc5968d844391bf3eacc8da /docs | |
parent | 726f1b90a9e9149227a9aa37a2219f167776f804 (diff) | |
download | external_llvm-5acaeb512114ebf5eaf47645f7a3a8e37948fc6c.zip external_llvm-5acaeb512114ebf5eaf47645f7a3a8e37948fc6c.tar.gz external_llvm-5acaeb512114ebf5eaf47645f7a3a8e37948fc6c.tar.bz2 |
Updating stale documentation on regalloc modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136112 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/CodeGenerator.html | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/docs/CodeGenerator.html b/docs/CodeGenerator.html index 53c2b54..8d3b7d9 100644 --- a/docs/CodeGenerator.html +++ b/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 |