Okay, the list of link-time passes wasn't such a hot idea. Its prone to

error. We'll strategize on this when we have multiple front ends to deal
with. For now llvm-ld just runs a standard set of transforms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2004-09-14 05:43:23 +00:00
parent 44da7d7976
commit 1c7b907325
5 changed files with 1 additions and 64 deletions

View File

@ -49,7 +49,6 @@ public:
typedef iplist<GlobalVariable> GlobalListType; typedef iplist<GlobalVariable> GlobalListType;
typedef iplist<Function> FunctionListType; typedef iplist<Function> FunctionListType;
typedef SetVector<std::string> LibraryListType; typedef SetVector<std::string> LibraryListType;
typedef std::vector<std::string> PassListType;
// Global Variable iterators... // Global Variable iterators...
typedef GlobalListType::iterator giterator; typedef GlobalListType::iterator giterator;
@ -66,9 +65,6 @@ public:
// Library list iterators // Library list iterators
typedef LibraryListType::const_iterator lib_iterator; typedef LibraryListType::const_iterator lib_iterator;
// Link-time Pass list iterators
typedef PassListType::const_iterator pass_iterator;
enum Endianness { AnyEndianness, LittleEndian, BigEndian }; enum Endianness { AnyEndianness, LittleEndian, BigEndian };
enum PointerSize { AnyPointerSize, Pointer32, Pointer64 }; enum PointerSize { AnyPointerSize, Pointer32, Pointer64 };
@ -76,7 +72,6 @@ private:
GlobalListType GlobalList; // The Global Variables in the module GlobalListType GlobalList; // The Global Variables in the module
FunctionListType FunctionList; // The Functions in the module FunctionListType FunctionList; // The Functions in the module
LibraryListType LibraryList; // The Libraries needed by the module LibraryListType LibraryList; // The Libraries needed by the module
PassListType PassList; // The Passes needed by the module at link time
SymbolTable *SymTab; // Symbol Table for the module SymbolTable *SymTab; // Symbol Table for the module
std::string ModuleID; // Human readable identifier for the module std::string ModuleID; // Human readable identifier for the module
std::string TargetTriple; // Platform target triple Module compiled on std::string TargetTriple; // Platform target triple Module compiled on
@ -252,27 +247,6 @@ public:
/// @brief Get all the libraries /// @brief Get all the libraries
inline const LibraryListType& getLibraries() const { return LibraryList; } inline const LibraryListType& getLibraries() const { return LibraryList; }
//===--------------------------------------------------------------------===//
// Access functions for Link-time pass list
/// @brief Get a constant iterator to beginning of pass list.
inline pass_iterator pass_begin() const { return PassList.begin(); }
/// @brief Get a constant iterator to end of pass list.
inline pass_iterator pass_end() const { return PassList.end(); }
/// @brief Returns the number of items in the list of passes.
inline unsigned pass_size() const { return PassList.size(); }
/// @brief Add a library to the list of passes
inline void addPass(const std::string& Pass){ PassList.push_back(Pass); }
/// @brief Remove a library from the list of passes
void removePass(const std::string& Lib);
/// @brief Get all the passes
inline const PassListType& getPasses() const { return PassList; }
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Utility functions for printing and dumping Module objects // Utility functions for printing and dumping Module objects

View File

@ -195,7 +195,6 @@ not { return NOT; } /* Deprecated, turned into XOR */
target { return TARGET; } target { return TARGET; }
triple { return TRIPLE; } triple { return TRIPLE; }
deplibs { return DEPLIBS; } deplibs { return DEPLIBS; }
passes { return PASSES; }
endian { return ENDIAN; } endian { return ENDIAN; }
pointersize { return POINTERSIZE; } pointersize { return POINTERSIZE; }
little { return LITTLE; } little { return LITTLE; }

View File

@ -910,7 +910,7 @@ Module *llvm::RunVMAsmParser(const std::string &Filename, FILE *F) {
%token DECLARE GLOBAL CONSTANT VOLATILE %token DECLARE GLOBAL CONSTANT VOLATILE
%token TO DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE WEAK APPENDING %token TO DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE WEAK APPENDING
%token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG %token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG
%token DEPLIBS PASSES %token DEPLIBS
// Basic Block Terminating Operators // Basic Block Terminating Operators
%token <TermOpVal> RET BR SWITCH INVOKE UNWIND %token <TermOpVal> RET BR SWITCH INVOKE UNWIND
@ -1484,8 +1484,6 @@ ConstPool : ConstPool OptAssign TYPE TypesV { // Types can be defined in the co
} }
| ConstPool DEPLIBS '=' LibrariesDefinition { | ConstPool DEPLIBS '=' LibrariesDefinition {
} }
| ConstPool PASSES '=' PassesDefinition {
}
| /* empty: end of list */ { | /* empty: end of list */ {
}; };
@ -1524,19 +1522,6 @@ LibList : LibList ',' STRINGCONSTANT {
} }
; ;
PassesDefinition : '[' PassList ']';
PassList : PassList ',' STRINGCONSTANT {
CurModule.CurrentModule->addLibrary($3);
free($3);
}
| STRINGCONSTANT {
CurModule.CurrentModule->addLibrary($1);
free($1);
}
| /* empty: end of list */ {
}
;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Rules to match Function Headers // Rules to match Function Headers
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -778,20 +778,6 @@ void AssemblyWriter::printModule(const Module *M) {
Out << " ]\n"; Out << " ]\n";
} }
// Loop over the link time pass list and emit them.
Module::pass_iterator PI = M->pass_begin();
Module::pass_iterator PE = M->pass_end();
if (LI != LE) {
Out << "passes = [ ";
while (LI != LE) {
Out << '"' << *LI << '"';
++LI;
if (LI != LE)
Out << ", ";
}
Out << " ]\n";
}
// Loop over the symbol table, emitting all named constants. // Loop over the symbol table, emitting all named constants.
printSymbolTable(M->getSymbolTable()); printSymbolTable(M->getSymbolTable());

View File

@ -270,13 +270,6 @@ std::string Module::getTypeName(const Type *Ty) const {
return ""; // Must not have found anything... return ""; // Must not have found anything...
} }
void Module::removePass(const std::string& Lib) {
PassListType::iterator I = find(PassList.begin(),PassList.end(),Lib);
if (I != PassList.end())
PassList.erase(I);
}
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Other module related stuff. // Other module related stuff.
// //