u/pyler2
pyler2
pyler2
Win tm
pyler2
Waiting for IDE support for this. Amazing!
pyler2
P1144?
pyler2
Try clang trunk :) it fully unrolled your C++ code :D
pyler2
This is quite interesting. So we can generate gimple (like gcc IR?) and load it to gcc, to optimize it and generate binary? like LLVM IR we can optimize using opt, compile to asm with llc, etc..
Any examples/tutorials?
pyler2
And try Clang even with -stdlib=libc++. Quite amazing numbers.
pyler2
This will probably miss GCC 9.. no activity on the gcc / libstdc++ mailing list..
pyler2
maybe you can also do same comparision for Chromium?
pyler2
but the question is who should write a Rust GCC frontend? :D Mozilla? Too much effort..
pyler2
Have Mozilla investigated a Facebook's BOLT tool to optimalize PGO binary builds even more?
pyler2
post this request to his github repo
pyler2
wow, libc++'s regex is very bad.
pyler2
Clang vectorized his code, GCC did not.
pyler2
Experimental internet =D
#include <experimental/internet>
pyler2
Any libc++ folks here? Is there any ongoing work on Network TS for libc++?
pyler2
If a passed in variable in a function call is unmodified, a warning to use a
const &
would be nice.
-> Also, almost done in LLVM. :)
pyler2
Using magic numbers.
Development is in progress, it was almost done when I saw it on LLVM Phabricator.
pyler2
Step Back is really cool feature... what about bring it to LLDB? /u/Teemperor
pyler2
5x? wow.. this guy is a magician
pyler2
Mailing list vs. Phabricator
pyler2
LLVM has stricker rules to get patches in, I think.. Many devs will give you valuable feedback and with every feature/bugfix you need to provide set of new tests..
Sometimes you send a new feature (maybe just 20 lines of code) and a test file for it has 600 lines :D
pyler2
struct A {
struct A *next;
int field;
};
int f(struct A *item) {
while (!item) {
// Not NULL check since invalid addr OK
__builtin_prefetch(item->next, 1, 1) ;
item->field++;
// more processing...
item++;
}
return 0;
}
GCC:
01 - prefetcht2
02 and higher - ud2 trap.
pyler2
(gdb) py == (lldb) script
matrix_vector_product.cpp:408:30: warning: iteration 7158278 invokes undefined behavior [-Waggressive-loop-optimizations]
408 | yy[i] += zz[i*cols+j] * temp;