[BOLT-AArch64] Support large test binary
Summary: Rewrite how data/code markers are interpreted, so the code can have constant islands essentially anywhere. This is necessary to accomodate custom AArch64 assembly code coming from mozjpeg. Allow any function to refer to the constant island owned by any other function. When this happens, we pull the constant island from the referred function and emit it as our own, so it will live nearby the code that refers to it, allowing us to freely reorder functions and code pieces. Make bolt more strict about not changing anything in non-simple ARM functions, as we need to preserve offsets for those functions we don't interpret their jump tables (currently any function with jump tables in ARM is non-simple and is left untouched). (cherry picked from FBD6402324)
Loading
Please sign in to comment