OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "control-builders.h" | 5 #include "control-builders.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 namespace compiler { | 9 namespace compiler { |
10 | 10 |
(...skipping 14 matching lines...) Expand all Loading... |
25 builder_->NewIfFalse(); | 25 builder_->NewIfFalse(); |
26 } | 26 } |
27 | 27 |
28 | 28 |
29 void IfBuilder::End() { | 29 void IfBuilder::End() { |
30 then_environment_->Merge(environment()); | 30 then_environment_->Merge(environment()); |
31 set_environment(then_environment_); | 31 set_environment(then_environment_); |
32 } | 32 } |
33 | 33 |
34 | 34 |
35 void LoopBuilder::BeginLoop(BitVector* assigned) { | 35 void LoopBuilder::BeginLoop(BitVector* assigned, bool is_osr) { |
36 builder_->NewLoop(); | 36 loop_environment_ = environment()->CopyForLoop(assigned, is_osr); |
37 loop_environment_ = environment()->CopyForLoop(assigned); | |
38 continue_environment_ = environment()->CopyAsUnreachable(); | 37 continue_environment_ = environment()->CopyAsUnreachable(); |
39 break_environment_ = environment()->CopyAsUnreachable(); | 38 break_environment_ = environment()->CopyAsUnreachable(); |
40 } | 39 } |
41 | 40 |
42 | 41 |
43 void LoopBuilder::Continue() { | 42 void LoopBuilder::Continue() { |
44 continue_environment_->Merge(environment()); | 43 continue_environment_->Merge(environment()); |
45 environment()->MarkAsUnreachable(); | 44 environment()->MarkAsUnreachable(); |
46 } | 45 } |
47 | 46 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 } | 133 } |
135 | 134 |
136 | 135 |
137 void BlockBuilder::EndBlock() { | 136 void BlockBuilder::EndBlock() { |
138 break_environment_->Merge(environment()); | 137 break_environment_->Merge(environment()); |
139 set_environment(break_environment_); | 138 set_environment(break_environment_); |
140 } | 139 } |
141 } | 140 } |
142 } | 141 } |
143 } // namespace v8::internal::compiler | 142 } // namespace v8::internal::compiler |
OLD | NEW |