Reference value of structs not optimized or inlined?

Don nospam at nospam.com
Sun Aug 30 08:29:49 PDT 2009


Bill Baxter wrote:
> On Fri, Aug 28, 2009 at 3:21 PM, Brad Roberts<braddr at puremagic.com> wrote:
>> On Fri, 28 Aug 2009, Bill Baxter wrote:
>>
>>> On Fri, Aug 28, 2009 at 1:20 PM, Walter
>>> Bright<newshound1 at digitalmars.com> wrote:
>>>> Jarrett Billingsley wrote:
>>>>> You're addressing the 'const' issue, but you haven't addressed the
>>>>> OP's issue: that 'ref', for whatever reason, prevents inlining. Const
>>>>> aside, why is this so?
>>>> Because I never updated the inlining code to handle it.
>>> Wow.  That's it?  So let's get it done already!  This is really a
>>> shame to have this hanging around in a language whose biggest selling
>>> point over the competition is speed.   It's been shown many times that
>>> DMD's failure to inline ref args has significant impact (~10%) on the
>>> performance of numerical code.  If you can easily give these kinds of
>>> code a 10% boost without too much effort then that's a big win in my
>>> opinion.
>>>
>>> --bb
>> Ok.. so we should expect a patch from you sometime soon?  You did include
>> yourself in the 'us' inside "let's", right?
> 
> I'm actually surprised Don hasn't jumped on this one, given that it's
> primarily numerical code that it seems to be affecting. 

I imagined it would require deep understanding of the compiler back-end, 
which I don't currently have. Based on Walter's comment, perhaps it's 
not so difficult. I do have an FP performance patch in the next DMD.
But I've been focussing more on ICE bugs and CTFE, which have been 
annoying me more.

>  If I were
> still at my old job using D heavily,  I would probably take a whack at
> fixing this one, just because it has been such an annoyance to me.   I
> put up with it figuring it would be fixed someday, and I assumed there
> must be something tricky about it or else it would have been done
> already.  But given Walter's answer just now, it sounds like a quick
> fix for him or someone else familiar with the compilers internals.
> 
> --bb



More information about the Digitalmars-d mailing list