llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#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. | |
Global * | GetGlobalOrExtern (const std::string_view name) |
Returns a global or creates a dummy extern. | |
Extern * | GetExtern (const std::string_view name) |
Returns an extern. | |
Data * | GetOrCreateData (const std::string_view name) |
Fetches a data segment, creates it if it does not exist. | |
Data * | GetData (const std::string_view name) |
Fetches a data segment. | |
Global * | GetGlobal (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< iterator > | funcs () |
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_iterator > | externs () |
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_iterator > | data () |
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_iterator > | xtor () |
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 > |
Program storing all data and functions.