Home | History | Annotate | Download | only in Analysis

Lines Matching refs:SExpr

62 static bool isIncompletePhi(const til::SExpr *E) {
70 til::SExpr *SExprBuilder::lookupStmt(const Stmt *S) {
87 /// \brief Translate a clang expression in an attribute to a til::SExpr.
149 /// \brief Translate a clang expression in an attribute to a til::SExpr.
180 til::SExpr *E = translate(AttrExp, Ctx);
198 til::SExpr *SExprBuilder::translate(const Stmt *S, CallingContext *Ctx) {
204 if (til::SExpr *E = lookupStmt(S))
266 til::SExpr *SExprBuilder::translateDeclRefExpr(const DeclRefExpr *DRE,
290 til::SExpr *SExprBuilder::translateCXXThisExpr(const CXXThisExpr *TE,
299 static const ValueDecl *getValueDeclFromSExpr(const til::SExpr *E) {
311 static bool hasCppPointerType(const til::SExpr *E) {
334 til::SExpr *SExprBuilder::translateMemberExpr(const MemberExpr *ME,
336 til::SExpr *BE = translate(ME->getBase(), Ctx);
337 til::SExpr *E = new (Arena) til::SApply(BE);
350 til::SExpr *SExprBuilder::translateCallExpr(const CallExpr *CE,
362 return const_cast<til::SExpr*>(
363 translateAttrExpr(At->getArg(), &LRCallCtx).sexpr());
367 til::SExpr *E = translate(CE->getCallee(), Ctx);
369 til::SExpr *A = translate(Arg, Ctx);
375 til::SExpr *SExprBuilder::translateCXXMemberCallExpr(
390 til::SExpr *SExprBuilder::translateCXXOperatorCallExpr(
404 til::SExpr *SExprBuilder::translateUnaryOperator(const UnaryOperator *UO,
454 til::SExpr *SExprBuilder::translateBinOp(til::TIL_BinaryOpcode Op,
457 til::SExpr *E0 = translate(BO->getLHS(), Ctx);
458 til::SExpr *E1 = translate(BO->getRHS(), Ctx);
465 til::SExpr
471 til::SExpr *E0 = translate(LHS, Ctx);
472 til::SExpr *E1 = translate(RHS, Ctx);
475 til::SExpr *CV = nullptr;
482 til::SExpr *Arg = CV ? CV : new (Arena) til::Load(E0);
491 til::SExpr *SExprBuilder::translateBinaryOperator(const BinaryOperator *BO,
536 til::SExpr *SExprBuilder::translateCastExpr(const CastExpr *CE,
542 til::SExpr *E0 = lookupVarDecl(DRE->getDecl());
546 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
556 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
561 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
569 til::SExpr *
572 til::SExpr *E0 = translate(E->getBase(), Ctx);
573 til::SExpr *E1 = translate(E->getIdx(), Ctx);
577 til::SExpr *
586 til::SExpr *
592 til::SExpr* SE = translate(E, Ctx);
611 til::SExpr *SExprBuilder::addStatement(til::SExpr* E, const Stmt *S,
624 til::SExpr *SExprBuilder::lookupVarDecl(const ValueDecl *VD) {
634 static void maybeUpdateVD(til::SExpr *E, const ValueDecl *VD) {
644 til::SExpr *SExprBuilder::addVarDecl(const ValueDecl *VD, til::SExpr *E) {
653 til::SExpr *SExprBuilder::updateVarDecl(const ValueDecl *VD, til::SExpr *E) {
657 til::SExpr *Ptr = new (Arena) til::LiteralPtr(VD);
658 til::SExpr *St = new (Arena) til::Store(Ptr, E);
669 void SExprBuilder::makePhiNodeVar(unsigned i, unsigned NPreds, til::SExpr *E) {
673 til::SExpr *CurrE = CurrentLVarMap[i].second;
776 for (til::SExpr *PE : BB->arguments()) {
781 til::SExpr *E = lookupVarDecl(Ph->clangDecl());
813 til::SExpr *Lp = new (Arena) til::LiteralPtr(Pm);
814 til::SExpr *Ld = new (Arena) til::Load(Lp);
815 til::SExpr *V = addStatement(Ld, nullptr, Pm);
862 til::SExpr *E = translate(S, nullptr);
868 til::SExpr *Sf = new (Arena) til::LiteralPtr(VD);
869 til::SExpr *Dr = new (Arena) til::LiteralPtr(DD);
870 til::SExpr *Ap = new (Arena) til::Apply(Dr, Sf);
871 til::SExpr *E = new (Arena) til::Call(Ap);
892 til::SExpr *C = translate(B->getTerminatorCondition(true), nullptr);