summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineCodeEmitter.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-02-05 06:43:12 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-02-05 06:43:12 +0000
commit368f20e53df6d703b2cd2d566fc80f9e38cd411b (patch)
treede05634cf093ce8f6bb803b12fe1645015bb3295 /llvm/lib/CodeGen/MachineCodeEmitter.cpp
parenta07b2d5b3a5b1a00c9d4c8ea9832d6da16e10325 (diff)
downloadbcm5719-llvm-368f20e53df6d703b2cd2d566fc80f9e38cd411b.tar.gz
bcm5719-llvm-368f20e53df6d703b2cd2d566fc80f9e38cd411b.zip
Allow more loads to be folded which were previously prevented from happening
due to ordering issue. i.e. they were selected for chain use first. Now at load select time, check if it is being selected for a chain use and if it has only a single real use. If so, return a HANDLENODE (with the load as its operand) in its place and record it. When it is folded or the load is selected for a real use, the isel records it as the replacement for the HANDLENODE. The replacement is done when all nodes are selected. This scheme exposed a couple of problems where cycles can happen. (See comments in EmitMatchCode() for descriptions of the problems and their workaround / solutions.) These problems have been resolved with a small compile time penality. llvm-svn: 25995
Diffstat (limited to 'llvm/lib/CodeGen/MachineCodeEmitter.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud