Skip to content

Commit

Permalink
Remove the dependent libraries feature.
Browse files Browse the repository at this point in the history
The dependent libraries feature was never used and has bit-rotted. Remove it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168694 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
isanbard committed Nov 27, 2012
1 parent 1db3152 commit efd08d4
Show file tree
Hide file tree
Showing 20 changed files with 1 addition and 158 deletions.
1 change: 0 additions & 1 deletion include/llvm/Bitcode/LLVMBitCodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
24 changes: 0 additions & 24 deletions include/llvm/Module.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#include "llvm/Metadata.h"
#include "llvm/ADT/OwningPtr.h"
#include "llvm/Support/DataTypes.h"
#include <vector>

namespace llvm {

Expand Down Expand Up @@ -122,9 +121,6 @@ class Module {
/// 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.
Expand All @@ -144,8 +140,6 @@ class Module {
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 };
Expand Down Expand Up @@ -195,7 +189,6 @@ class Module {
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
Expand Down Expand Up @@ -526,23 +519,6 @@ class Module {
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
/// @{
Expand Down
1 change: 0 additions & 1 deletion lib/AsmParser/LLLexer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,6 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(target);
KEYWORD(triple);
KEYWORD(unwind);
KEYWORD(deplibs);
KEYWORD(datalayout);
KEYWORD(volatile);
KEYWORD(atomic);
Expand Down
26 changes: 0 additions & 26 deletions lib/AsmParser/LLParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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() {
Expand Down
1 change: 0 additions & 1 deletion lib/AsmParser/LLParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,6 @@ namespace llvm {
bool ParseTopLevelEntities();
bool ValidateEndOfModule();
bool ParseTargetDefinition();
bool ParseDepLibs();
bool ParseModuleAsm();
bool ParseUnnamedType();
bool ParseNamedType();
Expand Down
1 change: 0 additions & 1 deletion lib/AsmParser/LLToken.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ namespace lltok {
kw_target,
kw_triple,
kw_unwind,
kw_deplibs,
kw_datalayout,
kw_volatile,
kw_atomic,
Expand Down
7 changes: 0 additions & 7 deletions lib/Bitcode/Reader/BitcodeReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
4 changes: 0 additions & 4 deletions lib/Bitcode/Writer/BitcodeWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand Down
25 changes: 0 additions & 25 deletions lib/Linker/LinkItems.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}

Expand Down
13 changes: 0 additions & 13 deletions lib/Linker/LinkModules.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
8 changes: 0 additions & 8 deletions lib/Target/CppBackend/CPPBackend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) << "}";
Expand Down
4 changes: 0 additions & 4 deletions lib/Transforms/Utils/CloneModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
15 changes: 0 additions & 15 deletions lib/VMCore/AsmWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
18 changes: 0 additions & 18 deletions lib/VMCore/Module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ Module::~Module() {
GlobalList.clear();
FunctionList.clear();
AliasList.clear();
LibraryList.clear();
NamedMDList.clear();
delete ValSymTab;
delete static_cast<StringMap<NamedMDNode *> *>(NamedMDSymTab);
Expand Down Expand Up @@ -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;
}
}
1 change: 0 additions & 1 deletion test/Feature/properties.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,3 @@

target datalayout = "e-p:32:32"
target triple = "proc-vend-sys"
deplibs = [ "m", "c" ]
2 changes: 0 additions & 2 deletions test/Integer/properties_bt.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@

target datalayout = "e-p:32:32"
target triple = "proc-vend-sys"
deplibs = [ "m", "c" ]

5 changes: 1 addition & 4 deletions test/Linker/2006-01-19-ConstantPacked.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

1 change: 0 additions & 1 deletion test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down
1 change: 0 additions & 1 deletion test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand Down
1 change: 0 additions & 1 deletion tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down

0 comments on commit efd08d4

Please sign in to comment.