| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_CRANKSHAFT_HYDROGEN_H_ | 5 #ifndef V8_CRANKSHAFT_HYDROGEN_H_ |
| 6 #define V8_CRANKSHAFT_HYDROGEN_H_ | 6 #define V8_CRANKSHAFT_HYDROGEN_H_ |
| 7 | 7 |
| 8 #include "src/accessors.h" | 8 #include "src/accessors.h" |
| 9 #include "src/allocation.h" | 9 #include "src/allocation.h" |
| 10 #include "src/ast/ast-type-bounds.h" | 10 #include "src/ast/ast-type-bounds.h" |
| (...skipping 2252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2263 | 2263 |
| 2264 void VisitDelete(UnaryOperation* expr); | 2264 void VisitDelete(UnaryOperation* expr); |
| 2265 void VisitVoid(UnaryOperation* expr); | 2265 void VisitVoid(UnaryOperation* expr); |
| 2266 void VisitTypeof(UnaryOperation* expr); | 2266 void VisitTypeof(UnaryOperation* expr); |
| 2267 void VisitNot(UnaryOperation* expr); | 2267 void VisitNot(UnaryOperation* expr); |
| 2268 | 2268 |
| 2269 void VisitComma(BinaryOperation* expr); | 2269 void VisitComma(BinaryOperation* expr); |
| 2270 void VisitLogicalExpression(BinaryOperation* expr); | 2270 void VisitLogicalExpression(BinaryOperation* expr); |
| 2271 void VisitArithmeticExpression(BinaryOperation* expr); | 2271 void VisitArithmeticExpression(BinaryOperation* expr); |
| 2272 | 2272 |
| 2273 void VisitLoopBody(IterationStatement* stmt, | 2273 void VisitLoopBody(IterationStatement* stmt, BailoutId stack_check_id, |
| 2274 HBasicBlock* loop_entry); | 2274 HBasicBlock* loop_entry); |
| 2275 | 2275 |
| 2276 void BuildForInBody(ForInStatement* stmt, Variable* each_var, | 2276 void BuildForInBody(ForInStatement* stmt, Variable* each_var, |
| 2277 HValue* enumerable); | 2277 HValue* enumerable); |
| 2278 | 2278 |
| 2279 // Create a back edge in the flow graph. body_exit is the predecessor | 2279 // Create a back edge in the flow graph. body_exit is the predecessor |
| 2280 // block and loop_entry is the successor block. loop_successor is the | 2280 // block and loop_entry is the successor block. loop_successor is the |
| 2281 // block where control flow exits the loop normally (e.g., via failure of | 2281 // block where control flow exits the loop normally (e.g., via failure of |
| 2282 // the condition) and break_block is the block where control flow breaks | 2282 // the condition) and break_block is the block where control flow breaks |
| 2283 // from the loop. All blocks except loop_entry can be NULL. The return | 2283 // from the loop. All blocks except loop_entry can be NULL. The return |
| 2284 // value is the new successor block which is the join of loop_successor | 2284 // value is the new successor block which is the join of loop_successor |
| 2285 // and break_block, or NULL. | 2285 // and break_block, or NULL. |
| 2286 HBasicBlock* CreateLoop(IterationStatement* statement, | 2286 HBasicBlock* CreateLoop(IterationStatement* statement, |
| 2287 HBasicBlock* loop_entry, | 2287 HBasicBlock* loop_entry, |
| 2288 HBasicBlock* body_exit, | 2288 HBasicBlock* body_exit, |
| 2289 HBasicBlock* loop_successor, | 2289 HBasicBlock* loop_successor, |
| 2290 HBasicBlock* break_block); | 2290 HBasicBlock* break_block); |
| 2291 | 2291 |
| 2292 // Build a loop entry | 2292 // Build a loop entry |
| 2293 HBasicBlock* BuildLoopEntry(); | 2293 HBasicBlock* BuildLoopEntry(); |
| 2294 | 2294 |
| 2295 // Builds a loop entry respectful of OSR requirements | 2295 // Builds a loop entry respectful of OSR requirements |
| 2296 HBasicBlock* BuildLoopEntry(IterationStatement* statement); | 2296 HBasicBlock* BuildLoopEntry(IterationStatement* statement); |
| 2297 | 2297 |
| 2298 HBasicBlock* JoinContinue(IterationStatement* statement, | 2298 HBasicBlock* JoinContinue(IterationStatement* statement, |
| 2299 HBasicBlock* exit_block, | 2299 BailoutId continue_id, HBasicBlock* exit_block, |
| 2300 HBasicBlock* continue_block); | 2300 HBasicBlock* continue_block); |
| 2301 | 2301 |
| 2302 HValue* Top() const { return environment()->Top(); } | 2302 HValue* Top() const { return environment()->Top(); } |
| 2303 void Drop(int n) { environment()->Drop(n); } | 2303 void Drop(int n) { environment()->Drop(n); } |
| 2304 void Bind(Variable* var, HValue* value) { environment()->Bind(var, value); } | 2304 void Bind(Variable* var, HValue* value) { environment()->Bind(var, value); } |
| 2305 bool IsEligibleForEnvironmentLivenessAnalysis(Variable* var, | 2305 bool IsEligibleForEnvironmentLivenessAnalysis(Variable* var, |
| 2306 int index, | 2306 int index, |
| 2307 HEnvironment* env) { | 2307 HEnvironment* env) { |
| 2308 if (!FLAG_analyze_environment_liveness) return false; | 2308 if (!FLAG_analyze_environment_liveness) return false; |
| 2309 // |this| and |arguments| are always live; zapping parameters isn't | 2309 // |this| and |arguments| are always live; zapping parameters isn't |
| (...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3041 } | 3041 } |
| 3042 | 3042 |
| 3043 private: | 3043 private: |
| 3044 HOptimizedGraphBuilder* builder_; | 3044 HOptimizedGraphBuilder* builder_; |
| 3045 }; | 3045 }; |
| 3046 | 3046 |
| 3047 } // namespace internal | 3047 } // namespace internal |
| 3048 } // namespace v8 | 3048 } // namespace v8 |
| 3049 | 3049 |
| 3050 #endif // V8_CRANKSHAFT_HYDROGEN_H_ | 3050 #endif // V8_CRANKSHAFT_HYDROGEN_H_ |
| OLD | NEW |