We just launched BOLT - a Binary Optimization and Layout Tool - to help you optimize the performance of your Linux binaries. https://code.facebook.com/posts/605721433136474/accelerate-large-scale-applications-with-bolt/ … GitHub:https://github.com/facebookincubator/BOLT …
-
-
sure, there's production code that will be broken subtly or horribly by basically any transformation, because it works only by accident. or are you talking about non-erroneous codes?
-
Non-erroneous code, obviously. Since when was I one to worry about transformations breaking wrong code? ;-)
-
what would the non-erroneous code look like?
-
that's certainly some interesting code, but I don't see any reason on the face of it why it would get broken
-
Look specifically at the linked line. It depends on an address change check on the program counter which will be broken if the instruction stream is rearranged in some "equivalent" way.
-
I don't see a problem-- the FB tool rearranges the code any way it likes, but the property being checked at this line won't be affected, it's not like the binary is getting rewritten on the fly
-
Reorder __cp_end before __cp_begin and add a jump. Logically __cp_end is anchored to the "end of the insn before it", but there's no way a tool can see this.
- 7 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.