I'll dig and see if I can come up with a test case. It's a bit weird since 
jla and kla demangle to the same thing, but have different mangled names:

_ZNK3trt4core10ValueArrayIyE10GetIndicesEv
_ZThn4_NK3trt4core10ValueArrayIyE10GetIndicesEv
_ZThn12_NK3trt4core10ValueArrayIyE10GetIndicesEv
_ZNK3trt4core17PackagedArrayViewIiE9GetVectorEv

As for the second question, that's a bit unfortunate since we do have a 
pretty big long tail of functions that are relatively small and simply pass 
through most or all of their arguments. As far as I can tell, that would be 
correct execution wise though.

On Thursday, August 18, 2016 at 11:36:14 AM UTC-7, Alon Zakai wrote:
>
> Yes to both questions.
>
> This is probably a case of something in LLVM where the LLVM optimizer 
> can't access it, and so it relies on optimizations at later stages, where 
> the asm.js backend does its own thing. So this is something we should be 
> optimizing in the asm.js optimizer, but somehow aren't.
>
> If you don't intend to take a look at this yourself, I'd like to, a small 
> testcase showing the issue would be great.
>
> On Thu, Aug 18, 2016 at 11:31 AM, Charles Vaughn <[email protected] 
> <javascript:>> wrote:
>
>> Interesting code generated I found while investigating some size 
>> optimizations:
>>
>> function ila(a,b){a=a|0;b=b|0;mha(a,b+88|0);return}
>> function jla(a,b){a=a|0;b=b|0;mha(a,b+-4+88|0);return}
>> function kla(a,b){a=a|0;b=b|0;mha(a,b+-12+88|0);return}
>>
>> From the context, these are different levels of vtable indirection (the 
>> last 2 are non virtual thunks). Is this:
>>
>> function ila(a,b){a=a|0;b=b|0;mha(a,b+88|0);return}
>> function jla(a,b){a=a|0;b=b|0;mha(a,b+84|0);return}
>> function kla(a,b){a=a|0;b=b|0;mha(a,b+76|0);return}
>>
>> equivalent? 
>>
>> I also take that the a=a|0;b=b|0 is mandatory to validate as asm.js, and 
>>
>> function ila(a,b){mha(a|0,b|0+88|0);return}
>> function jla(a,b){mha(a|0,b|0+84|0);return}
>> function kla(a,b){mha(a|0,b|0+76|0);return}
>>
>> would not validate?
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to