[PATCH] X86: If we have an instruction that sets a flag and a zero test on the input of that instruction try to eliminate the test.

Andrea Di Biagio Andrea_DiBiagio at sn.scee.net
Mon May 12 03:10:02 PDT 2014


Hi Benjamin,

your patch looks good to me.
However, I am not the code owner and therefore you might want to have a review from other people as well.

Originally I was a bit concerned because the example you posted in your original message contained an error:

///
tzcntl	%edi, %ebx
testl %edi, %edi
je	.label

can be rewritten into
tzcntl	%edi, %ebx
jae	.label    <--- this should be 'jb' instead!.
///

That is because you want to jump to %label only if CF = 1, and not when CF = 0.

..but then I had a look at the code generated and it does the correct thing.
With your patch, your new function @testCTZ2 in test/CodeGen/X86/peep-test-4.ll correctly generates a 'jb'. So it is fine for me.

http://reviews.llvm.org/D3454






More information about the llvm-commits mailing list