Lines Matching refs:Vs

407   typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) {  in traverse()  argument
409 return Vs.reduceVariableRef(this); in traverse()
467 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
469 return Vs.traverse(Result, Ctx); in traverse()
495 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
496 return Vs.reduceUndefined(*this); in traverse()
516 template <class V> typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
517 return Vs.reduceWildcard(*this); in traverse()
550 template <class V> typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx);
578 typename V::R_SExpr Literal::traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
580 return Vs.reduceLiteral(*this); in traverse()
586 return Vs.reduceLiteralT(as<bool>()); in traverse()
591 return Vs.reduceLiteralT(as<int8_t>()); in traverse()
593 return Vs.reduceLiteralT(as<uint8_t>()); in traverse()
596 return Vs.reduceLiteralT(as<int16_t>()); in traverse()
598 return Vs.reduceLiteralT(as<uint16_t>()); in traverse()
601 return Vs.reduceLiteralT(as<int32_t>()); in traverse()
603 return Vs.reduceLiteralT(as<uint32_t>()); in traverse()
606 return Vs.reduceLiteralT(as<int64_t>()); in traverse()
608 return Vs.reduceLiteralT(as<uint64_t>()); in traverse()
616 return Vs.reduceLiteralT(as<float>()); in traverse()
618 return Vs.reduceLiteralT(as<double>()); in traverse()
624 return Vs.reduceLiteralT(as<StringRef>()); in traverse()
626 return Vs.reduceLiteralT(as<void*>()); in traverse()
630 return Vs.reduceLiteral(*this); in traverse()
648 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
649 return Vs.reduceLiteralPtr(*this); in traverse()
685 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
687 auto E0 = Vs.traverse(VarDecl->Definition, Vs.typeCtx(Ctx)); in traverse()
689 Variable *Nvd = Vs.enterScope(*VarDecl, E0); in traverse()
690 auto E1 = Vs.traverse(Body, Vs.declCtx(Ctx)); in traverse()
691 Vs.exitScope(*VarDecl); in traverse()
692 return Vs.reduceFunction(*this, Nvd, E1); in traverse()
740 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
744 Variable *Nvd = Vs.enterScope(*VarDecl, nullptr); in traverse()
745 auto E1 = Vs.traverse(Body, Vs.declCtx(Ctx)); in traverse()
746 Vs.exitScope(*VarDecl); in traverse()
748 return Vs.reduceSFunction(*this, Nvd, E1); in traverse()
780 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
781 auto Nt = Vs.traverse(ReturnType, Vs.typeCtx(Ctx)); in traverse()
782 auto Nb = Vs.traverse(Body, Vs.lazyCtx(Ctx)); in traverse()
783 return Vs.reduceCode(*this, Nt, Nb); in traverse()
815 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
816 auto Nr = Vs.traverse(Range, Vs.typeCtx(Ctx)); in traverse()
817 auto Nb = Vs.traverse(Body, Vs.lazyCtx(Ctx)); in traverse()
818 return Vs.reduceField(*this, Nr, Nb); in traverse()
854 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
855 auto Nf = Vs.traverse(Fun, Vs.subExprCtx(Ctx)); in traverse()
856 auto Na = Vs.traverse(Arg, Vs.subExprCtx(Ctx)); in traverse()
857 return Vs.reduceApply(*this, Nf, Na); in traverse()
891 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
892 auto Nf = Vs.traverse(Sfun, Vs.subExprCtx(Ctx)); in traverse()
893 typename V::R_SExpr Na = Arg ? Vs.traverse(Arg, Vs.subExprCtx(Ctx)) in traverse()
895 return Vs.reduceSApply(*this, Nf, Na); in traverse()
945 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
946 auto Nr = Vs.traverse(Rec, Vs.subExprCtx(Ctx)); in traverse()
947 return Vs.reduceProject(*this, Nr); in traverse()
979 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
980 auto Nt = Vs.traverse(Target, Vs.subExprCtx(Ctx)); in traverse()
981 return Vs.reduceCall(*this, Nt); in traverse()
1013 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1014 auto Nd = Vs.traverse(Dtype, Vs.declCtx(Ctx)); in traverse()
1015 return Vs.reduceAlloc(*this, Nd); in traverse()
1042 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1043 auto Np = Vs.traverse(Ptr, Vs.subExprCtx(Ctx)); in traverse()
1044 return Vs.reduceLoad(*this, Np); in traverse()
1072 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1073 auto Np = Vs.traverse(Dest, Vs.subExprCtx(Ctx)); in traverse()
1074 auto Nv = Vs.traverse(Source, Vs.subExprCtx(Ctx)); in traverse()
1075 return Vs.reduceStore(*this, Np, Nv); in traverse()
1108 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1109 auto Na = Vs.traverse(Array, Vs.subExprCtx(Ctx)); in traverse()
1110 auto Ni = Vs.traverse(Index, Vs.subExprCtx(Ctx)); in traverse()
1111 return Vs.reduceArrayIndex(*this, Na, Ni); in traverse()
1145 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1146 auto Na = Vs.traverse(Array, Vs.subExprCtx(Ctx)); in traverse()
1147 auto Ni = Vs.traverse(Index, Vs.subExprCtx(Ctx)); in traverse()
1148 return Vs.reduceArrayAdd(*this, Na, Ni); in traverse()
1184 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1185 auto Ne = Vs.traverse(Expr0, Vs.subExprCtx(Ctx)); in traverse()
1186 return Vs.reduceUnaryOp(*this, Ne); in traverse()
1229 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1230 auto Ne0 = Vs.traverse(Expr0, Vs.subExprCtx(Ctx)); in traverse()
1231 auto Ne1 = Vs.traverse(Expr1, Vs.subExprCtx(Ctx)); in traverse()
1232 return Vs.reduceBinaryOp(*this, Ne0, Ne1); in traverse()
1270 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1271 auto Ne = Vs.traverse(Expr0, Vs.subExprCtx(Ctx)); in traverse()
1272 return Vs.reduceCast(*this, Ne); in traverse()
1308 Phi(const Phi &P, ValArray &&Vs) : SExpr(P), Values(std::move(Vs)) {} in Phi() argument
1325 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1327 Nvs(Vs, Values.size()); in traverse()
1330 Nvs.push_back( Vs.traverse(Val, Vs.subExprCtx(Ctx)) ); in traverse()
1331 return Vs.reducePhi(*this, Nvs); in traverse()
1388 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1389 BasicBlock *Ntb = Vs.reduceBasicBlockRef(TargetBlock); in traverse()
1390 return Vs.reduceGoto(*this, Ntb); in traverse()
1438 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1439 auto Nc = Vs.traverse(Condition, Vs.subExprCtx(Ctx)); in traverse()
1440 BasicBlock *Ntb = Vs.reduceBasicBlockRef(Branches[0]); in traverse()
1441 BasicBlock *Nte = Vs.reduceBasicBlockRef(Branches[1]); in traverse()
1442 return Vs.reduceBranch(*this, Nc, Ntb, Nte); in traverse()
1472 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1473 auto Ne = Vs.traverse(Retval, Vs.subExprCtx(Ctx)); in traverse()
1474 return Vs.reduceReturn(*this, Ne); in traverse()
1614 typename V::R_BasicBlock traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1615 typename V::template Container<SExpr*> Nas(Vs, Args.size()); in traverse()
1616 typename V::template Container<SExpr*> Nis(Vs, Instrs.size()); in traverse()
1619 Vs.enterBasicBlock(*this); in traverse()
1622 auto Ne = Vs.traverse(E, Vs.subExprCtx(Ctx)); in traverse()
1626 auto Ne = Vs.traverse(E, Vs.subExprCtx(Ctx)); in traverse()
1629 auto Nt = Vs.traverse(TermInstr, Ctx); in traverse()
1632 Vs.exitBasicBlock(*this); in traverse()
1634 return Vs.reduceBasicBlock(*this, Nas, Nis, Nt); in traverse()
1756 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1757 Vs.enterCFG(*this); in traverse()
1758 typename V::template Container<BasicBlock *> Bbs(Vs, Blocks.size()); in traverse()
1761 Bbs.push_back( B->traverse(Vs, Vs.subExprCtx(Ctx)) ); in traverse()
1763 Vs.exitCFG(*this); in traverse()
1764 return Vs.reduceSCFG(*this, Bbs); in traverse()
1797 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1798 return Vs.reduceIdentifier(*this); in traverse()
1831 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1832 auto Nc = Vs.traverse(Condition, Vs.subExprCtx(Ctx)); in traverse()
1833 auto Nt = Vs.traverse(ThenExpr, Vs.subExprCtx(Ctx)); in traverse()
1834 auto Ne = Vs.traverse(ElseExpr, Vs.subExprCtx(Ctx)); in traverse()
1835 return Vs.reduceIfThenElse(*this, Nc, Nt, Ne); in traverse()
1876 typename V::R_SExpr traverse(V &Vs, typename V::R_Ctx Ctx) { in traverse() argument
1878 auto E0 = Vs.traverse(VarDecl->Definition, Vs.subExprCtx(Ctx)); in traverse()
1880 Variable *Nvd = Vs.enterScope(*VarDecl, E0); in traverse()
1881 auto E1 = Vs.traverse(Body, Ctx); in traverse()
1882 Vs.exitScope(*VarDecl); in traverse()
1883 return Vs.reduceLet(*this, Nvd, E1); in traverse()