This strategy makes each trace local to the basic block. For in-order cores some
heuristics work better when we do local decisions. For example, MachineCombiner
may expect that instructions outside the current basic block do not lengthen
the critical path when we execute instructions in order or the core has a
small re-order buffer.
This patch only introduce the strategy, real use-case is added in the further
pathes.
Depends on D140539
I see that this is replicating the previous code comment, but we shouldn't repeat the class/variable/function name in the block comment, and it should probably use "///" to produce the expected doxygen output.