[BOLT] Disassemble all functions before building CFGs
Summary: This makes it possible to do adjustments to all functions based on information gained during disassembly. E.g. if we detect an entry point after the CFG for a function is constructed, we have to take a conservative approach, and mark such function as non-simple. Now we have this information before building the CFG. This could also be used to do other processing/post-processing on disassembled functions that might affect CFG construction of other functions (e.g. early detection of functions that never return). The drawback of this approach is that we lose cache locality and some processing performance as a result. I've measured 5 second difference on HHVM binary. (cherry picked from FBD7258466)
Loading
Please sign in to comment