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/bytecode-branch-analysis.h" | 8 #include "src/compiler/bytecode-branch-analysis.h" |
9 #include "src/compiler/bytecode-loop-analysis.h" | 9 #include "src/compiler/bytecode-loop-analysis.h" |
10 #include "src/compiler/js-graph.h" | 10 #include "src/compiler/js-graph.h" |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 interpreter::Register first_arg, | 117 interpreter::Register first_arg, |
118 size_t arity); | 118 size_t arity); |
119 | 119 |
120 // Computes register liveness and replaces dead ones in frame states with the | 120 // Computes register liveness and replaces dead ones in frame states with the |
121 // undefined values. | 121 // undefined values. |
122 void ClearNonLiveSlotsInFrameStates(); | 122 void ClearNonLiveSlotsInFrameStates(); |
123 | 123 |
124 void BuildCreateLiteral(const Operator* op); | 124 void BuildCreateLiteral(const Operator* op); |
125 void BuildCreateArguments(CreateArgumentsType type); | 125 void BuildCreateArguments(CreateArgumentsType type); |
126 Node* BuildLoadContextSlot(); | 126 Node* BuildLoadContextSlot(); |
127 Node* BuildLoadGlobal(TypeofMode typeof_mode); | 127 Node* BuildLoadGlobal(int feedback_slot_operand, TypeofMode typeof_mode); |
128 void BuildStoreGlobal(LanguageMode language_mode); | 128 void BuildStoreGlobal(LanguageMode language_mode); |
129 Node* BuildNamedLoad(); | 129 Node* BuildNamedLoad(); |
130 void BuildNamedStore(LanguageMode language_mode); | 130 void BuildNamedStore(LanguageMode language_mode); |
131 Node* BuildKeyedLoad(); | 131 Node* BuildKeyedLoad(); |
132 void BuildKeyedStore(LanguageMode language_mode); | 132 void BuildKeyedStore(LanguageMode language_mode); |
133 void BuildLdaLookupSlot(TypeofMode typeof_mode); | 133 void BuildLdaLookupSlot(TypeofMode typeof_mode); |
134 void BuildLdaLookupContextSlot(TypeofMode typeof_mode); | 134 void BuildLdaLookupContextSlot(TypeofMode typeof_mode); |
135 void BuildLdaLookupGlobalSlot(TypeofMode typeof_mode); | 135 void BuildLdaLookupGlobalSlot(TypeofMode typeof_mode); |
136 void BuildStaLookupSlot(LanguageMode language_mode); | 136 void BuildStaLookupSlot(LanguageMode language_mode); |
137 void BuildCall(TailCallMode tail_call_mode); | 137 void BuildCall(TailCallMode tail_call_mode); |
138 void BuildThrow(); | 138 void BuildThrow(); |
139 void BuildBinaryOp(const Operator* op); | 139 void BuildBinaryOp(const Operator* op); |
140 void BuildBinaryOpWithImmediate(const Operator* op); | 140 void BuildBinaryOpWithImmediate(const Operator* op); |
141 void BuildCompareOp(const Operator* op); | 141 void BuildCompareOp(const Operator* op); |
142 void BuildDelete(LanguageMode language_mode); | 142 void BuildDelete(LanguageMode language_mode); |
143 void BuildCastOperator(const Operator* op); | 143 void BuildCastOperator(const Operator* op); |
144 void BuildForInPrepare(); | 144 void BuildForInPrepare(); |
145 void BuildForInNext(); | 145 void BuildForInNext(); |
146 void BuildInvokeIntrinsic(); | 146 void BuildInvokeIntrinsic(); |
147 | 147 |
| 148 // Check the context chain for extensions, for lookup fast paths. |
| 149 Environment* CheckContextExtensions(uint32_t depth); |
| 150 |
148 // Helper function to create binary operation hint from the recorded | 151 // Helper function to create binary operation hint from the recorded |
149 // type feedback. | 152 // type feedback. |
150 BinaryOperationHint GetBinaryOperationHint(int operand_index); | 153 BinaryOperationHint GetBinaryOperationHint(int operand_index); |
151 | 154 |
152 // Helper function to create compare operation hint from the recorded | 155 // Helper function to create compare operation hint from the recorded |
153 // type feedback. | 156 // type feedback. |
154 CompareOperationHint GetCompareOperationHint(); | 157 CompareOperationHint GetCompareOperationHint(); |
155 | 158 |
156 // Helper function to compute call frequency from the recorded type | 159 // Helper function to compute call frequency from the recorded type |
157 // feedback. | 160 // feedback. |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 static int const kBinaryOperationSmiHintIndex = 2; | 306 static int const kBinaryOperationSmiHintIndex = 2; |
304 | 307 |
305 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); | 308 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); |
306 }; | 309 }; |
307 | 310 |
308 } // namespace compiler | 311 } // namespace compiler |
309 } // namespace internal | 312 } // namespace internal |
310 } // namespace v8 | 313 } // namespace v8 |
311 | 314 |
312 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ | 315 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ |
OLD | NEW |