Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Side by Side Diff: src/crankshaft/hydrogen.h

Issue 2126233002: Devirtualize AstNode and subclasses, except for visiting-related methods. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: remove static assert again Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698