OLD | NEW |
---|---|
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_COMPILER_BYTECODE_GRAPH_BUILDER_H_ | 5 #ifndef V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ |
6 #define V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ | 6 #define V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ |
7 | 7 |
8 #include "src/compiler.h" | 8 #include "src/compiler.h" |
9 #include "src/compiler/bytecode-branch-analysis.h" | 9 #include "src/compiler/bytecode-branch-analysis.h" |
10 #include "src/compiler/bytecode-loop-analysis.h" | 10 #include "src/compiler/bytecode-loop-analysis.h" |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
130 void BuildBinaryOpWithImmediate(const Operator* op); | 130 void BuildBinaryOpWithImmediate(const Operator* op); |
131 void BuildCompareOp(const Operator* op); | 131 void BuildCompareOp(const Operator* op); |
132 void BuildDelete(LanguageMode language_mode); | 132 void BuildDelete(LanguageMode language_mode); |
133 void BuildCastOperator(const Operator* op); | 133 void BuildCastOperator(const Operator* op); |
134 void BuildForInPrepare(); | 134 void BuildForInPrepare(); |
135 void BuildForInNext(); | 135 void BuildForInNext(); |
136 void BuildInvokeIntrinsic(); | 136 void BuildInvokeIntrinsic(); |
137 | 137 |
138 // Helper function to create binary operation hint from the recorded | 138 // Helper function to create binary operation hint from the recorded |
139 // type feedback. | 139 // type feedback. |
140 BinaryOperationHint GetBinaryOperationHint(); | 140 BinaryOperationHint GetBinaryOperationHint(int index); |
rmcilroy
2016/08/23 10:28:53
nit - operand_index
epertoso
2016/08/23 13:24:28
Done.
| |
141 | |
142 // Helper function to create an binary operation hint from the recorded | |
143 // type feedback in Inc/Dec handlers. | |
144 BinaryOperationHint GetBinaryOperationHintForIncDec(); | |
145 | 141 |
146 // Control flow plumbing. | 142 // Control flow plumbing. |
147 void BuildJump(); | 143 void BuildJump(); |
148 void BuildConditionalJump(Node* condition); | 144 void BuildConditionalJump(Node* condition); |
149 void BuildJumpIfEqual(Node* comperand); | 145 void BuildJumpIfEqual(Node* comperand); |
150 void BuildJumpIfToBooleanEqual(Node* boolean_comperand); | 146 void BuildJumpIfToBooleanEqual(Node* boolean_comperand); |
151 void BuildJumpIfNotHole(); | 147 void BuildJumpIfNotHole(); |
152 | 148 |
153 // Simulates control flow by forward-propagating environments. | 149 // Simulates control flow by forward-propagating environments. |
154 void MergeIntoSuccessorEnvironment(int target_offset); | 150 void MergeIntoSuccessorEnvironment(int target_offset); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
255 Node** input_buffer_; | 251 Node** input_buffer_; |
256 | 252 |
257 // Nodes representing values in the activation record. | 253 // Nodes representing values in the activation record. |
258 SetOncePointer<Node> function_context_; | 254 SetOncePointer<Node> function_context_; |
259 SetOncePointer<Node> function_closure_; | 255 SetOncePointer<Node> function_closure_; |
260 SetOncePointer<Node> new_target_; | 256 SetOncePointer<Node> new_target_; |
261 | 257 |
262 // Control nodes that exit the function body. | 258 // Control nodes that exit the function body. |
263 ZoneVector<Node*> exit_controls_; | 259 ZoneVector<Node*> exit_controls_; |
264 | 260 |
261 static int const kBinaryOperationHintIndex = 1; | |
262 static int const kCountOperationHintIndex = 0; | |
263 static int const kBinaryOperationSmiHintIndex = 2; | |
264 | |
265 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); | 265 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); |
266 }; | 266 }; |
267 | 267 |
268 } // namespace compiler | 268 } // namespace compiler |
269 } // namespace internal | 269 } // namespace internal |
270 } // namespace v8 | 270 } // namespace v8 |
271 | 271 |
272 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ | 272 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ |
OLD | NEW |