|
template<typename Pattern > |
bool | retdec::bin2llvmir::st_match::match (SymbolicTree &st, const Pattern &p) |
|
template<typename LTy , typename RTy > |
match_combine_or< LTy, RTy > | retdec::bin2llvmir::st_match::m_CombineOr (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L || R. More...
|
|
template<typename LTy , typename RTy > |
match_combine_and< LTy, RTy > | retdec::bin2llvmir::st_match::m_CombineAnd (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L && R. More...
|
|
template<typename LHS , typename RHS > |
AnyBinaryOp_match< LHS, RHS > | retdec::bin2llvmir::st_match::m_BinOp (const LHS &L, const RHS &R, llvm::BinaryOperator **insn=nullptr) |
|
template<typename LHS , typename RHS > |
AnyBinaryOp_match< LHS, RHS, true > | retdec::bin2llvmir::st_match::m_c_BinOp (const LHS &L, const RHS &R, llvm::BinaryOperator **insn=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Add > | retdec::bin2llvmir::st_match::m_Add (const LHS &L, const RHS &R, llvm::BinaryOperator **add=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::FAdd > | retdec::bin2llvmir::st_match::m_FAdd (const LHS &L, const RHS &R, llvm::BinaryOperator **fadd=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Sub > | retdec::bin2llvmir::st_match::m_Sub (const LHS &L, const RHS &R, llvm::BinaryOperator **sub=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::FSub > | retdec::bin2llvmir::st_match::m_FSub (const LHS &L, const RHS &R, llvm::BinaryOperator **fsub=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Mul > | retdec::bin2llvmir::st_match::m_Mul (const LHS &L, const RHS &R, llvm::BinaryOperator **mul=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::FMul > | retdec::bin2llvmir::st_match::m_FMul (const LHS &L, const RHS &R, llvm::BinaryOperator **fmul=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::UDiv > | retdec::bin2llvmir::st_match::m_UDiv (const LHS &L, const RHS &R, llvm::BinaryOperator **udiv=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::SDiv > | retdec::bin2llvmir::st_match::m_SDiv (const LHS &L, const RHS &R, llvm::BinaryOperator **sdiv=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::FDiv > | retdec::bin2llvmir::st_match::m_FDiv (const LHS &L, const RHS &R, llvm::BinaryOperator **fdiv=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::URem > | retdec::bin2llvmir::st_match::m_URem (const LHS &L, const RHS &R, llvm::BinaryOperator **urem=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::SRem > | retdec::bin2llvmir::st_match::m_SRem (const LHS &L, const RHS &R, llvm::BinaryOperator **srem=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::FRem > | retdec::bin2llvmir::st_match::m_FRem (const LHS &L, const RHS &R, llvm::BinaryOperator **frem=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::And > | retdec::bin2llvmir::st_match::m_And (const LHS &L, const RHS &R, llvm::BinaryOperator **andi=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Or > | retdec::bin2llvmir::st_match::m_Or (const LHS &L, const RHS &R, llvm::BinaryOperator **ori=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Xor > | retdec::bin2llvmir::st_match::m_Xor (const LHS &L, const RHS &R, llvm::BinaryOperator **xori=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Shl > | retdec::bin2llvmir::st_match::m_Shl (const LHS &L, const RHS &R, llvm::BinaryOperator **shl=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::LShr > | retdec::bin2llvmir::st_match::m_LShr (const LHS &L, const RHS &R, llvm::BinaryOperator **lshr=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::AShr > | retdec::bin2llvmir::st_match::m_AShr (const LHS &L, const RHS &R, llvm::BinaryOperator **ashr=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Add, true > | retdec::bin2llvmir::st_match::m_c_Add (const LHS &L, const RHS &R, llvm::BinaryOperator **add=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Mul, true > | retdec::bin2llvmir::st_match::m_c_Mul (const LHS &L, const RHS &R, llvm::BinaryOperator **mul=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::And, true > | retdec::bin2llvmir::st_match::m_c_And (const LHS &L, const RHS &R, llvm::BinaryOperator **andi=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Or, true > | retdec::bin2llvmir::st_match::m_c_Or (const LHS &L, const RHS &R, llvm::BinaryOperator **ori=nullptr) |
|
template<typename LHS , typename RHS > |
BinaryOp_match< LHS, RHS, llvm::Instruction::Xor, true > | retdec::bin2llvmir::st_match::m_c_Xor (const LHS &L, const RHS &R, llvm::BinaryOperator **xori=nullptr) |
|
template<typename LHS > |
not_match< LHS > | retdec::bin2llvmir::st_match::m_Not (const LHS &L) |
|
template<typename LHS > |
neg_match< LHS > | retdec::bin2llvmir::st_match::m_Neg (const LHS &L) |
| Match an integer negate. More...
|
|
template<typename LHS , typename RHS > |
CmpClass_match< LHS, RHS, llvm::CmpInst, llvm::CmpInst::Predicate > | retdec::bin2llvmir::st_match::m_Cmp (llvm::CmpInst::Predicate &Pred, const LHS &L, const RHS &R, llvm::CmpInst **cmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_match< LHS, RHS, llvm::ICmpInst, llvm::ICmpInst::Predicate > | retdec::bin2llvmir::st_match::m_ICmp (llvm::ICmpInst::Predicate &Pred, const LHS &L, const RHS &R, llvm::ICmpInst **icmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_match< LHS, RHS, llvm::ICmpInst, llvm::ICmpInst::Predicate, true > | retdec::bin2llvmir::st_match::m_c_ICmp (llvm::ICmpInst::Predicate &Pred, const LHS &L, const RHS &R, llvm::ICmpInst **icmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_match< LHS, RHS, llvm::FCmpInst, llvm::FCmpInst::Predicate > | retdec::bin2llvmir::st_match::m_FCmp (llvm::FCmpInst::Predicate &Pred, const LHS &L, const RHS &R, llvm::FCmpInst **fcmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_pred_match< LHS, RHS, llvm::CmpInst, llvm::CmpInst::Predicate > | retdec::bin2llvmir::st_match::m_Cmp (llvm::CmpInst::Predicate Pred, const LHS &L, const RHS &R, llvm::CmpInst **cmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_pred_match< LHS, RHS, llvm::ICmpInst, llvm::ICmpInst::Predicate > | retdec::bin2llvmir::st_match::m_ICmp (llvm::ICmpInst::Predicate Pred, const LHS &L, const RHS &R, llvm::ICmpInst **icmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_pred_match< LHS, RHS, llvm::ICmpInst, llvm::ICmpInst::Predicate, true > | retdec::bin2llvmir::st_match::m_c_ICmp (llvm::ICmpInst::Predicate Pred, const LHS &L, const RHS &R, llvm::ICmpInst **icmp=nullptr) |
|
template<typename LHS , typename RHS > |
CmpClass_pred_match< LHS, RHS, llvm::FCmpInst, llvm::FCmpInst::Predicate > | retdec::bin2llvmir::st_match::m_FCmp (llvm::FCmpInst::Predicate Pred, const LHS &L, const RHS &R, llvm::FCmpInst **fcmp=nullptr) |
|
template<typename OpTy > |
LoadClass_match< OpTy > | retdec::bin2llvmir::st_match::m_Load (const OpTy &Op, llvm::LoadInst **l=nullptr) |
|
bind_ty< llvm::Value > | retdec::bin2llvmir::st_match::m_Value (llvm::Value *&V) |
|
bind_ty< const llvm::Value > | retdec::bin2llvmir::st_match::m_Value (const llvm::Value *&V) |
|
bind_ty< llvm::BinaryOperator > | retdec::bin2llvmir::st_match::m_BinOp (llvm::BinaryOperator *&I) |
|
bind_ty< llvm::ConstantInt > | retdec::bin2llvmir::st_match::m_ConstantInt (llvm::ConstantInt *&CI) |
|
bind_ty< llvm::Constant > | retdec::bin2llvmir::st_match::m_Constant (llvm::Constant *&C) |
|
bind_ty< llvm::ConstantFP > | retdec::bin2llvmir::st_match::m_ConstantFP (llvm::ConstantFP *&C) |
|
bind_ty< llvm::GlobalVariable > | retdec::bin2llvmir::st_match::m_GlobalVariable (llvm::GlobalVariable *&G) |
|
bind_ty< llvm::Instruction > | retdec::bin2llvmir::st_match::m_Instruction (llvm::Instruction *&I) |
|
template<typename Class > |
bind_ty< Class > | retdec::bin2llvmir::st_match::m_Instruction (Class *&I) |
|
class_match< llvm::Value > | retdec::bin2llvmir::st_match::m_Value () |
|
class_match< llvm::BinaryOperator > | retdec::bin2llvmir::st_match::m_BinOp () |
|
class_match< llvm::CmpInst > | retdec::bin2llvmir::st_match::m_Cmp () |
|
class_match< llvm::ConstantInt > | retdec::bin2llvmir::st_match::m_ConstantInt () |
| Match a ConstantInt with a specific value. More...
|
|
class_match< llvm::UndefValue > | retdec::bin2llvmir::st_match::m_Undef () |
|
class_match< llvm::Constant > | retdec::bin2llvmir::st_match::m_Constant () |
|
class_match< llvm::Instruction > | retdec::bin2llvmir::st_match::m_Instruction () |
|
apint_match | retdec::bin2llvmir::st_match::m_APInt (const llvm::APInt *&Res) |
| Match a ConstantInt, binding the specified pointer to the contained APInt. More...
|
|
apfloat_match | retdec::bin2llvmir::st_match::m_APFloat (const llvm::APFloat *&Res) |
| Match a ConstantFP, binding the specified pointer to the contained APFloat. More...
|
|
match_zero | retdec::bin2llvmir::st_match::m_Zero () |
| Match an arbitrary zero/null constant. This includes zero_initializer for vectors and ConstantPointerNull for pointers. More...
|
|
match_not_zero | retdec::bin2llvmir::st_match::m_not_Zero () |
| Match an arbitrary non-zero constant integer. More...
|
|
match_not_zero | retdec::bin2llvmir::st_match::m_not_Zero (llvm::ConstantInt *&CI) |
| Match and bind an arbitrary non-zero constant integer. More...
|
|
match_neg_zero | retdec::bin2llvmir::st_match::m_NegZero () |
| Match an arbitrary zero/null constant. This includes zero_initializer for vectors and ConstantPointerNull for pointers. For floating point constants, this will match negative zero but not positive zero. More...
|
|
match_any_zero | retdec::bin2llvmir::st_match::m_AnyZero () |
|
- Match an arbitrary zero/null constant. This includes zero_initializer for vectors and ConstantPointerNull for pointers. For floating point constants, this will match negative zero and positive zero
More...
|
|
match_one | retdec::bin2llvmir::st_match::m_One () |
|
specificval_ty | retdec::bin2llvmir::st_match::m_Specific (const llvm::Value *V) |
| Match if we have a specific specified value. More...
|
|
bind_const_intval_ty | retdec::bin2llvmir::st_match::m_ConstantInt (uint64_t &V) |
| Match a ConstantInt and bind to its value. This does not match ConstantInts wider than 64-bits. More...
|
|
specific_intval | retdec::bin2llvmir::st_match::m_SpecificInt (uint64_t V) |
|
specific_fpval | retdec::bin2llvmir::st_match::m_SpecificFP (double V) |
|
specific_fpval | retdec::bin2llvmir::st_match::m_FPOne () |
| Match a float 1.0. More...
|
|