Lines Matching refs:SsaEnv

31 struct SsaEnv {  struct
72 SsaEnv* catch_env;
75 explicit TryInfo(SsaEnv* c) : catch_env(c) {} in TryInfo()
79 SsaEnv* end_env; // end environment for the construct.
80 SsaEnv* false_env; // false environment (only for if).
88 SsaEnv* ssa_env = in StartFunction()
89 reinterpret_cast<SsaEnv*>(decoder->zone()->New(sizeof(SsaEnv))); in StartFunction()
93 ssa_env->state = SsaEnv::kReached; in StartFunction()
128 void LoadContextIntoSsa(SsaEnv* ssa_env) { in LoadContextIntoSsa()
134 SsaEnv* break_env = ssa_env_; in StartFunctionBody()
152 SsaEnv* finish_try_env = Steal(decoder->zone(), ssa_env_); in Loop()
166 SsaEnv* outer_env = ssa_env_; in Try()
167 SsaEnv* catch_env = Split(decoder, outer_env); in Try()
170 catch_env->state = SsaEnv::kUnreachable; in Try()
171 SsaEnv* try_env = Steal(decoder->zone(), outer_env); in Try()
184 SsaEnv* end_env = ssa_env_; in If()
185 SsaEnv* false_env = Split(decoder, ssa_env_); in If()
187 SsaEnv* true_env = Steal(decoder->zone(), ssa_env_); in If()
300 SsaEnv* fenv = ssa_env_; in BrIf()
301 SsaEnv* tenv = Split(decoder, fenv); in BrIf()
318 SsaEnv* break_env = ssa_env_; in BrTable()
322 SsaEnv* copy = Steal(decoder->zone(), break_env); in BrTable()
431 SsaEnv* catch_env = block->try_info->catch_env; in CatchException()
455 SsaEnv* if_no_catch_env = Split(decoder, ssa_env_); in CatchException()
457 SsaEnv* if_catch_env = Steal(decoder->zone(), ssa_env_); in CatchException()
494 SsaEnv* ssa_env_;
515 void SetEnv(SsaEnv* env) { in SetEnv()
521 case SsaEnv::kReached: in SetEnv()
524 case SsaEnv::kUnreachable: in SetEnv()
527 case SsaEnv::kMerged: in SetEnv()
530 case SsaEnv::kControlEnd: in SetEnv()
563 SsaEnv* success_env = Steal(decoder->zone(), ssa_env_); in CheckForException()
566 SsaEnv* exception_env = Split(decoder, success_env); in CheckForException()
572 DCHECK_EQ(SsaEnv::kReached, try_info->catch_env->state); in CheckForException()
575 DCHECK_EQ(SsaEnv::kMerged, try_info->catch_env->state); in CheckForException()
606 SsaEnv* target = c->end_env; in MergeValuesInto()
607 const bool first = target->state == SsaEnv::kUnreachable; in MergeValuesInto()
625 void Goto(FullDecoder* decoder, SsaEnv* from, SsaEnv* to) { in Goto()
629 case SsaEnv::kUnreachable: { // Overwrite destination. in Goto()
630 to->state = SsaEnv::kReached; in Goto()
637 case SsaEnv::kReached: { // Create a new merge. in Goto()
638 to->state = SsaEnv::kMerged; in Goto()
663 case SsaEnv::kMerged: { in Goto()
687 SsaEnv* PrepareForLoop(FullDecoder* decoder, SsaEnv* env) { in PrepareForLoop()
689 env->state = SsaEnv::kMerged; in PrepareForLoop()
712 SsaEnv* loop_body_env = Split(decoder, env); in PrepareForLoop()
727 SsaEnv* loop_body_env = Split(decoder, env); in PrepareForLoop()
734 SsaEnv* Split(FullDecoder* decoder, SsaEnv* from) { in Split()
736 SsaEnv* result = in Split()
737 reinterpret_cast<SsaEnv*>(decoder->zone()->New(sizeof(SsaEnv))); in Split()
743 result->state = SsaEnv::kReached; in Split()
750 result->state = SsaEnv::kUnreachable; in Split()
760 SsaEnv* Steal(Zone* zone, SsaEnv* from) { in Steal()
763 SsaEnv* result = reinterpret_cast<SsaEnv*>(zone->New(sizeof(SsaEnv))); in Steal()
764 result->state = SsaEnv::kReached; in Steal()
769 from->Kill(SsaEnv::kUnreachable); in Steal()
774 SsaEnv* UnreachableEnv(Zone* zone) { in UnreachableEnv()
775 SsaEnv* result = reinterpret_cast<SsaEnv*>(zone->New(sizeof(SsaEnv))); in UnreachableEnv()
776 result->state = SsaEnv::kUnreachable; in UnreachableEnv()