There's a lot of changes in here. A lot of them are just minor C++ portability fixes actually (including, for instance, mingw building).
The main change I'd say revolves around EvalMobs/ValueJMobs. I've managed to beat a lot of performance out of it (or should I say in it). Sadly, for reasons mostly unknown, clang/llvm still does a really crappy job with that function. As I mentioned earlier, I filed a bug report to clang/llvm.
The preferred compiler for Windows is Intel C++ Compiler. Resulting binary is about 10% faster. It still doesn't run as fast as on linux and I don't quite know why, but still it's a good improvement. Most of it comes from ValueJMobs.
The preferred compiler for Linux is gcc.
If clang gets improved, another 10% performance is probably on the table for a Mac build.
I added a prefetch for the Hash table of positions. It seems to be working. Perf improvement is probably just 1% (hard to determine precisely, could be anywhere from 0.5% to 2% honestly), but the number of misses clearly went down (I measured it via the perf tools and Intel's Vtune as well).
To extras/ I added a disassembly parser that produces "quality of compilation" stats. I've used it for the bug I filed.
I deleted magics.cpp because nothing was using it anymore.
I fixed many warnings from most of the compilers.
Finally, if I didn't implement a suggestion you made earlier, I'd like to apologize right now and ask you to tell me again.
There's a lot of changes in here. A lot of them are just minor C++ portability fixes actually (including, for instance, mingw building).
The main change I'd say revolves around EvalMobs/ValueJMobs. I've managed to beat a lot of performance out of it (or should I say in it). Sadly, for reasons mostly unknown, clang/llvm still does a really crappy job with that function. As I mentioned earlier, I filed a bug report to clang/llvm.
http://llvm.org/bugs/show_bug.cgi?id=20014
Other stuff:
The preferred compiler for Windows is Intel C++ Compiler. Resulting binary is about 10% faster. It still doesn't run as fast as on linux and I don't quite know why, but still it's a good improvement. Most of it comes from ValueJMobs.
The preferred compiler for Linux is gcc.
If clang gets improved, another 10% performance is probably on the table for a Mac build.
I added a prefetch for the Hash table of positions. It seems to be working. Perf improvement is probably just 1% (hard to determine precisely, could be anywhere from 0.5% to 2% honestly), but the number of misses clearly went down (I measured it via the perf tools and Intel's Vtune as well).
To extras/ I added a disassembly parser that produces "quality of compilation" stats. I've used it for the bug I filed.
I deleted magics.cpp because nothing was using it anymore.
I fixed many warnings from most of the compilers.
Finally, if I didn't implement a suggestion you made earlier, I'd like to apologize right now and ask you to tell me again.