klee
|
Provides an interface for creating and destroying Array objects. More...
#include <ArrayCache.h>
Public Member Functions | |
ArrayCache () | |
~ArrayCache () | |
const Array * | CreateArray (const std::string &_name, uint64_t _size, const ref< ConstantExpr > *constantValuesBegin=0, const ref< ConstantExpr > *constantValuesEnd=0, Expr::Width _domain=Expr::Int32, Expr::Width _range=Expr::Int8) |
Create an Array object. More... | |
Private Types | |
typedef std::unordered_set< const Array *, klee::ArrayHashFn, klee::EquivArrayCmpFn > | ArrayHashMap |
typedef std::vector< const Array * > | ArrayPtrVec |
Private Attributes | |
ArrayHashMap | cachedSymbolicArrays |
ArrayPtrVec | concreteArrays |
Provides an interface for creating and destroying Array objects.
Definition at line 31 of file ArrayCache.h.
|
private |
Definition at line 65 of file ArrayCache.h.
|
private |
Definition at line 67 of file ArrayCache.h.
|
inline |
Definition at line 33 of file ArrayCache.h.
klee::ArrayCache::~ArrayCache | ( | ) |
Definition at line 5 of file ArrayCache.cpp.
References cachedSymbolicArrays, and concreteArrays.
const Array * klee::ArrayCache::CreateArray | ( | const std::string & | _name, |
uint64_t | _size, | ||
const ref< ConstantExpr > * | constantValuesBegin = 0 , |
||
const ref< ConstantExpr > * | constantValuesEnd = 0 , |
||
Expr::Width | _domain = Expr::Int32 , |
||
Expr::Width | _range = Expr::Int8 |
||
) |
Create an Array object.
Symbolic Arrays are cached so that only one instance exists. This provides a limited form of "alpha-renaming". Constant arrays are not cached.
This class retains ownership of Array object so that upon destruction of this object all allocated Array objects are deleted.
_name | The name of the array |
_size | The size of the array in bytes |
constantValuesBegin | A pointer to the beginning of a block of for symbolic arrays. |
constantValuesEnd | A pointer +1 pass the end of a block of memory that contains a ref<ConstantExpr> . This should be NULL for a symbolic array. |
_domain | The size of the domain (i.e. the bitvector used to index the array) |
_range | The size of range (i.e. the bitvector that is indexed to) |
Definition at line 20 of file ArrayCache.cpp.
References cachedSymbolicArrays, concreteArrays, klee::Array::isConstantArray(), and klee::Array::isSymbolicArray().
Referenced by klee::Executor::executeMakeSymbolic(), klee::ObjectState::getUpdates(), klee::ObjectState::ObjectState(), and klee::Executor::replaceReadWithSymbolic().
|
private |
Definition at line 66 of file ArrayCache.h.
Referenced by CreateArray(), and ~ArrayCache().
|
private |
Definition at line 68 of file ArrayCache.h.
Referenced by CreateArray(), and ~ArrayCache().