Class ArrayInterface#

Inheritance Relationships#

Base Types#

Class Documentation#

class ArrayInterface : public AstObserver, public AliasAnalysisInterface, public ArrayAbstractionInterface#

Public Functions

inline ArrayInterface(ArrayAnnotation &a)#
void initialize(AstInterface &fa, const AstNodePtr &h)#
virtual void analyze(AstInterface &fa, const AstNodePtr &h)#

Expose alias analysis for unit testing.

void observe(AstInterface &fa)#
void stop_observe(AstInterface &fa)#
virtual bool may_alias(AstInterface &fa, const AstNodePtr &r1, const AstNodePtr &r2)#
bool is_array_exp(CPPAstInterface &fa, const AstNodePtr &array, int *dimp = 0, SymbolicFunctionDeclarationGroup *len = 0, bool *changeshape = 0)#
void set_array_dimension(const AstNodePtr &arrayexp, int dim)#
bool is_array_mod_op(CPPAstInterface &fa, const AstNodePtr &arrayExp, AstNodePtr *modArray = 0, int *dimp = 0, SymbolicFunctionDeclarationGroup *len = 0, SymbolicFunctionDeclarationGroup *elem = 0, bool *reshape = 0)#
bool is_array_construct_op(CPPAstInterface &fa, const AstNodePtr &arrayExp, AstInterface::AstNodeList *alias = 0, int *dimp = 0, SymbolicFunctionDeclarationGroup *len = 0, SymbolicFunctionDeclarationGroup *elem = 0)#
AstNodePtr impl_array_opt_init(CPPAstInterface &fa, const AstNodePtr &array, const AstNodePtr &scope)#
AstNodePtr impl_access_array_length(CPPAstInterface &fa, const AstNodePtr &array, int dim, int plus = 0)#
AstNodePtr impl_access_array_elem(CPPAstInterface &fa, const AstNodePtr &array, const AstInterface::AstNodeList &args)#
AstNodePtr impl_reshape_array(CPPAstInterface &fa, const AstNodePtr &array, AstInterface::AstNodeList &args)#

Public Static Functions

static ArrayInterface *get_inst(ArrayAnnotation &a, AstInterface &fa, SgFunctionDefinition *funcDef, const AstNodePtr &node)#