ilasynth
1.0
ILASynth: Template-based ILA Synthesis Engine
|
#include <ast.hpp>
Public Member Functions | |
NodeRef () | |
NodeRef (Node *node) | |
NodeRef (const nptr_t &ptr) | |
NodeRef (const NodeRef &nr) | |
~NodeRef () | |
NodeRef & | operator= (const NodeRef &other) |
std::string | getName () const |
NodeType | getType () const |
bool | equal (NodeRef *other) const |
NodeRef * | complement () const |
NodeRef * | negate () const |
NodeRef * | logicalAnd (NodeRef *other) const |
NodeRef * | logicalAndInt (int r) const |
NodeRef * | logicalAndRInt (int r) const |
NodeRef * | logicalOr (NodeRef *other) const |
NodeRef * | logicalOrInt (int r) const |
NodeRef * | logicalOrRInt (int l) const |
NodeRef * | logicalXor (NodeRef *other) const |
NodeRef * | logicalXorInt (int r) const |
NodeRef * | logicalXorRInt (int l) const |
NodeRef * | add (NodeRef *other) const |
NodeRef * | addInt (int r) const |
NodeRef * | raddInt (int r) const |
NodeRef * | sub (NodeRef *other) const |
NodeRef * | subInt (int r) const |
NodeRef * | rsubInt (int r) const |
NodeRef * | udiv (NodeRef *other) const |
NodeRef * | udivInt (int r) const |
NodeRef * | rudivInt (int r) const |
NodeRef * | urem (NodeRef *r) |
NodeRef * | uremInt (int r) |
NodeRef * | ruremInt (int l) |
NodeRef * | shl (NodeRef *other) const |
NodeRef * | shlInt (int r) const |
NodeRef * | rshlInt (int r) const |
NodeRef * | lshr (NodeRef *other) const |
NodeRef * | lshrInt (int r) const |
NodeRef * | rlshrInt (int r) const |
NodeRef * | mul (NodeRef *other) const |
NodeRef * | mulInt (int r) const |
NodeRef * | rmulInt (int r) const |
NodeRef * | eq (NodeRef &other) const |
NodeRef * | neq (NodeRef &other) const |
NodeRef * | ult (NodeRef &other) const |
NodeRef * | ugt (NodeRef &other) const |
NodeRef * | ule (NodeRef &other) const |
NodeRef * | uge (NodeRef &other) const |
NodeRef * | eqInt (int r) const |
NodeRef * | neqInt (int r) const |
NodeRef * | ultInt (int r) const |
NodeRef * | ugtInt (int r) const |
NodeRef * | uleInt (int r) const |
NodeRef * | ugeInt (int r) const |
NodeRef * | slice (int hi, int lo) const |
NodeRef * | getItem (NodeRef *idx) const |
NodeRef * | getItemInt (int idx) const |
void | setRefName (const std::string &refName) |
py::object | value () const |
size_t | hash () const |
Static Public Member Functions | |
static NodeRef * | load (NodeRef *mem, NodeRef *addr) |
static NodeRef * | loadblock (NodeRef *mem, NodeRef *addr, int chunks) |
static NodeRef * | loadblockB (NodeRef *mem, NodeRef *addr, int chunks) |
static NodeRef * | store (NodeRef *mem, NodeRef *addr, NodeRef *data) |
static NodeRef * | storeblock (NodeRef *mem, NodeRef *addr, NodeRef *data) |
static NodeRef * | storeblockB (NodeRef *mem, NodeRef *addr, NodeRef *data) |
static NodeRef * | logicalXnor (NodeRef *l, NodeRef *r) |
static NodeRef * | logicalNand (NodeRef *l, NodeRef *r) |
static NodeRef * | logicalNor (NodeRef *l, NodeRef *r) |
static NodeRef * | sdiv (NodeRef *l, NodeRef *r) |
static NodeRef * | sdivInt (NodeRef *l, int r) |
static NodeRef * | rsdivInt (int l, NodeRef *r) |
static NodeRef * | smod (NodeRef *l, NodeRef *r) |
static NodeRef * | smodInt (NodeRef *l, int r) |
static NodeRef * | rsmodInt (int l, NodeRef *r) |
static NodeRef * | srem (NodeRef *l, NodeRef *r) |
static NodeRef * | sremInt (NodeRef *l, int r) |
static NodeRef * | rsremInt (int l, NodeRef *r) |
static NodeRef * | ashr (NodeRef *l, NodeRef *r) |
static NodeRef * | ashrInt (NodeRef *l, int r) |
static NodeRef * | rashrInt (int l, NodeRef *r) |
static NodeRef * | slt (NodeRef &l, NodeRef &r) |
static NodeRef * | sgt (NodeRef &l, NodeRef &r) |
static NodeRef * | sle (NodeRef &l, NodeRef &r) |
static NodeRef * | sge (NodeRef &l, NodeRef &r) |
static NodeRef * | sltInt (NodeRef &l, int r) |
static NodeRef * | sgtInt (NodeRef &l, int r) |
static NodeRef * | sleInt (NodeRef &l, int r) |
static NodeRef * | sgeInt (NodeRef &l, int r) |
static NodeRef * | concat (NodeRef *lo, NodeRef *hi) |
static NodeRef * | concatList (const py::list &l) |
static NodeRef * | lrotate (NodeRef *obj, int par) |
static NodeRef * | rrotate (NodeRef *obj, int par) |
static NodeRef * | extract (const NodeRef *obj, int hi, int lo) |
static NodeRef * | zero_extend (NodeRef *obj, int outWidth) |
static NodeRef * | sign_extend (NodeRef *obg, int outWidth) |
static NodeRef * | nonzero (NodeRef *obj) |
static NodeRef * | imply (NodeRef &p, NodeRef &q) |
static NodeRef * | ite (NodeRef &cond, NodeRef &trueExp, NodeRef &falseExp) |
static NodeRef * | appfunc0 (NodeRef *fun) |
static NodeRef * | appfunc1 (NodeRef *fun, NodeRef *arg) |
static NodeRef * | appfunc2 (NodeRef *fun, NodeRef *arg0, NodeRef *arg1) |
static NodeRef * | appfuncL (NodeRef *fun, const py::list &l) |
static NodeRef * | choice2 (const std::string &name, NodeRef *e1, NodeRef *e2) |
static NodeRef * | choice3 (const std::string &name, NodeRef *e1, NodeRef *e2, NodeRef *e3) |
static NodeRef * | choice4 (const std::string &name, NodeRef *e1, NodeRef *e2, NodeRef *e3, NodeRef *e4) |
static NodeRef * | choice5 (const std::string &name, NodeRef *e1, NodeRef *e2, NodeRef *e3, NodeRef *e4, NodeRef *e5) |
static NodeRef * | choice6 (const std::string &name, NodeRef *e1, NodeRef *e2, NodeRef *e3, NodeRef *e4, NodeRef *e5, NodeRef *e6) |
static NodeRef * | choiceL (const std::string &name, const py::list &l) |
static NodeRef * | inRange (const std::string &name, NodeRef *lo, NodeRef *hi) |
static NodeRef * | readSlice (const std::string &name, NodeRef *bv, int w) |
static NodeRef * | readChunk (const std::string &name, NodeRef *bv, int w) |
static NodeRef * | writeSlice (const std::string &name, NodeRef *bv, NodeRef *wr) |
static NodeRef * | writeChunk (const std::string &name, NodeRef *bv, NodeRef *wr) |
static NodeRef * | simplify (NodeRef &assump, NodeRef &exp) |
Public Attributes | |
nptr_t | node |
Private Member Functions | |
NodeRef * | _unOp (BoolOp::Op boolOp, BitvectorOp::Op bvOp, const char *opName) const |
NodeRef * | _binOp (BoolOp::Op boolOp, BitvectorOp::Op bvOp, const char *opName, NodeRef *other) const |
NodeRef * | _binOp (BitvectorOp::Op op, NodeRef *other) const |
NodeRef * | _binOp (BitvectorOp::Op op, int r) const |
NodeRef * | _binOpR (BitvectorOp::Op op, int r) const |
NodeRef * | _cmpOp (BoolOp::Op op, NodeRef &other, bool bvtype) const |
NodeRef * | _cmpOp (BoolOp::Op op, int r) const |
Static Private Member Functions | |
static NodeRef * | _binOp (BoolOp::Op boolOp, BitvectorOp::Op bvOp, const char *opName, NodeRef *l, NodeRef *r) |
static NodeRef * | _binOp (BoolOp::Op op, NodeRef &l, NodeRef &r) |
static NodeRef * | _binOp (BitvectorOp::Op op, NodeRef *l, NodeRef *r) |
static NodeRef * | _binOp (BitvectorOp::Op Op, NodeRef *l, int r) |
static NodeRef * | _binOpR (BitvectorOp::Op op, int l, NodeRef *r) |
static NodeRef * | _cmpOp (BoolOp::Op op, NodeRef &l, NodeRef &r, bool bvtype) |
static NodeRef * | _cmpOp (BoolOp::Op op, NodeRef &l, int r) |
static NodeRef * | _triOp (BoolOp::Op boolOp, BitvectorOp::Op bvOp, MemOp::Op memOp, NodeRef &arg0, NodeRef &arg1, NodeRef &arg2) |
static NodeRef * | _naryOp (BitvectorOp::Op bvOp, nptr_vec_t &args) |
static NodeRef * | _extractOp (const NodeRef *bv, int beg, int end) |
static NodeRef * | _choice (const std::string &name, const nptr_vec_t &args) |
ilasynth::NodeRef::NodeRef | ( | ) |
ilasynth::NodeRef::NodeRef | ( | Node * | node | ) |
ilasynth::NodeRef::NodeRef | ( | const nptr_t & | ptr | ) |
ilasynth::NodeRef::NodeRef | ( | const NodeRef & | nr | ) |
ilasynth::NodeRef::~NodeRef | ( | ) |
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
NodeRef* ilasynth::NodeRef::addInt | ( | int | r | ) | const |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
NodeRef* ilasynth::NodeRef::complement | ( | ) | const |
|
static |
NodeRef* ilasynth::NodeRef::eqInt | ( | int | r | ) | const |
bool ilasynth::NodeRef::equal | ( | NodeRef * | other | ) | const |
NodeRef* ilasynth::NodeRef::getItemInt | ( | int | idx | ) | const |
std::string ilasynth::NodeRef::getName | ( | ) | const |
NodeType ilasynth::NodeRef::getType | ( | ) | const |
size_t ilasynth::NodeRef::hash | ( | ) | const |
|
static |
|
static |
NodeRef* ilasynth::NodeRef::logicalAndInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::logicalAndRInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::logicalOrInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::logicalOrRInt | ( | int | l | ) | const |
NodeRef* ilasynth::NodeRef::logicalXorInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::logicalXorRInt | ( | int | l | ) | const |
NodeRef* ilasynth::NodeRef::lshrInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::mulInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::negate | ( | ) | const |
NodeRef* ilasynth::NodeRef::neqInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::raddInt | ( | int | r | ) | const |
|
static |
|
static |
NodeRef* ilasynth::NodeRef::rlshrInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::rmulInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::rshlInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::rsubInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::rudivInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::ruremInt | ( | int | l | ) |
void ilasynth::NodeRef::setRefName | ( | const std::string & | refName | ) |
NodeRef* ilasynth::NodeRef::shlInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::slice | ( | int | hi, |
int | lo | ||
) | const |
|
static |
|
static |
NodeRef* ilasynth::NodeRef::subInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::udivInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::ugeInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::ugtInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::uleInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::ultInt | ( | int | r | ) | const |
NodeRef* ilasynth::NodeRef::uremInt | ( | int | r | ) |
py::object ilasynth::NodeRef::value | ( | ) | const |
|
static |
|
static |
nptr_t ilasynth::NodeRef::node |