diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-01-08 23:10:59 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-01-08 23:10:59 +0000 |
| commit | d3438eb27dab28501d41b473482a285da2d2cd33 (patch) | |
| tree | 0578e5daa3da3ef0daaf01e5c0c1e7565030eb94 | |
| parent | 28d76692b63217d4a44f8e1e47e887a02129a62a (diff) | |
| download | bcm5719-llvm-d3438eb27dab28501d41b473482a285da2d2cd33.tar.gz bcm5719-llvm-d3438eb27dab28501d41b473482a285da2d2cd33.zip | |
Don't document exactly how virtual registers are represented as integers. Code
shouldn't depend directly on that.
Give an example of how to iterate over all virtual registers in a function
without depending on the representation.
llvm-svn: 123099
| -rw-r--r-- | llvm/docs/CodeGenerator.html | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/llvm/docs/CodeGenerator.html b/llvm/docs/CodeGenerator.html index 0bd78aea1f4..a84534644cf 100644 --- a/llvm/docs/CodeGenerator.html +++ b/llvm/docs/CodeGenerator.html @@ -1559,18 +1559,25 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, </p> <p>Virtual registers are also denoted by integer numbers. Contrary to physical - registers, different virtual registers never share the same number. The - smallest virtual register is normally assigned the number 1024. This may - change, so, in order to know which is the first virtual register, you should - access <tt>TargetRegisterInfo::FirstVirtualRegister</tt>. Any register whose - number is greater than or equal - to <tt>TargetRegisterInfo::FirstVirtualRegister</tt> is considered a virtual - register. Whereas physical registers are statically defined in - a <tt>TargetRegisterInfo.td</tt> file and cannot be created by the - application developer, that is not the case with virtual registers. In order - to create new virtual registers, use the + registers, different virtual registers never share the same number. Whereas + physical registers are statically defined in a <tt>TargetRegisterInfo.td</tt> + file and cannot be created by the application developer, that is not the case + with virtual registers. In order to create new virtual registers, use the method <tt>MachineRegisterInfo::createVirtualRegister()</tt>. This method - will return a virtual register with the highest code.</p> + will return a new virtual register. Use an <tt>IndexedMap<Foo, + VirtReg2IndexFunctor></tt> to hold information per virtual register. If you + need to enumerate all virtual registers, use the function + <tt>TargetRegisterInfo::index2VirtReg()</tt> to find the virtual register + numbers:</p> + +<div class="doc_code"> +<pre> + for (unsigned i = 0, e = MRI->getNumVirtRegs(); i != e; ++i) { + unsigned VirtReg = TargetRegisterInfo::index2VirtReg(i); + stuff(VirtReg); + } +</pre> +</div> <p>Before register allocation, the operands of an instruction are mostly virtual registers, although physical registers may also be used. In order to check if |

