Propeller lld framework for basicblock sections.
This is part of the Propeller framework to do post link code layout optimizations. Please see the RFC here: https://groups.google.com/forum/#!msg/llvm-dev/ef3mKzAdJ7U/1shV64BYBAAJ and the detailed RFC doc here: https://github.com/google/llvm-propeller/blob/plo-dev/Propeller_RFC.pdf
This is one in the series of patches for Propeller.
This patch adds the following to lld:
- Parses each object file and create CFG for each function.
- Applies propeller profiles to CFGs.
- Calls FunctionReordering/BBReodering and generates symbol ordering file. [this part is in a separate CL]
This header is included only once by another header, so please merge them together.