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

#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 AddrObjectAsObject () const
 Access the actual pointer kind.
 
const AddrObjectRangeAsObjectRange () const
 
const AddrExternAsExtern () const
 
const AddrExternRangeAsExternRange () const
 
const AddrFuncAsFunc () const
 
const AddrBlockAsBlock () const
 
const AddrStackAsStack () const
 
bool IsPrecise () const
 Checks whether the pointer is precise.
 
const AddrObjectToObject () const
 Attempt to convert to a global.
 
const AddrObjectRangeToObjectRange () 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.
 

Detailed Description

Symbolic address wrapper, used to iterate across pointer contents.


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