SuccessChanges

Summary

  1. [IRSim][IROutliner] Adding the extraction basics for the IROutliner. (details)
Commit bf899e891387d07dfd12de195ce2a16f62afd5e0 by andrew.litteken
[IRSim][IROutliner] Adding the extraction basics for the IROutliner.

Extracting the similar regions is the first step in the IROutliner.

Using the IRSimilarityIdentifier, we collect the SimilarityGroups and
sort them by how many instructions will be removed.  Each
IRSimilarityCandidate is used to define an OutlinableRegion.  Each
region is ordered by their occurrence in the Module and the regions that
are not compatible with previously outlined regions are discarded.

Each region is then extracted with the CodeExtractor into its own
function.

We test that correctly extract in:
test/Transforms/IROutliner/extraction.ll
test/Transforms/IROutliner/address-taken.ll
test/Transforms/IROutliner/outlining-same-globals.ll
test/Transforms/IROutliner/outlining-same-constants.ll
test/Transforms/IROutliner/outlining-different-structure.ll

Reviewers: paquette, jroelofs, yroux

Differential Revision: https://reviews.llvm.org/D86975
The file was addedllvm/test/Transforms/IROutliner/outlining-same-globals.ll
The file was addedllvm/test/Transforms/IROutliner/extraction.ll
The file was addedllvm/include/llvm/Transforms/IPO/IROutliner.h
The file was addedllvm/test/Transforms/IROutliner/outlining-same-constants.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was addedllvm/lib/Transforms/IPO/IROutliner.cpp
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp
The file was addedllvm/test/Transforms/IROutliner/outlining-different-structure.ll
The file was modifiedllvm/lib/Transforms/IPO/CMakeLists.txt
The file was modifiedllvm/include/llvm/Transforms/IPO.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/Transforms/IPO/IPO.cpp
The file was addedllvm/test/Transforms/IROutliner/outlining-address-taken.ll