llir-opt  0.0.1
Low-Level Post-Link Optimiser for OCaml and C
Classes | Public Types | Public Member Functions | Friends | List of all members
Prog Class Referencefinal

#include <core/prog.h>

Public Types

using iterator = FuncListType::iterator
 Iterator over the functions.
 
using const_iterator = FuncListType::const_iterator
 
using data_iterator = DataListType::iterator
 Iterator over segments.
 
using const_data_iterator = DataListType::const_iterator
 
using ext_iterator = ExternListType::iterator
 Iterator over externs.
 
using const_ext_iterator = ExternListType::const_iterator
 
using xtor_iterator = XtorListType::iterator
 Iterator over ctors and dtors.
 
using const_xtor_iterator = XtorListType::const_iterator
 

Public Member Functions

 Prog (std::string_view path)
 Creates a new program.
 
 ~Prog ()
 Deletes a program.
 
GlobalGetGlobalOrExtern (const std::string_view name)
 Returns a global or creates a dummy extern.
 
ExternGetExtern (const std::string_view name)
 Returns an extern.
 
DataGetOrCreateData (const std::string_view name)
 Fetches a data segment, creates it if it does not exist.
 
DataGetData (const std::string_view name)
 Fetches a data segment.
 
GlobalGetGlobal (const std::string_view name) const
 Fetches a global.
 
const std::string & GetName () const
 Returns the name of the program.
 
llvm::StringRef getName () const
 Returns the name of the program.
 
void remove (iterator it)
 Removes a function.
 
void erase (iterator it)
 Erases a function.
 
void remove (ext_iterator it)
 Removes an extern.
 
void erase (ext_iterator it)
 Erases an extern.
 
void remove (data_iterator it)
 Removes a data segment.
 
void erase (data_iterator it)
 Erases a data segment.
 
void remove (xtor_iterator it)
 Removes a constructor/destructor.
 
void erase (xtor_iterator it)
 Erases a constructor/destructor.
 
void AddFunc (Func *func, Func *before=nullptr)
 Adds a function.
 
size_t size () const
 
bool empty () const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
llvm::iterator_range< const_iterator > funcs () const
 
llvm::iterator_range< iteratorfuncs ()
 
void AddExtern (Extern *ext, Extern *before=nullptr)
 Adds an extern.
 
size_t ext_size () const
 
ext_iterator ext_begin ()
 
ext_iterator ext_end ()
 
const_ext_iterator ext_begin () const
 
const_ext_iterator ext_end () const
 
llvm::iterator_range< const_ext_iterator > externs () const
 
llvm::iterator_range< ext_iteratorexterns ()
 
void AddData (Data *data, Data *before=nullptr)
 Adds a data item.
 
size_t data_size () const
 
bool data_empty () const
 
data_iterator data_begin ()
 
data_iterator data_end ()
 
const_data_iterator data_begin () const
 
const_data_iterator data_end () const
 
llvm::iterator_range< const_data_iterator > data () const
 
llvm::iterator_range< data_iteratordata ()
 
void AddXtor (Xtor *xtor, Xtor *before=nullptr)
 Add a constructor or a destructor.
 
size_t xtor_size () const
 
bool xtor_empty () const
 
xtor_iterator xtor_begin ()
 
xtor_iterator xtor_end ()
 
const_xtor_iterator xtor_begin () const
 
const_xtor_iterator xtor_end () const
 
llvm::iterator_range< const_xtor_iterator > xtor () const
 
llvm::iterator_range< xtor_iteratorxtor ()
 
global_iterator global_begin ()
 Range of globals.
 
global_iterator global_end ()
 
const_global_iterator global_begin () const
 
const_global_iterator global_end () const
 
llvm::iterator_range< global_iterator > globals ()
 
llvm::iterator_range< const_global_iterator > globals () const
 
void dump (llvm::raw_ostream &os=llvm::errs()) const
 Dumps the representation of the function.
 

Friends

class SymbolTableListTraits< Block >
 Accessors for the symbol table.
 
class SymbolTableListTraits< Func >
 
class SymbolTableListTraits< Extern >
 
class SymbolTableListTraits< Atom >
 
struct llvm::ilist_traits< Data >
 
struct llvm::ilist_traits< Object >
 

Detailed Description

Program storing all data and functions.


The documentation for this class was generated from the following files: