On Thu, Apr 21, 2016 at 3:51 PM, Jared Crean <[email protected]> wrote:
> Thanks for the responses.  Just out of curiosity, where precisely does the
> splat happen?

The issue is calling a non-inlined vararg function has a cost...
i.e. if you have `f(args...) = ...` and call `f` with `f(a, b)`, `a`
and `b` will be boxed if `f` is not inlined....
In your case, the multi-args `+` is defined as a vararg function.

>
>     Jared Crean
>
>
> On 04/21/2016 03:46 PM, Yichao Yu wrote:
>>
>> On Thu, Apr 21, 2016 at 3:41 PM, Steven G. Johnson
>> <[email protected]> wrote:
>>>
>>> Even if it fails to inline, it still shouldn't allocate memory.  Probably
>>> file an issue.
>>
>> The allocation is caused by splatting. I believe we have an issue for
>> this.
>>
>>> On Thursday, April 21, 2016 at 2:09:42 PM UTC-4, Kristoffer Carlsson
>>> wrote:
>>>>
>>>> Long expressions can fail to inline. Throw in some parenthesis grouping
>>>> the expression into smaller parts will work around it.
>
>

Reply via email to