<html>
<head>
<base href="http://bugzilla.gdcproject.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Add pragma(inline) to the grammar"
href="http://bugzilla.gdcproject.org/show_bug.cgi?id=205#c6">Comment # 6</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Add pragma(inline) to the grammar"
href="http://bugzilla.gdcproject.org/show_bug.cgi?id=205">bug 205</a>
from <span class="vcard"><a class="email" href="mailto:thomas.bockman@gmail.com" title="thomas.bockman@gmail.com">thomas.bockman@gmail.com</a>
</span></b>
<pre><span class="quote">> That says there's something more wrong going on about you than the compiler.</span >
Let me fix that for you:
<span class="quote">> That says there's something more wrong going on about DMD than GDC.</span >
For checkedint I achieved approximately a 10x speedup on DMD by thorough
application of pragma(inline, ...) throughout the code base.
(5x comes from pragma(inline, true) helping me figure out how to tweak each
trivial function until DMD finally admits that it's inlinable. This is
basically impossible to reliably do blind, because of nonsense like this:
<a href="https://issues.dlang.org/show_bug.cgi?id=15483">https://issues.dlang.org/show_bug.cgi?id=15483</a>
2x comes from marking two specific, tiny error handling functions that throw as
pragma(inline, false); otherwise they inline, but then the caller (everything
else, basically) usually doesn't.)
This is completely unnecessary on GDC, whose inliner is nowhere near as easily
confused. But, as I said in my original request, I want this so that I don't
have to maintain a separate version of the code just for GDC.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are watching all bug changes.</li>
</ul>
</body>
</html>