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