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

Side by Side Diff: src/compiler/js-native-context-specialization.cc

Issue 2666783007: [turbo] Rename CallFunction* JSOperators to Call*. (Closed)
Patch Set: Created 3 years, 10 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/js-intrinsic-lowering.cc ('k') | src/compiler/js-operator.h » ('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 #include "src/compiler/js-native-context-specialization.h" 5 #include "src/compiler/js-native-context-specialization.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/compilation-dependencies.h" 9 #include "src/compilation-dependencies.h"
10 #include "src/compiler/access-builder.h" 10 #include "src/compiler/access-builder.h"
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 access_info.receiver_maps()); 203 access_info.receiver_maps());
204 204
205 // Call the @@hasInstance handler. 205 // Call the @@hasInstance handler.
206 Node* target = jsgraph()->Constant(access_info.constant()); 206 Node* target = jsgraph()->Constant(access_info.constant());
207 node->InsertInput(graph()->zone(), 0, target); 207 node->InsertInput(graph()->zone(), 0, target);
208 node->ReplaceInput(1, constructor); 208 node->ReplaceInput(1, constructor);
209 node->ReplaceInput(2, object); 209 node->ReplaceInput(2, object);
210 node->ReplaceInput(5, effect); 210 node->ReplaceInput(5, effect);
211 NodeProperties::ChangeOp( 211 NodeProperties::ChangeOp(
212 node, 212 node,
213 javascript()->CallFunction(3, 0.0f, VectorSlotPair(), 213 javascript()->Call(3, 0.0f, VectorSlotPair(),
214 ConvertReceiverMode::kNotNullOrUndefined)); 214 ConvertReceiverMode::kNotNullOrUndefined));
215 215
216 // Rewire the value uses of {node} to ToBoolean conversion of the result. 216 // Rewire the value uses of {node} to ToBoolean conversion of the result.
217 Node* value = graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny), 217 Node* value = graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
218 node, context); 218 node, context);
219 for (Edge edge : node->use_edges()) { 219 for (Edge edge : node->use_edges()) {
220 if (NodeProperties::IsValueEdge(edge) && edge.from() != value) { 220 if (NodeProperties::IsValueEdge(edge) && edge.from() != value) {
221 edge.UpdateTo(value); 221 edge.UpdateTo(value);
222 Revisit(edge.from()); 222 Revisit(edge.from());
223 } 223 }
224 } 224 }
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 OutputFrameStateCombine::Ignore(), 1316 OutputFrameStateCombine::Ignore(),
1317 frame_info0), 1317 frame_info0),
1318 graph()->NewNode(common()->StateValues(1, SparseInputMask::Dense()), 1318 graph()->NewNode(common()->StateValues(1, SparseInputMask::Dense()),
1319 receiver), 1319 receiver),
1320 jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(), 1320 jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(),
1321 context, target, frame_state); 1321 context, target, frame_state);
1322 1322
1323 // Introduce the call to the getter function. 1323 // Introduce the call to the getter function.
1324 if (access_info.constant()->IsJSFunction()) { 1324 if (access_info.constant()->IsJSFunction()) {
1325 value = effect = graph()->NewNode( 1325 value = effect = graph()->NewNode(
1326 javascript()->CallFunction( 1326 javascript()->Call(2, 0.0f, VectorSlotPair(),
1327 2, 0.0f, VectorSlotPair(), 1327 ConvertReceiverMode::kNotNullOrUndefined),
1328 ConvertReceiverMode::kNotNullOrUndefined),
1329 target, receiver, context, frame_state0, effect, control); 1328 target, receiver, context, frame_state0, effect, control);
1330 control = graph()->NewNode(common()->IfSuccess(), value); 1329 control = graph()->NewNode(common()->IfSuccess(), value);
1331 } else { 1330 } else {
1332 DCHECK(access_info.constant()->IsFunctionTemplateInfo()); 1331 DCHECK(access_info.constant()->IsFunctionTemplateInfo());
1333 Handle<FunctionTemplateInfo> function_template_info( 1332 Handle<FunctionTemplateInfo> function_template_info(
1334 Handle<FunctionTemplateInfo>::cast(access_info.constant())); 1333 Handle<FunctionTemplateInfo>::cast(access_info.constant()));
1335 DCHECK(!function_template_info->call_code()->IsUndefined(isolate())); 1334 DCHECK(!function_template_info->call_code()->IsUndefined(isolate()));
1336 ValueEffectControl value_effect_control = InlineApiCall( 1335 ValueEffectControl value_effect_control = InlineApiCall(
1337 receiver, context, target, frame_state0, nullptr, effect, control, 1336 receiver, context, target, frame_state0, nullptr, effect, control,
1338 shared_info, function_template_info); 1337 shared_info, function_template_info);
(...skipping 15 matching lines...) Expand all
1354 OutputFrameStateCombine::Ignore(), 1353 OutputFrameStateCombine::Ignore(),
1355 frame_info0), 1354 frame_info0),
1356 graph()->NewNode(common()->StateValues(2, SparseInputMask::Dense()), 1355 graph()->NewNode(common()->StateValues(2, SparseInputMask::Dense()),
1357 receiver, value), 1356 receiver, value),
1358 jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(), 1357 jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(),
1359 context, target, frame_state); 1358 context, target, frame_state);
1360 1359
1361 // Introduce the call to the setter function. 1360 // Introduce the call to the setter function.
1362 if (access_info.constant()->IsJSFunction()) { 1361 if (access_info.constant()->IsJSFunction()) {
1363 effect = graph()->NewNode( 1362 effect = graph()->NewNode(
1364 javascript()->CallFunction( 1363 javascript()->Call(3, 0.0f, VectorSlotPair(),
1365 3, 0.0f, VectorSlotPair(), 1364 ConvertReceiverMode::kNotNullOrUndefined),
1366 ConvertReceiverMode::kNotNullOrUndefined),
1367 target, receiver, value, context, frame_state0, effect, control); 1365 target, receiver, value, context, frame_state0, effect, control);
1368 control = graph()->NewNode(common()->IfSuccess(), effect); 1366 control = graph()->NewNode(common()->IfSuccess(), effect);
1369 } else { 1367 } else {
1370 DCHECK(access_info.constant()->IsFunctionTemplateInfo()); 1368 DCHECK(access_info.constant()->IsFunctionTemplateInfo());
1371 Handle<FunctionTemplateInfo> function_template_info( 1369 Handle<FunctionTemplateInfo> function_template_info(
1372 Handle<FunctionTemplateInfo>::cast(access_info.constant())); 1370 Handle<FunctionTemplateInfo>::cast(access_info.constant()));
1373 DCHECK(!function_template_info->call_code()->IsUndefined(isolate())); 1371 DCHECK(!function_template_info->call_code()->IsUndefined(isolate()));
1374 ValueEffectControl value_effect_control = InlineApiCall( 1372 ValueEffectControl value_effect_control = InlineApiCall(
1375 receiver, context, target, frame_state0, value, effect, control, 1373 receiver, context, target, frame_state0, value, effect, control,
1376 shared_info, function_template_info); 1374 shared_info, function_template_info);
(...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 return jsgraph()->javascript(); 2256 return jsgraph()->javascript();
2259 } 2257 }
2260 2258
2261 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { 2259 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const {
2262 return jsgraph()->simplified(); 2260 return jsgraph()->simplified();
2263 } 2261 }
2264 2262
2265 } // namespace compiler 2263 } // namespace compiler
2266 } // namespace internal 2264 } // namespace internal
2267 } // namespace v8 2265 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-intrinsic-lowering.cc ('k') | src/compiler/js-operator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698