summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Unix/Unix.h
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-12-21 21:41:44 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-12-21 21:41:44 +0000
commitf6ddc4a1deddc05e1310c338e46adf4f66eccf6b (patch)
tree9779371fe5b1fa914a647ff12ff5a8bae348b8dc /llvm/lib/Support/Unix/Unix.h
parent7f6ae6958cbc208edff23a160a0a424fe386c070 (diff)
downloadbcm5719-llvm-f6ddc4a1deddc05e1310c338e46adf4f66eccf6b.tar.gz
bcm5719-llvm-f6ddc4a1deddc05e1310c338e46adf4f66eccf6b.zip
Add some x86 specific dagcombines for conditional increments.
(add Y, (sete X, 0)) -> cmp X, 1; adc 0, Y (add Y, (setne X, 0)) -> cmp X, 1; sbb -1, Y (sub (sete X, 0), Y) -> cmp X, 1; sbb 0, Y (sub (setne X, 0), Y) -> cmp X, 1; adc -1, Y for unsigned foo(unsigned a, unsigned b) { if (a == 0) b++; return b; } we now get: foo: cmpl $1, %edi movl %esi, %eax adcl $0, %eax ret instead of: foo: testl %edi, %edi sete %al movzbl %al, %eax addl %esi, %eax ret llvm-svn: 122364
Diffstat (limited to 'llvm/lib/Support/Unix/Unix.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud