Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
gratilup
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
4 ms
·
1.
▲
by
gratilup
7y ago
Don't even need Incredibuild, even MSBuild or just plain /MP option in VC++ can take advantage of it. A build from VS of the Unreal Engine 4 client takes around 2 min, for example.
2.
▲
by
gratilup
7y ago
They are full 256 bit wide now, that's how it can claim a 2x float perf. improvement. It also doesn't have an "AVX" offset.
3.
▲
by
gratilup
7y ago
Now imagine a Threadripper with the Zen2 cores, higher IPC and frequency would be certainly welcome. Have the 32 core 2990WX and it's an incredible CPU for compiling large C++ programs, running big test suites and never having to worry
4.
▲
by
gratilup
10y ago
As a compiler engineer, those are some of the least impressive things done by modern compilers. Why? Because there isn't anything smart behind them, it's pure pattern matching.
5.
▲
by
gratilup
10y ago
You basically just said that the Windows kernel code is beautiful, because they are using exactly the same coding style...
6.
▲
by
gratilup
10y ago
I'm the main developer of the new optimizer. It's a bit too much to say it replaces the old one, it's more of an addition. I was aware of this issue with initializing local arrays, it was on the TODO list - hopefully for the
7.
▲
by
gratilup
10y ago
The EH info looks the same when in SSA form - when building SSA the right PHIs are inserted for the values potentially defined in EH blocks.
8.
▲
by
gratilup
10y ago
Visual C++ does not use the GCC naming for flags. The flag will likely be renamed to something shorter in the final release in Update 3.
9.
▲
by
gratilup
10y ago
That's why that patterns is not applied in the new optimizer, unless the Bit Estimator proves x+1 does not overflow. After it was implemented to behave like what other compilers do, I analyzed several applications and libraries and it
10.
▲
by
gratilup
10y ago
What I meant to say is that if you have an overflow in those cases, the results of the expression is definitely not what you wanted - this is going to propagate and "damage" other expressions. Applying the optimization in that cas
11.
▲
by
gratilup
10y ago
The optimizer will be ported to .NET Native soon, it should help code quality quite a lot. The JIT is a completely different matter though: it's a different project, done by a different team - copy-paste of the source code is definitel
12.
▲
by
gratilup
10y ago
There are only a few places where the undefined behavior is exploited right now. For those cases, if there is overflow in the original expression the program is pretty much screwed anyway; they are also done by LLVM/GCC. The case that
13.
▲
by
gratilup
10y ago
I tried to have a simple example, maybe it was too simple. You are right, an OR with a constant is enough to know it is not zero. For this case the Bit Estimator also knows b = [3, 4083], writing something that takes advantage of this info
14.
▲
by
gratilup
10y ago
Hi, I'm the author of the blog post and optimizer. We had SSA since around 1999-2000, just that some important components like the expression optimizer were written before that and not updated with support for SSA. The difference is a