mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Remove the dependent libraries feature.
The dependent libraries feature was never used and has bit-rotted. Remove it. llvm-svn: 168694
This commit is contained in:
parent
efe26468d2
commit
bdeb3167f1
@ -54,7 +54,6 @@ namespace bitc {
|
||||
MODULE_CODE_DATALAYOUT = 3, // DATALAYOUT: [strchr x N]
|
||||
MODULE_CODE_ASM = 4, // ASM: [strchr x N]
|
||||
MODULE_CODE_SECTIONNAME = 5, // SECTIONNAME: [strchr x N]
|
||||
MODULE_CODE_DEPLIB = 6, // DEPLIB: [strchr x N]
|
||||
|
||||
// GLOBALVAR: [pointer type, isconst, initid,
|
||||
// linkage, alignment, section, visibility, threadlocal]
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include "llvm/Metadata.h"
|
||||
#include "llvm/ADT/OwningPtr.h"
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
@ -122,9 +121,6 @@ public:
|
||||
/// The type for the list of named metadata.
|
||||
typedef ilist<NamedMDNode> NamedMDListType;
|
||||
|
||||
/// The type for the list of dependent libraries.
|
||||
typedef std::vector<std::string> LibraryListType;
|
||||
|
||||
/// The Global Variable iterator.
|
||||
typedef GlobalListType::iterator global_iterator;
|
||||
/// The Global Variable constant iterator.
|
||||
@ -144,8 +140,6 @@ public:
|
||||
typedef NamedMDListType::iterator named_metadata_iterator;
|
||||
/// The named metadata constant interators.
|
||||
typedef NamedMDListType::const_iterator const_named_metadata_iterator;
|
||||
/// The Library list iterator.
|
||||
typedef LibraryListType::const_iterator lib_iterator;
|
||||
|
||||
/// An enumeration for describing the endianess of the target machine.
|
||||
enum Endianness { AnyEndianness, LittleEndian, BigEndian };
|
||||
@ -195,7 +189,6 @@ private:
|
||||
GlobalListType GlobalList; ///< The Global Variables in the module
|
||||
FunctionListType FunctionList; ///< The Functions in the module
|
||||
AliasListType AliasList; ///< The Aliases in the module
|
||||
LibraryListType LibraryList; ///< The Libraries needed by the module
|
||||
NamedMDListType NamedMDList; ///< The named metadata in the module
|
||||
std::string GlobalScopeAsm; ///< Inline Asm at global scope.
|
||||
ValueSymbolTable *ValSymTab; ///< Symbol table for values
|
||||
@ -526,23 +519,6 @@ public:
|
||||
size_t size() const { return FunctionList.size(); }
|
||||
bool empty() const { return FunctionList.empty(); }
|
||||
|
||||
/// @}
|
||||
/// @name Dependent Library Iteration
|
||||
/// @{
|
||||
|
||||
/// @brief Get a constant iterator to beginning of dependent library list.
|
||||
inline lib_iterator lib_begin() const { return LibraryList.begin(); }
|
||||
/// @brief Get a constant iterator to end of dependent library list.
|
||||
inline lib_iterator lib_end() const { return LibraryList.end(); }
|
||||
/// @brief Returns the number of items in the list of libraries.
|
||||
inline size_t lib_size() const { return LibraryList.size(); }
|
||||
/// @brief Add a library to the list of dependent libraries
|
||||
void addLibrary(StringRef Lib);
|
||||
/// @brief Remove a library from the list of dependent libraries
|
||||
void removeLibrary(StringRef Lib);
|
||||
/// @brief Get all the libraries
|
||||
inline const LibraryListType& getLibraries() const { return LibraryList; }
|
||||
|
||||
/// @}
|
||||
/// @name Alias Iteration
|
||||
/// @{
|
||||
|
@ -486,7 +486,6 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||
KEYWORD(target);
|
||||
KEYWORD(triple);
|
||||
KEYWORD(unwind);
|
||||
KEYWORD(deplibs);
|
||||
KEYWORD(datalayout);
|
||||
KEYWORD(volatile);
|
||||
KEYWORD(atomic);
|
||||
|
@ -168,7 +168,6 @@ bool LLParser::ParseTopLevelEntities() {
|
||||
case lltok::kw_define: if (ParseDefine()) return true; break;
|
||||
case lltok::kw_module: if (ParseModuleAsm()) return true; break;
|
||||
case lltok::kw_target: if (ParseTargetDefinition()) return true; break;
|
||||
case lltok::kw_deplibs: if (ParseDepLibs()) return true; break;
|
||||
case lltok::LocalVarID: if (ParseUnnamedType()) return true; break;
|
||||
case lltok::LocalVar: if (ParseNamedType()) return true; break;
|
||||
case lltok::GlobalID: if (ParseUnnamedGlobal()) return true; break;
|
||||
@ -264,31 +263,6 @@ bool LLParser::ParseTargetDefinition() {
|
||||
}
|
||||
}
|
||||
|
||||
/// toplevelentity
|
||||
/// ::= 'deplibs' '=' '[' ']'
|
||||
/// ::= 'deplibs' '=' '[' STRINGCONSTANT (',' STRINGCONSTANT)* ']'
|
||||
bool LLParser::ParseDepLibs() {
|
||||
assert(Lex.getKind() == lltok::kw_deplibs);
|
||||
Lex.Lex();
|
||||
if (ParseToken(lltok::equal, "expected '=' after deplibs") ||
|
||||
ParseToken(lltok::lsquare, "expected '=' after deplibs"))
|
||||
return true;
|
||||
|
||||
if (EatIfPresent(lltok::rsquare))
|
||||
return false;
|
||||
|
||||
std::string Str;
|
||||
if (ParseStringConstant(Str)) return true;
|
||||
M->addLibrary(Str);
|
||||
|
||||
while (EatIfPresent(lltok::comma)) {
|
||||
if (ParseStringConstant(Str)) return true;
|
||||
M->addLibrary(Str);
|
||||
}
|
||||
|
||||
return ParseToken(lltok::rsquare, "expected ']' at end of list");
|
||||
}
|
||||
|
||||
/// ParseUnnamedType:
|
||||
/// ::= LocalVarID '=' 'type' type
|
||||
bool LLParser::ParseUnnamedType() {
|
||||
|
@ -216,7 +216,6 @@ namespace llvm {
|
||||
bool ParseTopLevelEntities();
|
||||
bool ValidateEndOfModule();
|
||||
bool ParseTargetDefinition();
|
||||
bool ParseDepLibs();
|
||||
bool ParseModuleAsm();
|
||||
bool ParseUnnamedType();
|
||||
bool ParseNamedType();
|
||||
|
@ -54,7 +54,6 @@ namespace lltok {
|
||||
kw_target,
|
||||
kw_triple,
|
||||
kw_unwind,
|
||||
kw_deplibs,
|
||||
kw_datalayout,
|
||||
kw_volatile,
|
||||
kw_atomic,
|
||||
|
@ -1564,13 +1564,6 @@ bool BitcodeReader::ParseModule(bool Resume) {
|
||||
TheModule->setModuleInlineAsm(S);
|
||||
break;
|
||||
}
|
||||
case bitc::MODULE_CODE_DEPLIB: { // DEPLIB: [strchr x N]
|
||||
std::string S;
|
||||
if (ConvertToString(Record, 0, S))
|
||||
return Error("Invalid MODULE_CODE_DEPLIB record");
|
||||
TheModule->addLibrary(S);
|
||||
break;
|
||||
}
|
||||
case bitc::MODULE_CODE_SECTIONNAME: { // SECTIONNAME: [strchr x N]
|
||||
std::string S;
|
||||
if (ConvertToString(Record, 0, S))
|
||||
|
@ -392,10 +392,6 @@ static unsigned getEncodedThreadLocalMode(const GlobalVariable *GV) {
|
||||
// descriptors for global variables, and function prototype info.
|
||||
static void WriteModuleInfo(const Module *M, const ValueEnumerator &VE,
|
||||
BitstreamWriter &Stream) {
|
||||
// Emit the list of dependent libraries for the Module.
|
||||
for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
|
||||
WriteStringRecord(bitc::MODULE_CODE_DEPLIB, *I, 0/*TODO*/, Stream);
|
||||
|
||||
// Emit various pieces of data attached to a module.
|
||||
if (!M->getTargetTriple().empty())
|
||||
WriteStringRecord(bitc::MODULE_CODE_TRIPLE, M->getTargetTriple(),
|
||||
|
@ -51,20 +51,6 @@ Linker::LinkInItems(const ItemList& Items, ItemList& NativeItems) {
|
||||
}
|
||||
}
|
||||
|
||||
// At this point we have processed all the link items provided to us. Since
|
||||
// we have an aggregated module at this point, the dependent libraries in
|
||||
// that module should also be aggregated with duplicates eliminated. This is
|
||||
// now the time to process the dependent libraries to resolve any remaining
|
||||
// symbols.
|
||||
bool is_native;
|
||||
for (Module::lib_iterator I = Composite->lib_begin(),
|
||||
E = Composite->lib_end(); I != E; ++I) {
|
||||
if(LinkInLibrary(*I, is_native))
|
||||
return true;
|
||||
if (is_native)
|
||||
NativeItems.push_back(std::make_pair(*I, true));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -128,17 +114,6 @@ bool Linker::LinkInLibraries(const std::vector<std::string> &Libraries) {
|
||||
if (LinkInLibrary(Libraries[i], is_native))
|
||||
return true;
|
||||
|
||||
// At this point we have processed all the libraries provided to us. Since
|
||||
// we have an aggregated module at this point, the dependent libraries in
|
||||
// that module should also be aggregated with duplicates eliminated. This is
|
||||
// now the time to process the dependent libraries to resolve any remaining
|
||||
// symbols.
|
||||
const Module::LibraryListType& DepLibs = Composite->getLibraries();
|
||||
for (Module::LibraryListType::const_iterator I = DepLibs.begin(),
|
||||
E = DepLibs.end(); I != E; ++I)
|
||||
if (LinkInLibrary(*I, is_native))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1187,19 +1187,6 @@ bool ModuleLinker::run() {
|
||||
SrcM->getModuleInlineAsm());
|
||||
}
|
||||
|
||||
// Update the destination module's dependent libraries list with the libraries
|
||||
// from the source module. There's no opportunity for duplicates here as the
|
||||
// Module ensures that duplicate insertions are discarded.
|
||||
for (Module::lib_iterator SI = SrcM->lib_begin(), SE = SrcM->lib_end();
|
||||
SI != SE; ++SI)
|
||||
DstM->addLibrary(*SI);
|
||||
|
||||
// If the source library's module id is in the dependent library list of the
|
||||
// destination library, remove it since that module is now linked in.
|
||||
StringRef ModuleId = SrcM->getModuleIdentifier();
|
||||
if (!ModuleId.empty())
|
||||
DstM->removeLibrary(sys::path::stem(ModuleId));
|
||||
|
||||
// Loop over all of the linked values to compute type mappings.
|
||||
computeTypeMapping();
|
||||
|
||||
|
@ -1941,14 +1941,6 @@ void CppWriter::printModule(const std::string& fname,
|
||||
}
|
||||
nl(Out);
|
||||
|
||||
// Loop over the dependent libraries and emit them.
|
||||
Module::lib_iterator LI = TheModule->lib_begin();
|
||||
Module::lib_iterator LE = TheModule->lib_end();
|
||||
while (LI != LE) {
|
||||
Out << "mod->addLibrary(\"" << *LI << "\");";
|
||||
nl(Out);
|
||||
++LI;
|
||||
}
|
||||
printModuleBody();
|
||||
nl(Out) << "return mod;";
|
||||
nl(Out,-1) << "}";
|
||||
|
@ -38,10 +38,6 @@ Module *llvm::CloneModule(const Module *M, ValueToValueMapTy &VMap) {
|
||||
New->setTargetTriple(M->getTargetTriple());
|
||||
New->setModuleInlineAsm(M->getModuleInlineAsm());
|
||||
|
||||
// Copy all of the dependent libraries over.
|
||||
for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
|
||||
New->addLibrary(*I);
|
||||
|
||||
// Loop over all of the global variables, making corresponding globals in the
|
||||
// new module. Here we add them to the VMap and to the new Module. We
|
||||
// don't worry about attributes or initializers, they will come later.
|
||||
|
@ -1303,21 +1303,6 @@ void AssemblyWriter::printModule(const Module *M) {
|
||||
}
|
||||
}
|
||||
|
||||
// Loop over the dependent libraries and emit them.
|
||||
Module::lib_iterator LI = M->lib_begin();
|
||||
Module::lib_iterator LE = M->lib_end();
|
||||
if (LI != LE) {
|
||||
Out << '\n';
|
||||
Out << "deplibs = [ ";
|
||||
while (LI != LE) {
|
||||
Out << '"' << *LI << '"';
|
||||
++LI;
|
||||
if (LI != LE)
|
||||
Out << ", ";
|
||||
}
|
||||
Out << " ]";
|
||||
}
|
||||
|
||||
printTypeIdentities();
|
||||
|
||||
// Output all globals.
|
||||
|
@ -55,7 +55,6 @@ Module::~Module() {
|
||||
GlobalList.clear();
|
||||
FunctionList.clear();
|
||||
AliasList.clear();
|
||||
LibraryList.clear();
|
||||
NamedMDList.clear();
|
||||
delete ValSymTab;
|
||||
delete static_cast<StringMap<NamedMDNode *> *>(NamedMDSymTab);
|
||||
@ -450,20 +449,3 @@ void Module::dropAllReferences() {
|
||||
for(Module::alias_iterator I = alias_begin(), E = alias_end(); I != E; ++I)
|
||||
I->dropAllReferences();
|
||||
}
|
||||
|
||||
void Module::addLibrary(StringRef Lib) {
|
||||
for (Module::lib_iterator I = lib_begin(), E = lib_end(); I != E; ++I)
|
||||
if (*I == Lib)
|
||||
return;
|
||||
LibraryList.push_back(Lib);
|
||||
}
|
||||
|
||||
void Module::removeLibrary(StringRef Lib) {
|
||||
LibraryListType::iterator I = LibraryList.begin();
|
||||
LibraryListType::iterator E = LibraryList.end();
|
||||
for (;I != E; ++I)
|
||||
if (*I == Lib) {
|
||||
LibraryList.erase(I);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -4,4 +4,3 @@
|
||||
|
||||
target datalayout = "e-p:32:32"
|
||||
target triple = "proc-vend-sys"
|
||||
deplibs = [ "m", "c" ]
|
||||
|
@ -5,5 +5,3 @@
|
||||
|
||||
target datalayout = "e-p:32:32"
|
||||
target triple = "proc-vend-sys"
|
||||
deplibs = [ "m", "c" ]
|
||||
|
||||
|
@ -3,11 +3,8 @@
|
||||
|
||||
target datalayout = "E-p:32:32"
|
||||
target triple = "powerpc-apple-darwin7.7.0"
|
||||
deplibs = [ "c", "crtend" ]
|
||||
@source = global <4 x i32> < i32 0, i32 1, i32 2, i32 3 > ; <<4 x i32>*> [#uses=0]
|
||||
|
||||
define i32 @main() {
|
||||
entry:
|
||||
ret i32 0
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
; PR993
|
||||
target datalayout = "e-p:32:32"
|
||||
target triple = "i386-unknown-openbsd3.9"
|
||||
deplibs = [ "stdc++", "c", "crtend" ]
|
||||
%"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* }
|
||||
%"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** }
|
||||
%struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||
|
@ -2,7 +2,6 @@
|
||||
; PR992
|
||||
target datalayout = "e-p:32:32"
|
||||
target triple = "i686-pc-linux-gnu"
|
||||
deplibs = [ "stdc++", "c", "crtend" ]
|
||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
|
||||
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
|
||||
%"struct.__cxxabiv1::__array_type_info" = type { %"struct.std::type_info" }
|
||||
|
@ -150,7 +150,6 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID,
|
||||
case bitc::MODULE_CODE_DATALAYOUT: return "DATALAYOUT";
|
||||
case bitc::MODULE_CODE_ASM: return "ASM";
|
||||
case bitc::MODULE_CODE_SECTIONNAME: return "SECTIONNAME";
|
||||
case bitc::MODULE_CODE_DEPLIB: return "DEPLIB";
|
||||
case bitc::MODULE_CODE_GLOBALVAR: return "GLOBALVAR";
|
||||
case bitc::MODULE_CODE_FUNCTION: return "FUNCTION";
|
||||
case bitc::MODULE_CODE_ALIAS: return "ALIAS";
|
||||
|
Loading…
x
Reference in New Issue
Block a user