OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 | 136 |
137 // If a target block is tagged as an inline function return, all | 137 // If a target block is tagged as an inline function return, all |
138 // predecessors should contain the inlined exit sequence: | 138 // predecessors should contain the inlined exit sequence: |
139 // | 139 // |
140 // LeaveInlined | 140 // LeaveInlined |
141 // Simulate (caller's environment) | 141 // Simulate (caller's environment) |
142 // Goto (target block) | 142 // Goto (target block) |
143 bool IsInlineReturnTarget() const { return is_inline_return_target_; } | 143 bool IsInlineReturnTarget() const { return is_inline_return_target_; } |
144 void MarkAsInlineReturnTarget() { is_inline_return_target_ = true; } | 144 void MarkAsInlineReturnTarget() { is_inline_return_target_ = true; } |
145 | 145 |
| 146 bool IsDeoptimizing() const { return is_deoptimizing_; } |
| 147 void MarkAsDeoptimizing() { is_deoptimizing_ = true; } |
| 148 |
146 inline Zone* zone(); | 149 inline Zone* zone(); |
147 | 150 |
148 #ifdef DEBUG | 151 #ifdef DEBUG |
149 void Verify(); | 152 void Verify(); |
150 #endif | 153 #endif |
151 | 154 |
152 private: | 155 private: |
153 void RegisterPredecessor(HBasicBlock* pred); | 156 void RegisterPredecessor(HBasicBlock* pred); |
154 void AddDominatedBlock(HBasicBlock* block); | 157 void AddDominatedBlock(HBasicBlock* block); |
155 | 158 |
(...skipping 12 matching lines...) Expand all Loading... |
168 ZoneList<HBasicBlock*> dominated_blocks_; | 171 ZoneList<HBasicBlock*> dominated_blocks_; |
169 HEnvironment* last_environment_; | 172 HEnvironment* last_environment_; |
170 // Outgoing parameter count at block exit, set during lithium translation. | 173 // Outgoing parameter count at block exit, set during lithium translation. |
171 int argument_count_; | 174 int argument_count_; |
172 // Instruction indices into the lithium code stream. | 175 // Instruction indices into the lithium code stream. |
173 int first_instruction_index_; | 176 int first_instruction_index_; |
174 int last_instruction_index_; | 177 int last_instruction_index_; |
175 ZoneList<int> deleted_phis_; | 178 ZoneList<int> deleted_phis_; |
176 HBasicBlock* parent_loop_header_; | 179 HBasicBlock* parent_loop_header_; |
177 bool is_inline_return_target_; | 180 bool is_inline_return_target_; |
| 181 bool is_deoptimizing_; |
178 }; | 182 }; |
179 | 183 |
180 | 184 |
181 class HLoopInformation: public ZoneObject { | 185 class HLoopInformation: public ZoneObject { |
182 public: | 186 public: |
183 explicit HLoopInformation(HBasicBlock* loop_header) | 187 explicit HLoopInformation(HBasicBlock* loop_header) |
184 : back_edges_(4), loop_header_(loop_header), blocks_(8) { | 188 : back_edges_(4), loop_header_(loop_header), blocks_(8) { |
185 blocks_.Add(loop_header); | 189 blocks_.Add(loop_header); |
186 } | 190 } |
187 virtual ~HLoopInformation() {} | 191 virtual ~HLoopInformation() {} |
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1193 const char* filename_; | 1197 const char* filename_; |
1194 HeapStringAllocator string_allocator_; | 1198 HeapStringAllocator string_allocator_; |
1195 StringStream trace_; | 1199 StringStream trace_; |
1196 int indent_; | 1200 int indent_; |
1197 }; | 1201 }; |
1198 | 1202 |
1199 | 1203 |
1200 } } // namespace v8::internal | 1204 } } // namespace v8::internal |
1201 | 1205 |
1202 #endif // V8_HYDROGEN_H_ | 1206 #endif // V8_HYDROGEN_H_ |
OLD | NEW |