summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-07-15 03:29:46 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-07-15 03:29:46 +0000
commitdb5536f09db0268672890b86839cb5bf0b67151a (patch)
treecf1308d18e3ac417e88bd47228cb7b79296cf8b8 /clang/lib/Driver/Tools.cpp
parentfaf556b7456b1b8044b24cb9c60198ccae70ba65 (diff)
downloadbcm5719-llvm-db5536f09db0268672890b86839cb5bf0b67151a.tar.gz
bcm5719-llvm-db5536f09db0268672890b86839cb5bf0b67151a.zip
Reapply r160194, switching to use LV information for finding local kills.
The notable fix is to look at any dependencies attached to the kill instruction (or other instructions between MI nad the kill) where the dependencies are specific to the register in question. The old code implicitly handled this by rejecting the transform if *any* other uses were found within the block, but after the start point. The new code directly finds the kill, and has to re-use the existing dependency scan to check for non-kill uses. This was caught by self-host, but I found the bug via inspection and use of absurd assert scaffolding to compute the kills in two ways and compare them. So I have no useful testcase for this other than "bootstrap". I'd work harder to reduce a test case if this particular code were likely to live for a long time. Thanks to Benjamin Kramer for reviewing the fix itself. llvm-svn: 160228
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud