You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.167
Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
parent
e19d552987
commit
b084638f15
128
external/llvm/lib/Transforms/IPO/IPO.cpp
vendored
128
external/llvm/lib/Transforms/IPO/IPO.cpp
vendored
@ -1,128 +0,0 @@
|
||||
//===-- IPO.cpp -----------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file implements the common infrastructure (including C bindings) for
|
||||
// libLLVMIPO.a, which implements several transformations over the LLVM
|
||||
// intermediate representation.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm-c/Transforms/IPO.h"
|
||||
#include "llvm-c/Initialization.h"
|
||||
#include "llvm/IR/LegacyPassManager.h"
|
||||
#include "llvm/InitializePasses.h"
|
||||
#include "llvm/Transforms/IPO.h"
|
||||
#include "llvm/Transforms/IPO/AlwaysInliner.h"
|
||||
#include "llvm/Transforms/IPO/FunctionAttrs.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void llvm::initializeIPO(PassRegistry &Registry) {
|
||||
initializeArgPromotionPass(Registry);
|
||||
initializeCalledValuePropagationLegacyPassPass(Registry);
|
||||
initializeConstantMergeLegacyPassPass(Registry);
|
||||
initializeCrossDSOCFIPass(Registry);
|
||||
initializeDAEPass(Registry);
|
||||
initializeDAHPass(Registry);
|
||||
initializeForceFunctionAttrsLegacyPassPass(Registry);
|
||||
initializeGlobalDCELegacyPassPass(Registry);
|
||||
initializeGlobalOptLegacyPassPass(Registry);
|
||||
initializeGlobalSplitPass(Registry);
|
||||
initializeIPCPPass(Registry);
|
||||
initializeAlwaysInlinerLegacyPassPass(Registry);
|
||||
initializeSimpleInlinerPass(Registry);
|
||||
initializeInferFunctionAttrsLegacyPassPass(Registry);
|
||||
initializeInternalizeLegacyPassPass(Registry);
|
||||
initializeLoopExtractorPass(Registry);
|
||||
initializeBlockExtractorPassPass(Registry);
|
||||
initializeSingleLoopExtractorPass(Registry);
|
||||
initializeLowerTypeTestsPass(Registry);
|
||||
initializeMergeFunctionsPass(Registry);
|
||||
initializePartialInlinerLegacyPassPass(Registry);
|
||||
initializePostOrderFunctionAttrsLegacyPassPass(Registry);
|
||||
initializeReversePostOrderFunctionAttrsLegacyPassPass(Registry);
|
||||
initializePruneEHPass(Registry);
|
||||
initializeStripDeadPrototypesLegacyPassPass(Registry);
|
||||
initializeStripSymbolsPass(Registry);
|
||||
initializeStripDebugDeclarePass(Registry);
|
||||
initializeStripDeadDebugInfoPass(Registry);
|
||||
initializeStripNonDebugSymbolsPass(Registry);
|
||||
initializeBarrierNoopPass(Registry);
|
||||
initializeEliminateAvailableExternallyLegacyPassPass(Registry);
|
||||
initializeSampleProfileLoaderLegacyPassPass(Registry);
|
||||
initializeFunctionImportLegacyPassPass(Registry);
|
||||
initializeWholeProgramDevirtPass(Registry);
|
||||
}
|
||||
|
||||
void LLVMInitializeIPO(LLVMPassRegistryRef R) {
|
||||
initializeIPO(*unwrap(R));
|
||||
}
|
||||
|
||||
void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createArgumentPromotionPass());
|
||||
}
|
||||
|
||||
void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createCalledValuePropagationPass());
|
||||
}
|
||||
|
||||
void LLVMAddConstantMergePass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createConstantMergePass());
|
||||
}
|
||||
|
||||
void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createDeadArgEliminationPass());
|
||||
}
|
||||
|
||||
void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createPostOrderFunctionAttrsLegacyPass());
|
||||
}
|
||||
|
||||
void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createFunctionInliningPass());
|
||||
}
|
||||
|
||||
void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(llvm::createAlwaysInlinerLegacyPass());
|
||||
}
|
||||
|
||||
void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createGlobalDCEPass());
|
||||
}
|
||||
|
||||
void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createGlobalOptimizerPass());
|
||||
}
|
||||
|
||||
void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createIPConstantPropagationPass());
|
||||
}
|
||||
|
||||
void LLVMAddPruneEHPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createPruneEHPass());
|
||||
}
|
||||
|
||||
void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createIPSCCPPass());
|
||||
}
|
||||
|
||||
void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) {
|
||||
auto PreserveMain = [=](const GlobalValue &GV) {
|
||||
return AllButMain && GV.getName() == "main";
|
||||
};
|
||||
unwrap(PM)->add(createInternalizePass(PreserveMain));
|
||||
}
|
||||
|
||||
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createStripDeadPrototypesPass());
|
||||
}
|
||||
|
||||
void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createStripSymbolsPass());
|
||||
}
|
Reference in New Issue
Block a user