Sounds reasonable, I'll look into adding more docs in the settings file.

- Alon


On Fri, Oct 25, 2019 at 1:49 PM Gabriel Cuvillier <
[email protected]> wrote:

> Well, to me, having such hint  in the settings.js file (= compile time
> flag or link time flag) would certainly help to make things cleaner while
> porting existing program.
>
> While I do agree the "simple and safe" method of passing everything at
> both compile/link time is convenient, the issue is that having to recompile
> a full 5000+ CPP files program just because of a tweak in a flag that is
> only expected to be used at link time is... argh :)
>
> Le 25/10/2019 à 19:18, Alon Zakai a écrit :
>
>
>
> 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
> <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpTOyCC%2BF0i7zrQNPFWW3nFim7c%3DntgUxKU4uPhbHs3NKg%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/06d628c8-627e-5dba-6a39-22044c269d57%40gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/06d628c8-627e-5dba-6a39-22044c269d57%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/CAEX4NpS9whenh1qa7-b22uEiZmKZ7fYMmfK2FsXOmr5MGJbV%3DA%40mail.gmail.com.

Reply via email to