summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAllocLocal.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-04-18 03:48:41 +0000
committerChris Lattner <sabre@nondot.org>2005-04-18 03:48:41 +0000
commitd929f8bcd31920431dab27322453fd448db33638 (patch)
treee26a6009b95d7c6abbde656ee50a946662d4691b /llvm/lib/CodeGen/RegAllocLocal.cpp
parent602a45f4157d26cafd8dda445d428b3e7851ba18 (diff)
downloadbcm5719-llvm-d929f8bcd31920431dab27322453fd448db33638.tar.gz
bcm5719-llvm-d929f8bcd31920431dab27322453fd448db33638.zip
Make the AND elimination operation recursive and significantly more powerful,
eliminating an and for Nate's testcase: int %bar(int %a, int %b) { entry: %tmp.1 = setne int %a, 0 %tmp.2 = setne int %b, 0 %tmp.3 = or bool %tmp.1, %tmp.2 %retval = cast bool %tmp.3 to int ret int %retval } generating: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r3, r2, r3 blr instead of: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r2, r2, r3 rlwinm r3, r2, 0, 31, 31 blr llvm-svn: 21315
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocLocal.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud