- Caroline Tice
- Optimization will work with DWARF
- Wrong code
- Modifying the hot/cold partitioning optimization to make sure ALL the hot blocks come before ALL the cold blocks in the RTL representation. This in turn will allow for the elimination of the UNLIKELY notes in each cold block; instead there will only need to be one note, at the single transition from hot to cold (if there is one). This, in turn, will allow the elimination of forward scanning in the instruction stream to determine, for each individual BB, which section it belongs in. All of this will also entail the introduction of a new function "current_function_section" in addition to the current "function_section" function, and the updates of some calls to "function_section" to be calls to "current_function_section". ALSO, the dwarf2 debug information will be modified to work correctly with the hot/cold partitioning optimization (at least to the extent that using the two in combination does not cause an automatic failure). Also, remove some redundancy in tests that turn off some cfg optimizations that are inappropriate in the presence of section-crossing branches.