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

Side by Side Diff: src/compiler/bytecode-graph-builder.h

Issue 2958253002: [turbofan] Replace uninitialized JSConstruct nodes with SOFT deopt. (Closed)
Patch Set: Created 3 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 | « no previous file | src/compiler/bytecode-graph-builder.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 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-analysis.h" 8 #include "src/compiler/bytecode-analysis.h"
9 #include "src/compiler/js-graph.h" 9 #include "src/compiler/js-graph.h"
10 #include "src/compiler/js-type-hint-lowering.h" 10 #include "src/compiler/js-type-hint-lowering.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 117
118 Node** EnsureInputBufferSize(int size); 118 Node** EnsureInputBufferSize(int size);
119 119
120 Node* const* GetCallArgumentsFromRegister(Node* callee, Node* receiver, 120 Node* const* GetCallArgumentsFromRegister(Node* callee, Node* receiver,
121 interpreter::Register first_arg, 121 interpreter::Register first_arg,
122 int arg_count); 122 int arg_count);
123 Node* ProcessCallArguments(const Operator* call_op, Node* const* args, 123 Node* ProcessCallArguments(const Operator* call_op, Node* const* args,
124 int arg_count); 124 int arg_count);
125 Node* ProcessCallArguments(const Operator* call_op, Node* callee, 125 Node* ProcessCallArguments(const Operator* call_op, Node* callee,
126 interpreter::Register receiver, size_t reg_count); 126 interpreter::Register receiver, size_t reg_count);
127 Node* ProcessConstructArguments(const Operator* call_new_op, Node* callee, 127 Node* const* GetConstructArgumentsFromRegister(
128 Node* new_target, 128 Node* target, Node* new_target, interpreter::Register first_arg,
129 interpreter::Register receiver, 129 int arg_count);
130 size_t reg_count); 130 Node* ProcessConstructArguments(const Operator* op, Node* const* args,
131 Node* ProcessConstructWithSpreadArguments(const Operator* op, Node* callee, 131 int arg_count);
132 Node* new_target,
133 interpreter::Register receiver,
134 size_t reg_count);
135 Node* ProcessCallRuntimeArguments(const Operator* call_runtime_op, 132 Node* ProcessCallRuntimeArguments(const Operator* call_runtime_op,
136 interpreter::Register receiver, 133 interpreter::Register receiver,
137 size_t reg_count); 134 size_t reg_count);
138 135
139 // Prepare information for eager deoptimization. This information is carried 136 // Prepare information for eager deoptimization. This information is carried
140 // by dedicated {Checkpoint} nodes that are wired into the effect chain. 137 // by dedicated {Checkpoint} nodes that are wired into the effect chain.
141 // Conceptually this frame state is "before" a given operation. 138 // Conceptually this frame state is "before" a given operation.
142 void PrepareEagerCheckpoint(); 139 void PrepareEagerCheckpoint();
143 140
144 // Prepare information for lazy deoptimization. This information is attached 141 // Prepare information for lazy deoptimization. This information is attached
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 // Optional early lowering to the simplified operator level. Returns the node 180 // Optional early lowering to the simplified operator level. Returns the node
184 // representing the lowered operation or {nullptr} if no lowering available. 181 // representing the lowered operation or {nullptr} if no lowering available.
185 // Note that the result has already been wired into the environment just like 182 // Note that the result has already been wired into the environment just like
186 // any other invocation of {NewNode} would do. 183 // any other invocation of {NewNode} would do.
187 Node* TryBuildSimplifiedBinaryOp(const Operator* op, Node* left, Node* right, 184 Node* TryBuildSimplifiedBinaryOp(const Operator* op, Node* left, Node* right,
188 FeedbackSlot slot); 185 FeedbackSlot slot);
189 Node* TryBuildSimplifiedToNumber(Node* input, FeedbackSlot slot); 186 Node* TryBuildSimplifiedToNumber(Node* input, FeedbackSlot slot);
190 Node* TryBuildSimplifiedToPrimitiveToString(Node* input, FeedbackSlot slot); 187 Node* TryBuildSimplifiedToPrimitiveToString(Node* input, FeedbackSlot slot);
191 Node* TryBuildSimplifiedCall(const Operator* op, Node* const* args, 188 Node* TryBuildSimplifiedCall(const Operator* op, Node* const* args,
192 int arg_count, FeedbackSlot slot); 189 int arg_count, FeedbackSlot slot);
190 Node* TryBuildSimplifiedConstruct(const Operator* op, Node* const* args,
191 int arg_count, FeedbackSlot slot);
193 Node* TryBuildSimplifiedLoadNamed(const Operator* op, Node* receiver, 192 Node* TryBuildSimplifiedLoadNamed(const Operator* op, Node* receiver,
194 FeedbackSlot slot); 193 FeedbackSlot slot);
195 Node* TryBuildSimplifiedLoadKeyed(const Operator* op, Node* receiver, 194 Node* TryBuildSimplifiedLoadKeyed(const Operator* op, Node* receiver,
196 Node* key, FeedbackSlot slot); 195 Node* key, FeedbackSlot slot);
197 Node* TryBuildSimplifiedStoreNamed(const Operator* op, Node* receiver, 196 Node* TryBuildSimplifiedStoreNamed(const Operator* op, Node* receiver,
198 Node* value, FeedbackSlot slot); 197 Node* value, FeedbackSlot slot);
199 Node* TryBuildSimplifiedStoreKeyed(const Operator* op, Node* receiver, 198 Node* TryBuildSimplifiedStoreKeyed(const Operator* op, Node* receiver,
200 Node* key, Node* value, FeedbackSlot slot); 199 Node* key, Node* value, FeedbackSlot slot);
201 200
202 // Applies the given early reduction onto the current environment. 201 // Applies the given early reduction onto the current environment.
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 static int const kBinaryOperationSmiHintIndex = 1; 374 static int const kBinaryOperationSmiHintIndex = 1;
376 375
377 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); 376 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder);
378 }; 377 };
379 378
380 } // namespace compiler 379 } // namespace compiler
381 } // namespace internal 380 } // namespace internal
382 } // namespace v8 381 } // namespace v8
383 382
384 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ 383 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « no previous file | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698