summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/LTO/LTO.h2
-rw-r--r--llvm/lib/LTO/LTO.cpp20
2 files changed, 10 insertions, 12 deletions
diff --git a/llvm/include/llvm/LTO/LTO.h b/llvm/include/llvm/LTO/LTO.h
index 7672e5195db..d5f3b12cc8e 100644
--- a/llvm/include/llvm/LTO/LTO.h
+++ b/llvm/include/llvm/LTO/LTO.h
@@ -368,8 +368,6 @@ private:
// Global mapping from mangled symbol names to resolutions.
StringMap<GlobalResolution> GlobalResolutions;
- void writeToResolutionFile(InputFile *Input, ArrayRef<SymbolResolution> Res);
-
void addSymbolToGlobalRes(object::IRObjectFile *Obj,
SmallPtrSet<GlobalValue *, 8> &Used,
const InputFile::Symbol &Sym, SymbolResolution Res,
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index 4ae23c1e256..32bddbc8f1a 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -257,23 +257,23 @@ void LTO::addSymbolToGlobalRes(IRObjectFile *Obj,
GlobalRes.Partition = Partition;
}
-void LTO::writeToResolutionFile(InputFile *Input,
- ArrayRef<SymbolResolution> Res) {
- StringRef Path = Input->Obj->getMemoryBufferRef().getBufferIdentifier();
- *Conf.ResolutionFile << Path << '\n';
+static void writeToResolutionFile(raw_ostream &OS, InputFile *Input,
+ ArrayRef<SymbolResolution> Res) {
+ StringRef Path = Input->getMemoryBufferRef().getBufferIdentifier();
+ OS << Path << '\n';
auto ResI = Res.begin();
for (const InputFile::Symbol &Sym : Input->symbols()) {
assert(ResI != Res.end());
SymbolResolution Res = *ResI++;
- *Conf.ResolutionFile << "-r=" << Path << ',' << Sym.getName() << ',';
+ OS << "-r=" << Path << ',' << Sym.getName() << ',';
if (Res.Prevailing)
- *Conf.ResolutionFile << 'p';
+ OS << 'p';
if (Res.FinalDefinitionInLinkageUnit)
- *Conf.ResolutionFile << 'l';
+ OS << 'l';
if (Res.VisibleToRegularObj)
- *Conf.ResolutionFile << 'x';
- *Conf.ResolutionFile << '\n';
+ OS << 'x';
+ OS << '\n';
}
assert(ResI == Res.end());
}
@@ -283,7 +283,7 @@ Error LTO::add(std::unique_ptr<InputFile> Input,
assert(!CalledGetMaxTasks);
if (Conf.ResolutionFile)
- writeToResolutionFile(Input.get(), Res);
+ writeToResolutionFile(*Conf.ResolutionFile, Input.get(), Res);
// FIXME: move to backend
Module &M = Input->Obj->getModule();
OpenPOWER on IntegriCloud