summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/SparsePropagation.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-18 21:25:22 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-18 21:25:22 +0000
commitdded061f8524ed65304d04b315aa3b52f5947aff (patch)
tree55dc056641a744d240e0614289b3637f45e21267 /llvm/lib/Analysis/SparsePropagation.cpp
parentaab43dbfbbac19cc51c22f2a09aba5d33919a7bb (diff)
downloadbcm5719-llvm-dded061f8524ed65304d04b315aa3b52f5947aff.tar.gz
bcm5719-llvm-dded061f8524ed65304d04b315aa3b52f5947aff.zip
Also combine zext/sext into selects for ARM.
This turns common i1 patterns into predicated instructions: (add (zext cc), x) -> (select cc (add x, 1), x) (add (sext cc), x) -> (select cc (add x, -1), x) For a function like: unsigned f(unsigned s, int x) { return s + (x>0); } We now produce: cmp r1, #0 it gt addgt.w r0, r0, #1 Instead of: movs r2, #0 cmp r1, #0 it gt movgt r2, #1 add r0, r2 llvm-svn: 162177
Diffstat (limited to 'llvm/lib/Analysis/SparsePropagation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud