Otawa  0.10
otawa::ExpNode Class Reference

#include </home/casse/otawa/otawa/src/prog/ExpNode.h>

Public Types

enum  kind_t {
  NONE, CST, VAR, POS,
  NEG, ADD, SUB, MUL,
  DIV
}
 

Public Member Functions

 ExpNode (ilp::Var *v)
 
 ExpNode (double cst)
 
 ExpNode (kind_t kind, ExpNode *arg)
 
 ExpNode (kind_t kind, ExpNode *arg1, ExpNode *arg2)
 
kind_t kind (void) const
 
ilp::Varvar (void) const
 
double cst (void) const
 
ExpNodearg (void) const
 
ExpNodearg1 (void) const
 
ExpNodearg2 (void) const
 

Private Attributes

kind_t knd
 
union {
   ExpNode *   una
 
   struct {
      ExpNode *   arg1
 
      ExpNode *   arg2
 
   }   bin
 
   ilp::Var *   var
 
   double   cst
 
args
 

Member Enumeration Documentation

Enumerator
NONE 
CST 
VAR 
POS 
NEG 
ADD 
SUB 
MUL 
DIV 

Constructor & Destructor Documentation

otawa::ExpNode::ExpNode ( ilp::Var v)
inline

References args, and var().

otawa::ExpNode::ExpNode ( double  cst)
inline

References args, and cst().

otawa::ExpNode::ExpNode ( kind_t  kind,
ExpNode arg 
)
inline

References arg(), args, knd, NEG, and POS.

otawa::ExpNode::ExpNode ( kind_t  kind,
ExpNode arg1,
ExpNode arg2 
)
inline

References ADD, arg1(), arg2(), args, and knd.

Member Function Documentation

ExpNode * otawa::ExpNode::arg ( void  ) const
inline

References args, knd, NEG, and POS.

Referenced by ExpNode(), and otawa::ipet::ConstraintLoader::normalize().

ExpNode* otawa::ExpNode::arg1 ( void  ) const
inline

Referenced by ExpNode().

ExpNode* otawa::ExpNode::arg2 ( void  ) const
inline

Referenced by ExpNode().

double otawa::ExpNode::cst ( void  ) const
inline

Referenced by ExpNode().

ExpNode::kind_t otawa::ExpNode::kind ( void  ) const
inline

References knd.

Referenced by otawa::ipet::ConstraintLoader::normalize().

ilp::Var* otawa::ExpNode::var ( void  ) const
inline

Referenced by ExpNode().

Member Data Documentation

ExpNode * otawa::ExpNode::arg1
inline
ExpNode * otawa::ExpNode::arg2
inline
union { ... } otawa::ExpNode::args

Referenced by arg(), and ExpNode().

struct { ... } otawa::ExpNode::bin
double otawa::ExpNode::cst
inline
kind_t otawa::ExpNode::knd
private

Referenced by arg(), ExpNode(), and kind().

ExpNode* otawa::ExpNode::una
ilp::Var * otawa::ExpNode::var
inline

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