llir-opt  0.0.1
Low-Level Post-Link Optimiser for OCaml and C
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Public Member Functions | List of all members
PointerClosure Class Reference

#include <passes/pre_eval/pointer_closure.h>

Classes

class  Node
 

Public Types

using func_iterator = BitSet< Func >::iterator
 Iterator over functions.
 

Public Member Functions

 PointerClosure (SymbolicHeap &heap, SymbolicContext &ctx)
 
void Add (const SymbolicValue &value)
 
void AddRead (Object *g)
 Add contained objects to the closure.
 
void AddWritten (Object *g)
 Add contained objects to the set of overwritten ones.
 
void AddEscaped (Object *g)
 Add the pointer itself to the closure.
 
void Add (Func *f)
 Add a function to the set.
 
std::shared_ptr< SymbolicPointerBuildTainted ()
 
std::shared_ptr< SymbolicPointerBuildTaint ()
 
NodeGetRoot ()
 Return the root node.
 
size_t func_size () const
 Iterator over functions.
 
func_iterator func_begin () const
 
func_iterator func_end () const
 
llvm::iterator_range< func_iteratorfuncs () const
 

Detailed Description

Helper to compute the transitive closures of objects on the heap.

Constructor & Destructor Documentation

◆ PointerClosure()

PointerClosure::PointerClosure ( SymbolicHeap heap,
SymbolicContext ctx 
)

Build a graph of the SCCs of heap nodes.

Member Function Documentation

◆ Add()

void PointerClosure::Add ( const SymbolicValue value)

Transitively extract information pointed to by value.

Update value with the newly extracted nodes.

◆ BuildTaint()

std::shared_ptr< SymbolicPointer > PointerClosure::BuildTaint ( )

Build a pointer containing all dereferenced pointers.

◆ BuildTainted()

std::shared_ptr< SymbolicPointer > PointerClosure::BuildTainted ( )

Build a pointer containing all the overwritten pointers.


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