Hmm, I tried finding documentation on -menable-tail-call or an
implementation of it but couldn't, so then I tried using it to see if it
did anything. I built the in-tree sqlite benchmark at -O2 with no extra
flags, with -mtail-call, and with -menable-tail-call. The version built
with -mtail-call contained 53 instances of `return_call` or
`return_call_indirect` instructions, but the version with no flags and the
version with -menable-tail-call were identical. I also confirmed that
Emscripten does not warn or error out on unknown flags passed at link time,
so I can only conclude that -menable-tail-call is not a real flag. The
performance difference you saw must have been noise.

On Wed, Nov 24, 2021 at 12:00 AM Soeren Balko <[email protected]> wrote:

> Thanks Thomas - haven't run into any issues. There wasn't any measurable
> performance uplift when using -mtail-call though, which is probably
> because my workload (FFmpeg) may not use it much.
>
> That being said, I previously played around with the -menable-tail-call
> linker flag. And unlike -mtail-call, it does two things: firstly, it does
> produce a small (~1%), but consistent performance uplift. At the same time,
> it doesn't seem to make use of the new WebAssembly opcodes (didn't require
> me to enable those in V8). Not sure what -menable-tail-call actually
> does, but it seems different from -mtail-call. Also, it cannot be used as
> a compiler flag, ie. only the linker will accept it.
>
> Any ideas?
>
> Soeren
>
> On Wednesday, November 24, 2021 at 10:57:46 AM UTC+10 [email protected]
> wrote:
>
>> Hi Soeren,
>>
>> The compiler flag -mtail-call is what you want. This support has been in
>> upstream LLVM for a while, but it hasn't been used very much, so if you run
>> into bugs with it, please let us know!
>>
>> Best,
>>
>> Thomas
>>
>> On Tue, Nov 23, 2021 at 6:14 PM Soeren Balko <[email protected]>
>> wrote:
>>
>>> I was wondering about the state of WebAssembly tail call support in
>>> Emscripten. It's available as an experimental V8 feature in Chrome and will
>>> hopefully be mainstreamed in the not-too distant future.
>>>
>>> Couldn't find much information on how to build with tail call support in
>>> Emscripten, but I suspect that adding the -menable-tail-call linker
>>> flag does the trick? Or is there more to it?
>>>
>>> @Alon - can you please confirm?
>>>
>>> Thank you!
>>> Soeren
>>>
>>> --
>>> 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].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/emscripten-discuss/bdcc8072-b7a0-454c-bd05-68b0ae780c77n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/bdcc8072-b7a0-454c-bd05-68b0ae780c77n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/f697836d-10ef-41a0-85bb-565698302427n%40googlegroups.com
> <https://groups.google.com/d/msgid/emscripten-discuss/f697836d-10ef-41a0-85bb-565698302427n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAJZD_EUTsDzuySLy3U_tcYitL9f-%3D5AsKCbn243Y8w0SgANzbg%40mail.gmail.com.

Reply via email to