-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate use of LLVM optimizations #21
Comments
Can you please give me an example of LLVM optimizations which provide non-portable bytecode? Thanks! |
For example, an optimization could replace writing 4 separate characters with a single write of a 32-bit value (which is nonportable because of endianness, and will break non TA2 builds of Emscripten because of lack of load-store consistency). |
I had a peek at the function you mentioned but can't figure out (I've never used python seriously) which flags are currently passed to LLVM (the only thing is that -O3 that's commented out?). |
Basically all the opts that appear in something like -globalopt and so forth. |
We now use all LLVM optimizations in TA2. |
Removed Storage Foundation Support, Simplify file packager code
pick_llvm_opts in tests/runner.py currently selects a subset of the LLVM optimizations, that appears to be safe and not generate nonportable code.
We might be missing some LLVM optimizations though. Also, in some cases LLVM optimizations help, in others they hurt. We should find out why.
Also, with typed arrays == 2, our memory model is much closer to the native one, and we should be able to use even nonportable optimizations.
The text was updated successfully, but these errors were encountered: