summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-10 02:03:02 +0000
committerChris Lattner <sabre@nondot.org>2005-01-10 02:03:02 +0000
commit41b764144dbd20450a14cbfae78b207c1ac445cc (patch)
tree0bd57535ca1fca47f75f80e0f44950490fdd4551 /llvm/lib/ExecutionEngine/JIT
parent00c231baa71462eabd1212e4411a76f67e0bd12e (diff)
downloadbcm5719-llvm-41b764144dbd20450a14cbfae78b207c1ac445cc.tar.gz
bcm5719-llvm-41b764144dbd20450a14cbfae78b207c1ac445cc.zip
Implement a couple of more simplifications. This lets us codegen:
int test2(int * P, int* Q, int A, int B) { return P+A == P; } into: test2: movl 4(%esp), %eax movl 12(%esp), %eax shll $2, %eax cmpl $0, %eax sete %al movzbl %al, %eax ret instead of: test2: movl 4(%esp), %eax movl 12(%esp), %ecx leal (%eax,%ecx,4), %ecx cmpl %eax, %ecx sete %al movzbl %al, %eax ret ICC is producing worse code: test2: movl 4(%esp), %eax #8.5 movl 12(%esp), %edx #8.5 lea (%edx,%edx), %ecx #9.9 addl %ecx, %ecx #9.9 addl %eax, %ecx #9.9 cmpl %eax, %ecx #9.16 movl $0, %eax #9.16 sete %al #9.16 ret #9.16 as is GCC (looks like our old code): test2: movl 4(%esp), %edx movl 12(%esp), %eax leal (%edx,%eax,4), %ecx cmpl %edx, %ecx sete %al movzbl %al, %eax ret llvm-svn: 19430
Diffstat (limited to 'llvm/lib/ExecutionEngine/JIT')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud