Auto merge of #100627 - krasimirgg:lto-llvm-16, r=cuviper
llvm-wrapper: adapt for LLVM API change No functional changes intended. LLVM commit633f5663c3
removed `createWriteThinLTOBitcodePass`. This adapts PassWrapper similarly to the example mentioned upstream:853b57fe80
. Detected via our experimental rust + llvm @ head bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/12768#0182a6be-ed6e-4dc6-a230-7a46f9d3a2c2/205-537
This commit is contained in:
commit
39a9b88f4e
1 changed files with 23 additions and 2 deletions
|
@ -31,6 +31,9 @@
|
||||||
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
|
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
|
||||||
#include "llvm/Transforms/IPO/AlwaysInliner.h"
|
#include "llvm/Transforms/IPO/AlwaysInliner.h"
|
||||||
#include "llvm/Transforms/IPO/FunctionImport.h"
|
#include "llvm/Transforms/IPO/FunctionImport.h"
|
||||||
|
#if LLVM_VERSION_GE(15, 0)
|
||||||
|
#include "llvm/Transforms/IPO/ThinLTOBitcodeWriter.h"
|
||||||
|
#endif
|
||||||
#include "llvm/Transforms/Utils/AddDiscriminators.h"
|
#include "llvm/Transforms/Utils/AddDiscriminators.h"
|
||||||
#include "llvm/Transforms/Utils/FunctionImportUtils.h"
|
#include "llvm/Transforms/Utils/FunctionImportUtils.h"
|
||||||
#include "llvm/LTO/LTO.h"
|
#include "llvm/LTO/LTO.h"
|
||||||
|
@ -1587,13 +1590,31 @@ LLVMRustThinLTOBufferCreate(LLVMModuleRef M, bool is_thin) {
|
||||||
{
|
{
|
||||||
raw_string_ostream OS(Ret->data);
|
raw_string_ostream OS(Ret->data);
|
||||||
{
|
{
|
||||||
legacy::PassManager PM;
|
|
||||||
if (is_thin) {
|
if (is_thin) {
|
||||||
|
#if LLVM_VERSION_LT(15, 0)
|
||||||
|
legacy::PassManager PM;
|
||||||
PM.add(createWriteThinLTOBitcodePass(OS));
|
PM.add(createWriteThinLTOBitcodePass(OS));
|
||||||
|
PM.run(*unwrap(M));
|
||||||
|
#else
|
||||||
|
PassBuilder PB;
|
||||||
|
LoopAnalysisManager LAM;
|
||||||
|
FunctionAnalysisManager FAM;
|
||||||
|
CGSCCAnalysisManager CGAM;
|
||||||
|
ModuleAnalysisManager MAM;
|
||||||
|
PB.registerModuleAnalyses(MAM);
|
||||||
|
PB.registerCGSCCAnalyses(CGAM);
|
||||||
|
PB.registerFunctionAnalyses(FAM);
|
||||||
|
PB.registerLoopAnalyses(LAM);
|
||||||
|
PB.crossRegisterProxies(LAM, FAM, CGAM, MAM);
|
||||||
|
ModulePassManager MPM;
|
||||||
|
MPM.addPass(ThinLTOBitcodeWriterPass(OS, nullptr));
|
||||||
|
MPM.run(*unwrap(M), MAM);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
|
legacy::PassManager PM;
|
||||||
PM.add(createBitcodeWriterPass(OS));
|
PM.add(createBitcodeWriterPass(OS));
|
||||||
|
PM.run(*unwrap(M));
|
||||||
}
|
}
|
||||||
PM.run(*unwrap(M));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Ret.release();
|
return Ret.release();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue