typedef iplist<GlobalVariable> GlobalListType;
typedef iplist<Function> FunctionListType;
typedef SetVector<std::string> LibraryListType;
- typedef std::vector<std::string> PassListType;
// Global Variable iterators...
typedef GlobalListType::iterator giterator;
// Library list iterators
typedef LibraryListType::const_iterator lib_iterator;
- // Link-time Pass list iterators
- typedef PassListType::const_iterator pass_iterator;
-
enum Endianness { AnyEndianness, LittleEndian, BigEndian };
enum PointerSize { AnyPointerSize, Pointer32, Pointer64 };
GlobalListType GlobalList; // The Global Variables in the module
FunctionListType FunctionList; // The Functions in 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
std::string ModuleID; // Human readable identifier for the module
std::string TargetTriple; // Platform target triple Module compiled on
/// @brief Get all the libraries
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
%token DECLARE GLOBAL CONSTANT VOLATILE
%token TO DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE WEAK APPENDING
%token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG
-%token DEPLIBS PASSES
+%token DEPLIBS
// Basic Block Terminating Operators
%token <TermOpVal> RET BR SWITCH INVOKE UNWIND
}
| ConstPool DEPLIBS '=' LibrariesDefinition {
}
- | ConstPool PASSES '=' PassesDefinition {
- }
| /* empty: end of list */ {
};
}
;
-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
//===----------------------------------------------------------------------===//