On Tuesday, 10 September 2013 at 13:20:18 UTC, Iain Buclaw wrote:
On 10 September 2013 11:10, deadalnix <deadal...@gmail.com>
wrote:
On Monday, 9 September 2013 at 16:43:54 UTC, Andrei
Alexandrescu wrote:
http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
Andrei
So I'll jump in as I've seen the conf before that post.
It is really worthwhile to watch. Quite informative on the
technical side
(funilly, I did implement the solution presented in the
devirtualization
part on a platform where virtual function were not available
because of
crappy compiler, but had no idea it was worthwhile for speed,
it wasn't the
goal so I never measured, and it also may not the case on the
given
plateform).
Interestingly enough, gcc recently added (about a month before
Andrei
did the talk) a new interprocedural analysis pass that sets all
methods that can be devirtualised. I expect that LLVM have
something
cooking up for this too. As of yet, I haven't ran any tests
which
show that this works though...
The main problem with devirtualization is that you can only have
full benefits when targeting VM based environments.
With native generated code, it is only possible to apply
devirtualization on static linked code.
--
Paulo