Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.
/ swift-llvm Public archive

Move the Swift function-merging pass to LLVM #123

Open
wants to merge 1 commit into
base: swift-5.0-branch
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/llvm/InitializePasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ void initializeMemorySSAPrinterLegacyPassPass(PassRegistry&);
void initializeMemorySSAWrapperPassPass(PassRegistry&);
void initializeMemorySanitizerPass(PassRegistry&);
void initializeMergeFunctionsPass(PassRegistry&);
void initializeMergeSimilarFunctionsPass(PassRegistry &);
void initializeMergeICmpsPass(PassRegistry&);
void initializeMergedLoadStoreMotionLegacyPassPass(PassRegistry&);
void initializeMetaRenamerPass(PassRegistry&);
Expand Down
1 change: 1 addition & 0 deletions include/llvm/LinkAllPasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ namespace {
(void) llvm::createPostOrderFunctionAttrsLegacyPass();
(void) llvm::createReversePostOrderFunctionAttrsPass();
(void) llvm::createMergeFunctionsPass();
(void)llvm::createMergeSimilarFunctionsPass();
(void) llvm::createMergeICmpsPass();
(void) llvm::createExpandMemCmpPass();
std::string buf;
Expand Down
6 changes: 6 additions & 0 deletions include/llvm/Transforms/IPO.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,12 @@ Pass *createReversePostOrderFunctionAttrsPass();
///
ModulePass *createMergeFunctionsPass();

//===----------------------------------------------------------------------===//
/// createMergeSimilarFunctionsPass - This pass discovers similar functions and
/// collapses them.
///
ModulePass *createMergeSimilarFunctionsPass();

//===----------------------------------------------------------------------===//
/// createHotColdSplittingPass - This pass outlines cold blocks into a separate
/// function(s).
Expand Down
1 change: 1 addition & 0 deletions include/llvm/Transforms/IPO/PassManagerBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ class PassManagerBuilder {
bool VerifyInput;
bool VerifyOutput;
bool MergeFunctions;
bool MergeSimilarFunctions;
bool PrepareForLTO;
bool PrepareForThinLTO;
bool PerformThinLTO;
Expand Down
1 change: 1 addition & 0 deletions lib/Transforms/IPO/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ add_llvm_library(LLVMipo
LoopExtractor.cpp
LowerTypeTests.cpp
MergeFunctions.cpp
MergeSimilarFunctions.cpp
PartialInlining.cpp
PassManagerBuilder.cpp
PruneEH.cpp
Expand Down
1 change: 1 addition & 0 deletions lib/Transforms/IPO/IPO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ void llvm::initializeIPO(PassRegistry &Registry) {
initializeSingleLoopExtractorPass(Registry);
initializeLowerTypeTestsPass(Registry);
initializeMergeFunctionsPass(Registry);
initializeMergeSimilarFunctionsPass(Registry);
initializePartialInlinerLegacyPassPass(Registry);
initializePostOrderFunctionAttrsLegacyPassPass(Registry);
initializeReversePostOrderFunctionAttrsLegacyPassPass(Registry);
Expand Down
Loading