• Home
  • Raw
  • Download

Lines Matching full:environment

275 class Environment;
289 static ExprEffect NoneWithEnv(Environment* env) { in NoneWithEnv()
298 Environment* env() { in env()
299 return reinterpret_cast<Environment*>(effect_ & ~kAllEffects); in env()
307 ExprEffect(int effect, Environment* env) in ExprEffect()
319 class Environment { class
321 Environment() = default;
323 static Environment Unreachable() { in Unreachable()
324 Environment env; in Unreachable()
329 static Environment Merge(const Environment& l, in Merge()
330 const Environment& r) { in Merge()
331 Environment out(l); in Merge()
336 Environment ApplyEffect(ExprEffect effect) const { in ApplyEffect()
337 Environment out = effect.hasGC() ? Environment() : Environment(*this); in ApplyEffect()
350 bool Equal(const Environment& env) { in Equal()
359 Environment Define(const std::string& name) const { in Define()
360 return Environment(*this, SymbolToCode(name)); in Define()
378 for (Environment* e : envs_) delete e; in ClearSymbolTable()
395 static Environment* Allocate(const Environment& env) { in Allocate()
396 Environment* allocated_env = new Environment(env); in Allocate()
402 Environment(const Environment& l, int code) in Environment() function in __anona2c38c5e0111::Environment
417 Environment& operator|=(const Environment& o) { in operator |=()
429 Environment& operator&=(const Environment& o) { in operator &=()
444 static std::vector<Environment*> envs_;
493 Environment* env_;
497 Environment::SymbolTable Environment::symbol_table_;
498 std::vector<Environment*> Environment::envs_;
501 Environment* a_env = a.env(); in Merge()
502 Environment* b_env = b.env(); in Merge()
503 Environment* out = NULL; in Merge()
505 out = Environment::Allocate(*a_env); in Merge()
513 Environment* a_env = b.hasGC() ? NULL : a.env(); in MergeSeq()
514 Environment* b_env = b.env(); in MergeSeq()
515 Environment* out = (b_env == NULL) ? a_env : b_env; in MergeSeq()
517 out = Environment::Allocate(*b_env); in MergeSeq()
525 Environment* e = env(); in Define()
527 e = Environment::Allocate(Environment()); in Define()
558 ExprEffect VisitExpr(clang::Expr* expr, const Environment& env) { in VisitExpr()
626 ExprEffect Visit##type (clang::type* expr, const Environment& env)
629 ExprEffect Visit##type (clang::type* expr, const Environment& env) { \
672 Environment after_cond = env.ApplyEffect(VisitExpr(expr->getCond(), env)); in DECL_VISIT_EXPR()
790 const Environment& env) { in Par()
805 const Environment& env) { in Seq()
807 Environment out_env = env; in Seq()
818 const Environment& env) { in Use()
830 const Environment& env) { in Use()
839 ExprEffect VisitArguments(ExprType* call, const Environment& env) { in VisitArguments()
849 const Environment& env) { in VisitArguments()
857 const Environment& env) { in VisitCallExpr()
886 Environment VisitStmt(clang::Stmt* stmt, const Environment& env) { in VisitStmt()
924 Environment Visit##type (clang::type* stmt, const Environment& env)
927 Environment Visit##type (clang::type* stmt, const Environment& env) { \
945 Block(const Environment& in, in Block()
948 out_(Environment::Unreachable()), in Block()
958 void MergeIn(const Environment& env) { in MergeIn()
959 Environment old_in = in_; in MergeIn()
960 in_ = Environment::Merge(in_, env); in MergeIn()
972 const Environment& in() { in in()
976 const Environment& out() { in out()
980 void MergeOut(const Environment& env) { in MergeOut()
981 out_ = Environment::Merge(out_, env); in MergeOut()
985 Environment a_out = owner_->VisitStmt(a, in()); in Seq()
986 Environment b_out = owner_->VisitStmt(b, a_out); in Seq()
987 Environment c_out = owner_->VisitStmt(c, b_out); in Seq()
992 Environment a_out = owner_->VisitStmt(a, in()); in Seq()
993 Environment b_out = owner_->VisitStmt(b, a_out); in Seq()
1009 Environment in_;
1010 Environment out_;
1019 return Environment::Unreachable(); in DECL_VISIT_STMT()
1024 return Environment::Unreachable(); in DECL_VISIT_STMT()
1028 Environment out = env; in DECL_VISIT_STMT()
1065 Environment cond_out = VisitStmt(stmt->getCond(), env); in DECL_VISIT_STMT()
1066 Environment then_out = VisitStmt(stmt->getThen(), cond_out); in DECL_VISIT_STMT()
1067 Environment else_out = VisitStmt(stmt->getElse(), cond_out); in DECL_VISIT_STMT()
1068 return Environment::Merge(then_out, else_out); in DECL_VISIT_STMT()
1078 Environment in = Environment::Merge(env, block_->in()); in DECL_VISIT_STMT()
1079 Environment after_lhs = VisitStmt(stmt->getLHS(), in); in DECL_VISIT_STMT()
1084 Environment in = Environment::Merge(env, block_->in()); in DECL_VISIT_STMT()
1090 return Environment::Unreachable(); in DECL_VISIT_STMT()
1135 Environment VisitDecl(clang::Decl* decl, const Environment& env) { in VisitDecl()
1137 Environment out = var->hasInit() ? VisitStmt(var->getInit(), env) : env; in VisitDecl()
1150 Environment out = env; in DECL_VISIT_STMT()
1162 Environment* env) { in DefineParameters()
1176 Environment env; in AnalyzeFunction()
1179 Environment::ClearSymbolTable(); in AnalyzeFunction()