On Fri, Oct 25, 2019 at 9:54 AM 'Derek Schuff' via emscripten-discuss <
[email protected]> wrote:

> This is a good point, actually. Before, almost all of the
> emscripten-specific flags only mattered at link time, and now there are
> probably several that also matter at compile time. We should probably take
> a pass over the docs and figure that out, or else just declare that
> everything should also go at compile time.
>

The docs have recently been update to say that it is best (search for
"simple and safe") to pass the flags at both times,

https://emscripten.org/docs/compiling/WebAssembly.html#backends

But maybe that's not prominent enough?

I can do a pass through settings.js to mark options as "link" or "compile"
if that would help? Not sure it would.

- Alon


Emscripten is already a little weird that so many things matter at link
> time so I think the default expectation of most users (and build systems)
> would be that you only have to pass things at compile time. It would be
> nice to push the upstream backend more in that direction rather than going
> back.
>
> On Fri, Oct 25, 2019 at 5:31 AM Gabriel Cuvillier <
> [email protected]> wrote:
>
>> Ok, I understand better.
>>
>> What makes things confusing is probably more that the usual distinction
>> between compiler flags and linker flags are a bit blurred in Emscripten.
>>
>> As "WASM_OBJECT_FILES=0" is doing the same as "-flto", but also applying
>> it to system libs, maybe it would be cleaner to have it replaced by a "-s
>> ENABLE_SYSTEM_LIBS_LTO=1" that would only focus on enabling LTO on the
>> system libs (letting the user control the LTO of its own code with the
>> usual -flto flag).
>>
>>
>> Btw, the docs mention that --lvm-lto might have the values 1,2 or 3 => is
>> this still applicable to the new Wasm backend ? I guess no (?)
>>
>> Cheers,
>>
>> Gabriel
>>
>> Le 22/10/2019 à 21:39, Alon Zakai a écrit :
>>
>> The LTO docs are here:
>>
>> https://emscripten.org/docs/optimizing/Optimizing-Code.html#lto
>>
>> Basically
>>
>>  * -flto is a clang flag that says "emit LLVM IR in the bitcode file"
>>  * WASM_OBJECT_FILES=0 is an emscripten flag that says "don't use wasm
>> object files, so use LLVM IR in bitcode files, *and also in system libs*"
>>  * --llvm-lto 1 is an emscripten flag that also runs LLVM's default LTO
>> opts at link time.
>>
>> Perhaps -flto should automatically set --llvm-lto 1? I'm not sure what
>> clang normally does, but we should do the same probably...
>>
>> - Alon
>>
>>
>> On Tue, Oct 22, 2019 at 2:40 AM Gabriel Cuvillier <
>> [email protected]> wrote:
>>
>>> Great!
>>>
>>> A question regarding this in the documentation, which confuses me a bit:
>>>
>>> *You can disable wasm object files with -s WASM_OBJECT_FILES=0, which
>>> will make the wasm backend behave more like fastcomp. *
>>> *Neither fastcomp nor the wasm backend without wasm object files will
>>> run the LLVM optimization passes by default, even if using LLVM IR in
>>> object files; *
>>> *for that you must pass --llvm-lto 1.*
>>>
>>> With the 3 options "-s WASM_OBJECT_FILES=0", "--llvm-lto 1", and
>>> "-flto", there is a lot of combinations possible and the outcome is not
>>> quite clear.
>>>
>>> So, on the Wasm backed, what's the difference between doing (or what is
>>> meaningful/meaningless):
>>>     -flto
>>>   --llvm-lto 1
>>>   -s WASM_OBJECT_FILES=0
>>>   -flto --llvm-lto 1
>>>   -flto -s WASM_OBJECT_FILES=0
>>>   -flto -s WASM_OBJECT_FILES=0 --llvm-lto 1
>>>   -s WASM_OBJECT_FILES=0 --llvm-lto 1
>>>
>>> + Which option shall be passed at compilation time / at link time ?
>>>
>>> Thanks!
>>> Le 22/10/2019 à 00:17, Alon Zakai a écrit :
>>>
>>> Hello everyone,
>>>
>>> The emsdk will now install the upstream LLVM backend by default, instead
>>> of fastcomp, as of
>>>
>>> https://github.com/emscripten-core/emsdk/pull/373
>>>
>>> That is, if you install/activate "latest" then you get the same as
>>> "latest-upstream". It used to be an alias for "latest-fastcomp".
>>>
>>> You can still use "latest-fastcomp" to get fastcomp if you need that.
>>> You can also install stuff like "1.39.0-fastcomp", a version with a
>>> specific backend.
>>>
>>> The emsdk defaults to the upstream backend from 1.39.0, but not earlier
>>> versions, as the upstream backend wasn't stable enough yet at those times.
>>> (But you can as always do "1.38.39-upstream" to get upstream for those
>>> versions.) In other words, the only thing that changed now is that for
>>> 1.39.0 and onwards, if you don't specify the backend, you'll get upstream.
>>>
>>> We are changing the default now after a long period of recommending
>>> people upgrade to the LLVM backend and fixing issues based on their
>>> feedback, as a result of which at this point we feel comfortable changing
>>> the default.
>>>
>>> Please test and file bugs if you find any! All you need to do is update
>>> to the latest emsdk master from github, and
>>>
>>> ./emsdk install latest
>>> ./emsdk activate latest
>>>
>>> If this is your first time using the upstream backend, see the list of
>>> differences,
>>>
>>> https://emscripten.org/docs/compiling/WebAssembly.html#backends
>>>
>>> Our goal is to remove fastcomp eventually, and it is now officially
>>> deprecated, but we will only start to plan that after seeing the feedback
>>> from users after this switch.
>>>
>>> - Alon
>>>
>>> --
>>> 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/CAEX4NpTHC%3DRz2UZrqLBBaPQ0ROT4JXGA7RnH5iDEsLeUdvRmMA%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpTHC%3DRz2UZrqLBBaPQ0ROT4JXGA7RnH5iDEsLeUdvRmMA%40mail.gmail.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/06858de5-a732-0e70-6ce7-e60c1a9e2667%40gmail.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/06858de5-a732-0e70-6ce7-e60c1a9e2667%40gmail.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/CAEX4NpRXtK1wYBfm27dqgALwr2oHMZLE4QeU7rN1KKEugfORfg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpRXtK1wYBfm27dqgALwr2oHMZLE4QeU7rN1KKEugfORfg%40mail.gmail.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/24154c49-5529-af52-1319-c0cd47ccb242%40gmail.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/24154c49-5529-af52-1319-c0cd47ccb242%40gmail.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/CAAEAhvckhm4szfJzz61wa7jMAHyDfbhozjDw8-GFCXa3dh4R%3Dw%40mail.gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/CAAEAhvckhm4szfJzz61wa7jMAHyDfbhozjDw8-GFCXa3dh4R%3Dw%40mail.gmail.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/CAEX4NpTOyCC%2BF0i7zrQNPFWW3nFim7c%3DntgUxKU4uPhbHs3NKg%40mail.gmail.com.

Reply via email to