[llvm-dev] Clang Optimizer freaks out on "simple" goto code?
Stephen Checkoway via llvm-dev
llvm-dev at lists.llvm.org
Mon Dec 5 09:06:03 PST 2016
> On Dec 5, 2016, at 06:08, Philip Pfaffe via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> While Clang's code is significantly larger, that is probably on purpose: Clang has vectorized the goto-loop.
Even with -mno-sse (and I suspect there's a better way to inhibit vectorization, but this worked), it looks like Clang is doing something a little strange. Where gcc uses
.L7:
add eax, edi
sub edi, 1;
jne .L7,
Clang has
.LBB0_2:
add eax, edi
cmp edi, 1
lea ecx, [rdi - 1]
mov edi, ecx
jg .LBB0_2
It also has a redundant xor eax, eax before the loop for some reason. That said...
> To validate whether that was correct and a good idea, plug both results into a benchmark and look at the actual performance data.
I didn't actually do this.
--
Stephen Checkoway
More information about the llvm-dev
mailing list