summaryrefslogtreecommitdiffstats
path: root/llvm/docs/tutorial
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-11-03 07:20:12 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-11-03 07:20:12 +0000
commit66298e226fcf98607c2a2a43fd69a39ae87ebee3 (patch)
tree764a95b65c124f20ab446a73b041537d21122dcd /llvm/docs/tutorial
parent376cdaf50b45bbc0f4dae83af456f94bf81701be (diff)
downloadbcm5719-llvm-66298e226fcf98607c2a2a43fd69a39ae87ebee3.tar.gz
bcm5719-llvm-66298e226fcf98607c2a2a43fd69a39ae87ebee3.zip
There are times when the coalescer would not coalesce away a copy but the copy
can be eliminated by the allocator is the destination and source targets the same register. The most common case is when the source and destination registers are in different class. For example, on x86 mov32to32_ targets GR32_ which contains a subset of the registers in GR32. The allocator can do 2 things: 1. Set the preferred allocation for the destination of a copy to that of its source. 2. After allocation is done, change the allocation of a copy destination (if legal) so the copy can be eliminated. This eliminates 443 extra moves from 403.gcc. llvm-svn: 43662
Diffstat (limited to 'llvm/docs/tutorial')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud