Home | History | Annotate | Download | only in gcmole

Lines Matching defs:env

289   static ExprEffect NoneWithEnv(Environment* env) {
290 return ExprEffect(kNoEffect, env);
298 Environment* env() {
307 ExprEffect(int effect, Environment* env)
309 reinterpret_cast<intptr_t>(env)) { }
324 Environment env;
325 env.live_.set();
326 return env;
336 if (effect.env() != NULL) out.live_ |= effect.env()->live_;
348 bool Equal(const Environment& env) {
349 return live_ == env.live_;
399 static Environment* Allocate(const Environment& env) {
400 Environment* allocated_env = new Environment(env);
434 if (in.env() != NULL) {
435 if (env_ == NULL) env_ = in.env();
436 env_->live_ |= in.env()->live_;
469 Environment* a_env = a.env();
470 Environment* b_env = b.env();
481 Environment* a_env = b.hasGC() ? NULL : a.env();
482 Environment* b_env = b.env();
493 Environment* e = env();
526 ExprEffect VisitExpr(clang::Expr* expr, const Environment& env) {
531 return Visit##type(concrete_expr, env); \
594 ExprEffect Visit##type (clang::type* expr, const Environment& env)
597 ExprEffect Visit##type (clang::type* expr, const Environment& env) { \
636 return Use(expr, expr->getType(), THIS, env);
640 Environment after_cond = env.ApplyEffect(VisitExpr(expr->getCond(), env));
647 return Par(expr, 2, exprs, env);
666 return Seq(expr, 2, exprs, env);
670 return ExprEffect::Merge(VisitExpr(lhs, env), VisitExpr(rhs, env));
675 return VisitExpr(rhs, env).Define(var_name);
677 return Par(expr, 2, exprs, env);
681 return Par(expr, 2, exprs, env);
686 return VisitExpr(expr->getSubExpr(), env);
690 return VisitArguments<>(expr, env);
694 return VisitExpr(expr->getExpr(), env);
698 return VisitExpr(expr->getArgument(), env);
701 DECL_VISIT_EXPR(CXXNewExpr) { return VisitExpr(expr->getInitializer(), env); }
704 return VisitExpr(expr->getSubExpr(), env);
708 return VisitExpr(expr->getSubExpr(), env);
712 return Seq(expr, expr->getNumInits(), expr->getInits(), env);
716 return VisitExpr(expr->getBase(), env);
720 return VisitExpr(expr->getSourceExpr(), env);
724 return VisitExpr(expr->getSubExpr(), env);
728 return Par(expr, expr->getNumExprs(), expr->getExprs(), env);
744 return VisitExpr(expr->getSubExpr(), env);
748 return VisitExpr(expr->getSubExpr(), env);
752 return Use(expr, expr->getDecl(), env);
758 const Environment& env) {
762 props.SetEffect(i, VisitExpr(exprs[i], env));
773 const Environment& env) {
775 Environment out_env = env;
786 const Environment& env) {
788 if (!env.IsAlive(var_name) && dead_vars_analysis_) {
798 const Environment& env) {
802 return Use(parent, var->getType(), var->getNameAsString(), env);
807 ExprEffect VisitArguments(ExprType* call, const Environment& env) {
809 VisitArguments<>(call, &props, env);
817 const Environment& env) {
819 props->SetEffect(arg + 1, VisitExpr(call->getArg(arg), env));
825 const Environment& env) {
832 props.SetEffect(0, VisitExpr(receiver, env));
835 VisitArguments<>(call, &props, env);
854 Environment VisitStmt(clang::Stmt* stmt, const Environment& env) {
859 return Visit##type(concrete_stmt, env); \
864 return env.ApplyEffect(VisitExpr(expr, env));
888 return env;
892 Environment Visit##type (clang::type* stmt, const Environment& env)
895 Environment Visit##type (clang::type* stmt, const Environment& env) { \
896 return env; \
926 void MergeIn(const Environment& env) {
928 in_ = Environment::Merge(in_, env);
948 void MergeOut(const Environment& env) {
949 out_ = Environment::Merge(out_, env);
986 block_->MergeOut(env);
991 block_->MergeIn(env);
996 Environment out = env;
1007 Block block (env, this);
1015 Block block (env, this);
1023 Block block (VisitStmt(stmt->getInit(), env), this);
1033 Environment cond_out = VisitStmt(stmt->getCond(), env);
1040 Block block (env, this);
1046 Environment in = Environment::Merge(env, block_->in());
1052 Environment in = Environment::Merge(env, block_->in());
1057 VisitExpr(stmt->getRetValue(), env);
1103 Environment VisitDecl(clang::Decl* decl, const Environment& env) {
1105 Environment out = var->hasInit() ? VisitStmt(var->getInit(), env) : env;
1114 return env;
1118 Environment out = env;
1130 Environment* env) {
1131 env->MDefine(THIS);
1136 env->MDefine((*p)->getNameAsString());
1144 Environment env;
1145 DefineParameters(body, &env);
1146 VisitStmt(body->getBody(), env);