Lines Matching refs:SExpr
63 static bool isIncompletePhi(const til::SExpr *E) {
71 til::SExpr *SExprBuilder::lookupStmt(const Stmt *S) {
88 /// Translate a clang expression in an attribute to a til::SExpr.
149 /// 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))
272 til::SExpr *SExprBuilder::translateDeclRefExpr(const DeclRefExpr *DRE,
301 til::SExpr *SExprBuilder::translateCXXThisExpr(const CXXThisExpr *TE,
310 static const ValueDecl *getValueDeclFromSExpr(const til::SExpr *E) {
322 static bool hasAnyPointerType(const til::SExpr *E) {
345 til::SExpr *SExprBuilder::translateMemberExpr(const MemberExpr *ME,
347 til::SExpr *BE = translate(ME->getBase(), Ctx);
348 til::SExpr *E = new (Arena) til::SApply(BE);
360 til::SExpr *SExprBuilder::translateObjCIVarRefExpr(const ObjCIvarRefExpr *IVRE,
362 til::SExpr *BE = translate(IVRE->getBase(), Ctx);
363 til::SExpr *E = new (Arena) til::SApply(BE);
373 til::SExpr *SExprBuilder::translateCallExpr(const CallExpr *CE,
386 return const_cast<til::SExpr *>(
387 translateAttrExpr(At->getArg(), &LRCallCtx).sexpr());
392 til::SExpr *E = translate(CE->getCallee(), Ctx);
394 til::SExpr *A = translate(Arg, Ctx);
400 til::SExpr *SExprBuilder::translateCXXMemberCallExpr(
415 til::SExpr *SExprBuilder::translateCXXOperatorCallExpr(
429 til::SExpr *SExprBuilder::translateUnaryOperator(const UnaryOperator *UO,
478 til::SExpr *SExprBuilder::translateBinOp(til::TIL_BinaryOpcode Op,
481 til::SExpr *E0 = translate(BO->getLHS(), Ctx);
482 til::SExpr *E1 = translate(BO->getRHS(), Ctx);
489 til::SExpr *SExprBuilder::translateBinAssign(til::TIL_BinaryOpcode Op,
495 til::SExpr *E0 = translate(LHS, Ctx);
496 til::SExpr *E1 = translate(RHS, Ctx);
499 til::SExpr *CV = nullptr;
506 til::SExpr *Arg = CV ? CV : new (Arena) til::Load(E0);
515 til::SExpr *SExprBuilder::translateBinaryOperator(const BinaryOperator *BO,
561 til::SExpr *SExprBuilder::translateCastExpr(const CastExpr *CE,
567 til::SExpr *E0 = lookupVarDecl(DRE->getDecl());
571 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
581 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
586 til::SExpr *E0 = translate(CE->getSubExpr(), Ctx);
594 til::SExpr *
597 til::SExpr *E0 = translate(E->getBase(), Ctx);
598 til::SExpr *E1 = translate(E->getIdx(), Ctx);
602 til::SExpr *
611 til::SExpr *
617 til::SExpr* SE = translate(E, Ctx);
635 til::SExpr *SExprBuilder::addStatement(til::SExpr* E, const Stmt *S,
648 til::SExpr *SExprBuilder::lookupVarDecl(const ValueDecl *VD) {
658 static void maybeUpdateVD(til::SExpr *E, const ValueDecl *VD) {
668 til::SExpr *SExprBuilder::addVarDecl(const ValueDecl *VD, til::SExpr *E) {
677 til::SExpr *SExprBuilder::updateVarDecl(const ValueDecl *VD, til::SExpr *E) {
681 til::SExpr *Ptr = new (Arena) til::LiteralPtr(VD);
682 til::SExpr *St = new (Arena) til::Store(Ptr, E);
693 void SExprBuilder::makePhiNodeVar(unsigned i, unsigned NPreds, til::SExpr *E) {
697 til::SExpr *CurrE = CurrentLVarMap[i].second;
798 for (til::SExpr *PE : BB->arguments()) {
803 til::SExpr *E = lookupVarDecl(Ph->clangDecl());
835 til::SExpr *Lp = new (Arena) til::LiteralPtr(Pm);
836 til::SExpr *Ld = new (Arena) til::Load(Lp);
837 til::SExpr *V = addStatement(Ld, nullptr, Pm);
884 til::SExpr *E = translate(S, nullptr);
890 til::SExpr *Sf = new (Arena) til::LiteralPtr(VD);
891 til::SExpr *Dr = new (Arena) til::LiteralPtr(DD);
892 til::SExpr *Ap = new (Arena) til::Apply(Dr, Sf);
893 til::SExpr *E = new (Arena) til::Call(Ap);
914 til::SExpr *C = translate(B->getTerminatorCondition(true), nullptr);