[MachineOutliner] Outline functions by order of benefit
authorJessica Paquette <jpaquette@apple.com>
Wed, 5 Dec 2018 21:36:04 +0000 (21:36 +0000)
committerJessica Paquette <jpaquette@apple.com>
Wed, 5 Dec 2018 21:36:04 +0000 (21:36 +0000)
commit962b3ae659ef2665b8e2e22bb3e5216c95d0ccce
tree661d7361606925194bad650ef874d71df1a5b38f
parent8eb394d7643e20d7b75225a47a11400ab505439d
[MachineOutliner] Outline functions by order of benefit

Mostly NFC, only change is the order of outlined function names.

Loop over the outlined functions instead of walking the candidate list.

This is a bit easier to understand. It's far more natural to create a function,
then replace all of its occurrences with calls than the other way around.

The functions outlined after this do not change, but their names will be
decided by their benefit. E.g, OUTLINED_FUNCTION_0 will now always be the
most beneficial function, rather than the first one seen.

This makes it easier to enforce an ordering on the outlined functions. So,
this also adds a test to make sure that the ordering works as expected.

llvm-svn: 348414
llvm/include/llvm/CodeGen/MachineOutliner.h
llvm/lib/CodeGen/MachineOutliner.cpp
llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir [new file with mode: 0644]