llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#include <passes/pre_eval/symbolic_pointer.h>
Classes | |
class | AddrBlock |
Pointer to a block. More... | |
class | AddrExtern |
Exact external address. More... | |
class | AddrExternRange |
Range of an entire object. More... | |
class | AddrFunc |
Pointer to a function. More... | |
class | AddrObject |
Exact object address. More... | |
class | AddrObjectRange |
Range of an entire object. More... | |
class | AddrStack |
Pointer to a stack frame. More... | |
Public Types | |
enum | Kind : uint8_t { OBJECT, OBJECT_RANGE, EXTERN, EXTERN_RANGE, FUNC, BLOCK, STACK } |
Enumeration of address kinds. | |
Public Member Functions | |
SymbolicAddress (const std::pair< std::unordered_map< int64_t, BitSet< SymbolicObject >>::const_iterator, BitSet< SymbolicObject >::iterator > &arg) | |
Construct an address to a specific location. | |
SymbolicAddress (BitSet< SymbolicObject >::iterator arg) | |
Construct an address to a specific location. | |
SymbolicAddress (std::unordered_map< Extern *, int64_t >::const_iterator arg) | |
Construct an address to a specific location. | |
SymbolicAddress (std::unordered_set< Extern * >::const_iterator arg) | |
Construct an address to a specific location. | |
SymbolicAddress (BitSet< Func >::iterator func) | |
Constructs an address to a frame object. | |
SymbolicAddress (std::unordered_set< Block * >::const_iterator block) | |
Constructs an address to a block. | |
SymbolicAddress (BitSet< SymbolicFrame >::iterator stack) | |
Constructs an address to a stack frame. | |
Kind | GetKind () const |
Returns the address kind. | |
const AddrObject & | AsObject () const |
Access the actual pointer kind. | |
const AddrObjectRange & | AsObjectRange () const |
const AddrExtern & | AsExtern () const |
const AddrExternRange & | AsExternRange () const |
const AddrFunc & | AsFunc () const |
const AddrBlock & | AsBlock () const |
const AddrStack & | AsStack () const |
bool | IsPrecise () const |
Checks whether the pointer is precise. | |
const AddrObject * | ToObject () const |
Attempt to convert to a global. | |
const AddrObjectRange * | ToObjectRange () const |
Attempt to convert to a global. | |
bool | operator== (const SymbolicAddress &that) const |
Compares two sets of pointers for equality. | |
void | dump (llvm::raw_ostream &os) const |
Prints the address. | |
Symbolic address wrapper, used to iterate across pointer contents.