mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
forcing them down into various .cpp files. This change also: 1. Renames TimeValue::toString() and Path::toString() to ::str() for similarity with the STL. 2. Removes all stream insertion support for sys::Path, forcing clients to call .str(). 3. Removes a use of Config/alloca.h from bugpoint, using smallvector instead. 4. Weans llvm-db off <iostream> sys::Path really needs to be gutted, but I don't have the desire to do it at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -96,10 +96,10 @@ bool
|
||||
Linker::LinkInArchive(const sys::Path &Filename, bool &is_native) {
|
||||
// Make sure this is an archive file we're dealing with
|
||||
if (!Filename.isArchive())
|
||||
return error("File '" + Filename.toString() + "' is not an archive.");
|
||||
return error("File '" + Filename.str() + "' is not an archive.");
|
||||
|
||||
// Open the archive file
|
||||
verbose("Linking archive file '" + Filename.toString() + "'");
|
||||
verbose("Linking archive file '" + Filename.str() + "'");
|
||||
|
||||
// Find all of the symbols currently undefined in the bitcode program.
|
||||
// If all the symbols are defined, the program is complete, and there is
|
||||
@@ -108,8 +108,7 @@ Linker::LinkInArchive(const sys::Path &Filename, bool &is_native) {
|
||||
GetAllUndefinedSymbols(Composite, UndefinedSymbols);
|
||||
|
||||
if (UndefinedSymbols.empty()) {
|
||||
verbose("No symbols undefined, skipping library '" +
|
||||
Filename.toString() + "'");
|
||||
verbose("No symbols undefined, skipping library '" + Filename.str() + "'");
|
||||
return false; // No need to link anything in!
|
||||
}
|
||||
|
||||
@@ -120,7 +119,7 @@ Linker::LinkInArchive(const sys::Path &Filename, bool &is_native) {
|
||||
Archive* arch = AutoArch.get();
|
||||
|
||||
if (!arch)
|
||||
return error("Cannot read archive '" + Filename.toString() +
|
||||
return error("Cannot read archive '" + Filename.str() +
|
||||
"': " + ErrMsg);
|
||||
if (!arch->isBitcodeArchive()) {
|
||||
is_native = true;
|
||||
@@ -143,7 +142,7 @@ Linker::LinkInArchive(const sys::Path &Filename, bool &is_native) {
|
||||
// Find the modules we need to link into the target module
|
||||
std::set<ModuleProvider*> Modules;
|
||||
if (!arch->findModulesDefiningSymbols(UndefinedSymbols, Modules, &ErrMsg))
|
||||
return error("Cannot find symbols in '" + Filename.toString() +
|
||||
return error("Cannot find symbols in '" + Filename.str() +
|
||||
"': " + ErrMsg);
|
||||
|
||||
// If we didn't find any more modules to link this time, we are done
|
||||
|
@@ -14,10 +14,10 @@
|
||||
|
||||
#include "llvm/Linker.h"
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/System/Path.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
// LinkItems - This function is the main entry point into linking. It takes a
|
||||
@@ -93,7 +93,7 @@ bool Linker::LinkInLibrary(const StringRef &Lib, bool& is_native) {
|
||||
|
||||
case sys::Archive_FileType:
|
||||
if (LinkInArchive(Pathname, is_native))
|
||||
return error("Cannot link archive '" + Pathname.toString() + "'");
|
||||
return error("Cannot link archive '" + Pathname.str() + "'");
|
||||
break;
|
||||
|
||||
case sys::ELF_Relocatable_FileType:
|
||||
@@ -158,7 +158,7 @@ bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
|
||||
is_native = false;
|
||||
|
||||
// Check for a file of name "-", which means "read standard input"
|
||||
if (File.toString() == "-") {
|
||||
if (File.str() == "-") {
|
||||
std::auto_ptr<Module> M;
|
||||
if (MemoryBuffer *Buffer = MemoryBuffer::getSTDIN()) {
|
||||
M.reset(ParseBitcodeFile(Buffer, Context, &Error));
|
||||
@@ -173,7 +173,7 @@ bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
|
||||
|
||||
// Make sure we can at least read the file
|
||||
if (!File.canRead())
|
||||
return error("Cannot find linker input '" + File.toString() + "'");
|
||||
return error("Cannot find linker input '" + File.str() + "'");
|
||||
|
||||
// If its an archive, try to link it in
|
||||
std::string Magic;
|
||||
@@ -181,26 +181,26 @@ bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
|
||||
switch (sys::IdentifyFileType(Magic.c_str(), 64)) {
|
||||
default: llvm_unreachable("Bad file type identification");
|
||||
case sys::Unknown_FileType:
|
||||
return warning("Ignoring file '" + File.toString() +
|
||||
return warning("Ignoring file '" + File.str() +
|
||||
"' because does not contain bitcode.");
|
||||
|
||||
case sys::Archive_FileType:
|
||||
// A user may specify an ar archive without -l, perhaps because it
|
||||
// is not installed as a library. Detect that and link the archive.
|
||||
verbose("Linking archive file '" + File.toString() + "'");
|
||||
verbose("Linking archive file '" + File.str() + "'");
|
||||
if (LinkInArchive(File, is_native))
|
||||
return true;
|
||||
break;
|
||||
|
||||
case sys::Bitcode_FileType: {
|
||||
verbose("Linking bitcode file '" + File.toString() + "'");
|
||||
verbose("Linking bitcode file '" + File.str() + "'");
|
||||
std::auto_ptr<Module> M(LoadObject(File));
|
||||
if (M.get() == 0)
|
||||
return error("Cannot load file '" + File.toString() + "': " + Error);
|
||||
return error("Cannot load file '" + File.str() + "': " + Error);
|
||||
if (LinkInModule(M.get(), &Error))
|
||||
return error("Cannot link file '" + File.toString() + "': " + Error);
|
||||
return error("Cannot link file '" + File.str() + "': " + Error);
|
||||
|
||||
verbose("Linked in file '" + File.toString() + "'");
|
||||
verbose("Linked in file '" + File.str() + "'");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -26,6 +26,7 @@
|
||||
#include "llvm/Instructions.h"
|
||||
#include "llvm/Assembly/Writer.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/System/Path.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include <sstream>
|
||||
|
@@ -14,9 +14,10 @@
|
||||
#include "llvm/Linker.h"
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/Config/config.h"
|
||||
#include "llvm/System/Path.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Config/config.h"
|
||||
using namespace llvm;
|
||||
|
||||
Linker::Linker(const StringRef &progname, const StringRef &modname,
|
||||
@@ -69,11 +70,8 @@ Linker::addPath(const sys::Path& path) {
|
||||
|
||||
void
|
||||
Linker::addPaths(const std::vector<std::string>& paths) {
|
||||
for (unsigned i = 0; i != paths.size(); ++i) {
|
||||
sys::Path aPath;
|
||||
aPath.set(paths[i]);
|
||||
LibPaths.push_back(aPath);
|
||||
}
|
||||
for (unsigned i = 0, e = paths.size(); i != e; ++i)
|
||||
LibPaths.push_back(sys::Path(paths[i]));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -100,16 +98,15 @@ Linker::LoadObject(const sys::Path &FN) {
|
||||
std::string ParseErrorMessage;
|
||||
Module *Result = 0;
|
||||
|
||||
const std::string &FNS = FN.toString();
|
||||
std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(FNS.c_str()));
|
||||
std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(FN.c_str()));
|
||||
if (Buffer.get())
|
||||
Result = ParseBitcodeFile(Buffer.get(), Context, &ParseErrorMessage);
|
||||
else
|
||||
ParseErrorMessage = "Error reading file '" + FNS + "'";
|
||||
ParseErrorMessage = "Error reading file '" + FN.str() + "'";
|
||||
|
||||
if (Result)
|
||||
return std::auto_ptr<Module>(Result);
|
||||
Error = "Bitcode file '" + FN.toString() + "' could not be loaded";
|
||||
Error = "Bitcode file '" + FN.str() + "' could not be loaded";
|
||||
if (ParseErrorMessage.size())
|
||||
Error += ": " + ParseErrorMessage;
|
||||
return std::auto_ptr<Module>();
|
||||
|
Reference in New Issue
Block a user