On Tuesday, 18 August 2015 at 20:28:48 UTC, Walter Bright wrote:
On 8/18/2015 12:38 PM, deadalnix wrote:
And honestly, there is no way DMD can catch up.

I find your lack of faith disturbing.

https://www.youtube.com/watch?v=Zzs-OvfG8tE&feature=player_detailpage#t=91

Let's say I have some patches in LLVM and a pretty good understanding of how it works. There are some big optimizations that DMD could benefit from, but a lot of it is getting heuristics just right and recognize a sludge of patterns.

For instance this: http://llvm.org/docs/doxygen/html/DAGCombiner_8cpp_source.html is what you get to recognize patterns created by legalization. For more general patterns: https://github.com/llvm-mirror/llvm/tree/master/lib/Transforms/InstCombine

And that is just the general case pass. You then have a sludge of passes that do canonicalization (GVN for instance) in order to reduce the amount of pattern other passes have to match, and others looking for specialized things (SROA, LoadCombine, ...) and finally a ton of them looking for higher level things to change (SimplifyCFG, Inliner, ...).

All of them require a cheer amount of pure brute force, by recognizing more and more patterns, while other required fine tuned heuristics.

Realistically, D does not have the man power required to reach the same level of optimization, and have many higher impact task to spend that manpower on.

Reply via email to