Otawa
0.10
|
Classes | |
class | FilterBuilder |
class | SEAdd |
Addition. More... | |
class | SEAddr |
Memory reference. More... | |
class | SECmp |
Compare symbolic expression This class define three type of compare expression: condition (if): SECmp(operator, expression) undetermined compare: SECmp(CMP, exp1, exp2) determined compare: SECmp(operator, exp1, exp2) More... | |
class | SEConst |
Constants. More... | |
class | SENeg |
Negation. More... | |
class | SEReg |
Register. More... | |
class | SymbExpr |
Symbolic expression. More... | |
Typedefs | |
typedef clp::Value | V |
typedef struct otawa::se::path_t | path_t |
Enumerations | |
enum | op_t { NONE, CONST, ADDR, REG, NEG, ADD, CMP, CMPU, LE, LT, GE, GT, EQ, NE, ULE, ULT, UGE, UGT, OR } |
Defined operators. More... | |
Functions | |
void | applyFilter (V &v, se::op_t cmp_op, V f) |
Apply a filter on the value. More... | |
op_t | reverse (op_t logop) |
Identifier< Vector< SECmp * > > | REG_FILTERS ("otawa::se::REG_FILTERS") |
Identifier< Vector< SECmp * > > | ADDR_FILTERS ("otawa::se::ADDR_FILTERS") |
SECmp * | getFilterForReg (SECmp *se, V reg, clp::ClpStatePack &pack, Inst *i, int sem, Vector< V > &used_reg, Vector< V > &used_addr) |
SECmp * | getFilterForAddr (SECmp *se, V addr, clp::ClpStatePack &pack, Inst *i, int sem, Vector< V > &used_reg, Vector< V > &used_addr) |
Variables | |
Identifier< Vector< SECmp * > > | REG_FILTERS |
Identifier< Vector< SECmp * > > | ADDR_FILTERS |
typedef struct otawa::se::path_t otawa::se::path_t |
typedef clp::Value otawa::se::V |
enum otawa::se::op_t |
Defined operators.
Identifier<Vector<SECmp *> > otawa::se::ADDR_FILTERS | ( | "otawa::se::ADDR_FILTERS" | ) |
void otawa::se::applyFilter | ( | V & | v, |
se::op_t | cmp_op, | ||
V | f | ||
) |
Apply a filter on the value.
v | the CLP to be filtred |
cmp_op | compare operator |
f | CLP to filter with |
References EQ, GE, otawa::clp::Value::ge(), otawa::clp::Value::geu(), GT, otawa::clp::Value::inter(), LE, otawa::clp::Value::le(), otawa::clp::Value::leu(), LT, NE, otawa::clp::Value::start(), otawa::clp::Value::stop(), otawa::clp::Value::swrap(), UGE, UGT, ULE, ULT, and otawa::clp::Value::uwrap().
SECmp* otawa::se::getFilterForAddr | ( | SECmp * | se, |
V | addr, | ||
clp::ClpStatePack & | pack, | ||
Inst * | i, | ||
int | sem, | ||
Vector< V > & | used_reg, | ||
Vector< V > & | used_addr | ||
) |
References otawa::se::SymbExpr::a(), ADDR, otawa::ProgItem::address(), otawa::se::SECmp::asString(), otawa::se::SymbExpr::b(), otawa::se::SECmp::canonize(), cerr, CMPU, CONST, otawa::clp::State::get(), otawa::clp::Value::isConst(), elm::genstruct::Vector< T >::length(), otawa::se::SymbExpr::op(), otawa::clp::REG, otawa::se::SymbExpr::replace(), otawa::clp::ClpStatePack::state_before(), and TRACEGF.
Referenced by otawa::se::FilterBuilder::makeFilters().
SECmp* otawa::se::getFilterForReg | ( | SECmp * | se, |
V | reg, | ||
clp::ClpStatePack & | pack, | ||
Inst * | i, | ||
int | sem, | ||
Vector< V > & | used_reg, | ||
Vector< V > & | used_addr | ||
) |
References otawa::se::SymbExpr::a(), otawa::ProgItem::address(), otawa::se::SECmp::asString(), otawa::se::SymbExpr::b(), otawa::se::SECmp::canonize(), cerr, CMPU, CONST, otawa::clp::State::get(), otawa::clp::Value::isConst(), elm::genstruct::Vector< T >::length(), otawa::clp::Value::lower(), otawa::se::SymbExpr::op(), otawa::clp::REG, otawa::se::SymbExpr::replace(), otawa::clp::ClpStatePack::state_before(), and TRACEGF.
Referenced by otawa::se::FilterBuilder::makeFilters().
Identifier<Vector<SECmp *> > otawa::se::REG_FILTERS | ( | "otawa::se::REG_FILTERS" | ) |
op_t otawa::se::reverse | ( | op_t | logop | ) |
References GE, GT, LE, LT, UGE, UGT, ULE, and ULT.
Referenced by otawa::clp::Value::add(), and otawa::clp::Value::sub().
Identifier<Vector<SECmp *> > otawa::se::ADDR_FILTERS("otawa::se::ADDR_FILTERS") |
Referenced by otawa::se::FilterBuilder::getFilters().
Identifier<Vector<SECmp *> > otawa::se::REG_FILTERS("otawa::se::REG_FILTERS") |
Referenced by otawa::se::FilterBuilder::getFilters().