In any case, building warp with this brings the timings down to 2.31 seconds, so clang is still 40% faster (1.41 vs 2.31)
In any case, at least on my side, i don't have time to further explore, i'd love to see cases where warp is faster, but i haven't found them.
(There is also a certain irony of saying you don't post numbers because you get accused, then saying i used the wrong flags, but ...)
And, as your numbers show, suggesting the change in compiler flags was entirely justified.
In the lexer, it is used for block comment skipping. It will find the end of block comments 16 characters at a time (on both PPC and x86).
During line number computation, it will also find newlines 16 characters at a time.
This could actually (nowadays) be done 32 characters at a time on newer processors, but isn't.
You do start to hit two issues though as oyu increase the size of the skipping:
1. Alignment 2. If the average block comment/line is < 64 characters, you may lose more time performing the instruction and then counting the trailing zeros in the result to find the place it ended.
I have no numbers to back up whether this matters, of course :)
It adds AVX2 and SSE4.2 instruction support. It makes no discernible difference performance wise that i can find :)
Andrei wrote on Reddit:
"We build warp at Facebook using gdc with -fno-bound-checks -frelease -O4."
http://www.reddit.com/r/programming/comments/21m0bz/warp_a_f...