forked from OSchip/llvm-project
parent
7ec747fe95
commit
2d3a26ffb9
|
@ -714,20 +714,6 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
|
|||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
// Wrapper prodiving a stream for the ThinLTO backend.
|
||||
class ThinLTOOutputWrapper : public lto::NativeObjectOutput {
|
||||
std::unique_ptr<raw_pwrite_stream> OS;
|
||||
|
||||
public:
|
||||
ThinLTOOutputWrapper(std::unique_ptr<raw_pwrite_stream> OS)
|
||||
: OS(std::move(OS)) {}
|
||||
std::unique_ptr<raw_pwrite_stream> getStream() override {
|
||||
return std::move(OS);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
static void runThinLTOBackend(const CodeGenOptions &CGOpts, Module *M,
|
||||
std::unique_ptr<raw_pwrite_stream> OS) {
|
||||
// If we are performing a ThinLTO importing compile, load the function index
|
||||
|
@ -769,12 +755,12 @@ static void runThinLTOBackend(const CodeGenOptions &CGOpts, Module *M,
|
|||
ModuleMap[I.first()] = (*MBOrErr)->getMemBufferRef();
|
||||
OwnedImports.push_back(std::move(*MBOrErr));
|
||||
}
|
||||
auto AddOutput = [&](size_t Task) {
|
||||
return llvm::make_unique<ThinLTOOutputWrapper>(std::move(OS));
|
||||
auto AddStream = [&](size_t Task) {
|
||||
return llvm::make_unique<lto::NativeObjectStream>(std::move(OS));
|
||||
};
|
||||
lto::Config Conf;
|
||||
if (Error E = thinBackend(
|
||||
Conf, 0, AddOutput, *M, *CombinedIndex, ImportList,
|
||||
Conf, 0, AddStream, *M, *CombinedIndex, ImportList,
|
||||
ModuleToDefinedGVSummaries[M->getModuleIdentifier()], ModuleMap)) {
|
||||
handleAllErrors(std::move(E), [&](ErrorInfoBase &EIB) {
|
||||
errs() << "Error running ThinLTO backend: " << EIB.message() << '\n';
|
||||
|
|
Loading…
Reference in New Issue