if you make OOB writes and race conditions defined then the compiler is required to translate everything as in -O0 because it can never assume that the memory contents didn't change between any two instructions
-
-
Lol that’s hilariously false. Well defined languages get optimized much better than -O0. It’s just not true that defining OOB and races would prevent meaningful optimizations.
1 reply 0 retweets 0 likes -
Replying to @filpizlo @whitequark and
Maybe
@whitequark is confusing “load elimination under strict aliasing” with “all optimizations”. In my experience those are not the same thing although a subset relation exists.1 reply 0 retweets 0 likes -
I'm not saying anything about strict aliasing. maybe you're using a different definition of "defined". If some behavior is defined, can compiler optimizations change observations of it?
1 reply 0 retweets 1 like -
The answer does not have to be “yes”. Java and JS both have well defined semantics except timing, and compilers optimize those a lot.
1 reply 0 retweets 0 likes -
I'm being consistent: I said I want OOB read/write to read/write to any object, under -O0 or any optimization level. Even every execution of the -O0 program could write to a different object (and that can happen today).
0 replies 0 retweets 0 likes
Sadly we don’t even have the developer bandwidth to implement safe Rust optimizations anytime soon, much less unsafe ones :(
-
-
Replying to @pcwalton @johnregehr and
Our optimization story for unsafe code is gonna be “whatever LLVM does ¯\_(ツ)_/¯” for quite a while
0 replies 0 retweets 1 like - 2 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.