• Home
  • Raw
  • Download

Lines Matching refs: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() { } in Environment() function in __anona69aa4600111::Environment
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 return Environment(l, r); in Merge()
334 Environment ApplyEffect(ExprEffect effect) const { in ApplyEffect()
335 Environment out = effect.hasGC() ? Environment() : Environment(*this); in ApplyEffect()
348 bool Equal(const Environment& env) { in Equal()
352 Environment Define(const std::string& name) const { in Define()
353 return Environment(*this, SymbolToCode(name)); in Define()
373 std::vector<Environment*>::iterator end = envs_.end(); in ClearSymbolTable()
374 for (std::vector<Environment*>::iterator i = envs_.begin(); in ClearSymbolTable()
399 static Environment* Allocate(const Environment& env) { in Allocate()
400 Environment* allocated_env = new Environment(env); in Allocate()
406 Environment(const Environment& l, const Environment& r) in Environment() function in __anona69aa4600111::Environment
410 Environment(const Environment& l, int code) in Environment() function in __anona69aa4600111::Environment
416 static std::vector<Environment* > envs_;
460 Environment* env_;
464 Environment::SymbolTable Environment::symbol_table_;
465 std::vector<Environment* > Environment::envs_;
469 Environment* a_env = a.env(); in Merge()
470 Environment* b_env = b.env(); in Merge()
471 Environment* out = NULL; in Merge()
473 out = Environment::Allocate(*a_env); in Merge()
481 Environment* a_env = b.hasGC() ? NULL : a.env(); in MergeSeq()
482 Environment* b_env = b.env(); in MergeSeq()
483 Environment* out = (b_env == NULL) ? a_env : b_env; in MergeSeq()
485 out = Environment::Allocate(*b_env); in MergeSeq()
493 Environment* e = env(); in Define()
495 e = Environment::Allocate(Environment()); in Define()
526 ExprEffect VisitExpr(clang::Expr* expr, const Environment& env) { in VisitExpr()
594 ExprEffect Visit##type (clang::type* expr, const Environment& env)
597 ExprEffect Visit##type (clang::type* expr, const Environment& env) { \
640 Environment after_cond = env.ApplyEffect(VisitExpr(expr->getCond(), env)); in DECL_VISIT_EXPR()
758 const Environment& env) { in Par()
773 const Environment& env) { in Seq()
775 Environment out_env = env; in Seq()
786 const Environment& env) { in Use()
798 const Environment& env) { in Use()
807 ExprEffect VisitArguments(ExprType* call, const Environment& env) { in VisitArguments()
817 const Environment& env) { in VisitArguments()
825 const Environment& env) { in VisitCallExpr()
854 Environment VisitStmt(clang::Stmt* stmt, const Environment& env) { in VisitStmt()
892 Environment Visit##type (clang::type* stmt, const Environment& env)
895 Environment Visit##type (clang::type* stmt, const Environment& env) { \
913 Block(const Environment& in, in Block()
916 out_(Environment::Unreachable()), in Block()
926 void MergeIn(const Environment& env) { in MergeIn()
927 Environment old_in = in_; in MergeIn()
928 in_ = Environment::Merge(in_, env); in MergeIn()
940 const Environment& in() { in in()
944 const Environment& out() { in out()
948 void MergeOut(const Environment& env) { in MergeOut()
949 out_ = Environment::Merge(out_, env); in MergeOut()
953 Environment a_out = owner_->VisitStmt(a, in()); in Seq()
954 Environment b_out = owner_->VisitStmt(b, a_out); in Seq()
955 Environment c_out = owner_->VisitStmt(c, b_out); in Seq()
960 Environment a_out = owner_->VisitStmt(a, in()); in Seq()
961 Environment b_out = owner_->VisitStmt(b, a_out); in Seq()
977 Environment in_;
978 Environment out_;
987 return Environment::Unreachable(); in DECL_VISIT_STMT()
992 return Environment::Unreachable(); in DECL_VISIT_STMT()
996 Environment out = env; in DECL_VISIT_STMT()
1033 Environment cond_out = VisitStmt(stmt->getCond(), env); in DECL_VISIT_STMT()
1034 Environment then_out = VisitStmt(stmt->getThen(), cond_out); in DECL_VISIT_STMT()
1035 Environment else_out = VisitStmt(stmt->getElse(), cond_out); in DECL_VISIT_STMT()
1036 return Environment::Merge(then_out, else_out); in DECL_VISIT_STMT()
1046 Environment in = Environment::Merge(env, block_->in()); in DECL_VISIT_STMT()
1047 Environment after_lhs = VisitStmt(stmt->getLHS(), in); in DECL_VISIT_STMT()
1052 Environment in = Environment::Merge(env, block_->in()); in DECL_VISIT_STMT()
1058 return Environment::Unreachable(); in DECL_VISIT_STMT()
1103 Environment VisitDecl(clang::Decl* decl, const Environment& env) { in VisitDecl()
1105 Environment out = var->hasInit() ? VisitStmt(var->getInit(), env) : env; in VisitDecl()
1118 Environment out = env; in DECL_VISIT_STMT()
1130 Environment* env) { in DefineParameters()
1144 Environment env; in AnalyzeFunction()
1147 Environment::ClearSymbolTable(); in AnalyzeFunction()