This diff introduces an option -aggressive-tail-call-outlining to run the MachineOutliner twice: Once in a special only-tail-calls mode, and then again in its regular mode. There is also an option -aggressive-tail-call-outlining-only to be used for debugging that tells the outliner to bail after outlining just the tail calls.
In the only-tail-calls mode, the limitations on W30 are ignored, resulting in a different suffix tree with longer matches, which are then processed for tail calls only. This has a slight improvement over the newer CFI outlining strategy alone (by one or two instructions).
More succinct:
"Only outline tail calls. Meant for testing purposes. (default = off)"