Lines Matching refs:node

13 #include "src/compiler/node-matchers.h"
14 #include "src/compiler/node-properties.h"
27 Reduction JSIntrinsicLowering::Reduce(Node* node) {
28 if (node->opcode() != IrOpcode::kJSCallRuntime) return NoChange();
30 Runtime::FunctionForId(CallRuntimeParametersOf(node->op()).id());
34 return ReduceCreateIterResultObject(node);
36 return ReduceDeoptimizeNow(node);
38 return ReduceGeneratorClose(node);
40 return ReduceGeneratorGetInputOrDebugPos(node);
42 return ReduceGeneratorGetResumeMode(node);
44 return ReduceIsInstanceType(node, JS_ARRAY_TYPE);
46 return ReduceIsInstanceType(node, JS_TYPED_ARRAY_TYPE);
48 return ReduceIsInstanceType(node, JS_REGEXP_TYPE);
50 return ReduceIsJSReceiver(node);
52 return ReduceIsSmi(node);
54 return ReduceFixedArrayGet(node);
56 return ReduceFixedArraySet(node);
58 return ReduceRegExpExec(node);
60 return ReduceSubString(node);
62 return ReduceToInteger(node);
64 return ReduceToLength(node);
66 return ReduceToNumber(node);
68 return ReduceToObject(node);
70 return ReduceToString(node);
72 return ReduceCall(node);
74 return ReduceNewObject(node);
76 return ReduceGetSuperConstructor(node);
84 Reduction JSIntrinsicLowering::ReduceCreateIterResultObject(Node* node) {
85 Node* const value = NodeProperties::GetValueInput(node, 0);
86 Node* const done = NodeProperties::GetValueInput(node, 1);
87 Node* const context = NodeProperties::GetContextInput(node);
88 Node* const effect = NodeProperties::GetEffectInput(node);
89 return Change(node, javascript()->CreateIterResultObject(), value, done,
94 Reduction JSIntrinsicLowering::ReduceDeoptimizeNow(Node* node) {
96 Node* const frame_state = NodeProperties::GetFrameStateInput(node);
97 Node* const effect = NodeProperties::GetEffectInput(node);
98 Node* const control = NodeProperties::GetControlInput(node);
107 node->TrimInputCount(0);
108 NodeProperties::ChangeOp(node, common()->Dead());
109 return Changed(node);
112 Reduction JSIntrinsicLowering::ReduceGeneratorClose(Node* node) {
113 Node* const generator = NodeProperties::GetValueInput(node, 0);
114 Node* const effect = NodeProperties::GetEffectInput(node);
115 Node* const control = NodeProperties::GetControlInput(node);
121 ReplaceWithValue(node, undefined, node);
122 NodeProperties::RemoveType(node);
123 return Change(node, op, generator, closed, effect, control);
126 Reduction JSIntrinsicLowering::ReduceGeneratorGetInputOrDebugPos(Node* node) {
127 Node* const generator = NodeProperties::GetValueInput(node, 0);
128 Node* const effect = NodeProperties::GetEffectInput(node);
129 Node* const control = NodeProperties::GetControlInput(node);
133 return Change(node, op, generator, effect, control);
136 Reduction JSIntrinsicLowering::ReduceGeneratorGetResumeMode(Node* node) {
137 Node* const generator = NodeProperties::GetValueInput(node, 0);
138 Node* const effect = NodeProperties::GetEffectInput(node);
139 Node* const control = NodeProperties::GetControlInput(node);
143 return Change(node, op, generator, effect, control);
147 Node* node, InstanceType instance_type) {
153 Node* value = NodeProperties::GetValueInput(node, 0);
154 Node* effect = NodeProperties::GetEffectInput(node);
155 Node* control = NodeProperties::GetControlInput(node);
175 // Replace all effect uses of {node} with the {ephi}.
177 ReplaceWithValue(node, node, ephi);
179 // Turn the {node} into a Phi.
180 return Change(node, common()->Phi(MachineRepresentation::kTagged, 2), vtrue,
185 Reduction JSIntrinsicLowering::ReduceIsJSReceiver(Node* node) {
186 return Change(node, simplified()->ObjectIsReceiver());
190 Reduction JSIntrinsicLowering::ReduceIsSmi(Node* node) {
191 return Change(node, simplified()->ObjectIsSmi());
195 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op) {
196 // Replace all effect uses of {node} with the effect dependency.
197 RelaxEffectsAndControls(node);
199 NodeProperties::RemoveNonValueInputs(node);
201 NodeProperties::ChangeOp(node, op);
202 return Changed(node);
206 Reduction JSIntrinsicLowering::ReduceFixedArrayGet(Node* node) {
207 Node* base = node->InputAt(0);
208 Node* index = node->InputAt(1);
209 Node* effect = NodeProperties::GetEffectInput(node);
210 Node* control = NodeProperties::GetControlInput(node);
212 node, simplified()->LoadElement(AccessBuilder::ForFixedArrayElement()),
217 Reduction JSIntrinsicLowering::ReduceFixedArraySet(Node* node) {
218 Node* base = node->InputAt(0);
219 Node* index = node->InputAt(1);
220 Node* value = node->InputAt(2);
221 Node* effect = NodeProperties::GetEffectInput(node);
222 Node* control = NodeProperties::GetControlInput(node);
226 ReplaceWithValue(node, value, store);
231 Reduction JSIntrinsicLowering::ReduceRegExpExec(Node* node) {
232 return Change(node, CodeFactory::RegExpExec(isolate()), 4);
236 Reduction JSIntrinsicLowering::ReduceSubString(Node* node) {
237 return Change(node, CodeFactory::SubString(isolate()), 3);
241 Reduction JSIntrinsicLowering::ReduceToInteger(Node* node) {
242 NodeProperties::ChangeOp(node, javascript()->ToInteger());
243 return Changed(node);
247 Reduction JSIntrinsicLowering::ReduceToNumber(Node* node) {
248 NodeProperties::ChangeOp(node, javascript()->ToNumber());
249 return Changed(node);
253 Reduction JSIntrinsicLowering::ReduceToLength(Node* node) {
254 NodeProperties::ChangeOp(node, javascript()->ToLength());
255 return Changed(node);
259 Reduction JSIntrinsicLowering::ReduceToObject(Node* node) {
260 NodeProperties::ChangeOp(node, javascript()->ToObject());
261 return Changed(node);
265 Reduction JSIntrinsicLowering::ReduceToString(Node* node) {
266 NodeProperties::ChangeOp(node, javascript()->ToString());
267 return Changed(node);
271 Reduction JSIntrinsicLowering::ReduceCall(Node* node) {
272 size_t const arity = CallRuntimeParametersOf(node->op()).arity();
274 node, javascript()->CallFunction(arity, 0.0f, VectorSlotPair(),
277 return Changed(node);
280 Reduction JSIntrinsicLowering::ReduceNewObject(Node* node) {
281 return Change(node, CodeFactory::FastNewObject(isolate()), 0);
284 Reduction JSIntrinsicLowering::ReduceGetSuperConstructor(Node* node) {
285 Node* active_function = NodeProperties::GetValueInput(node, 0);
286 Node* effect = NodeProperties::GetEffectInput(node);
287 Node* control = NodeProperties::GetControlInput(node);
291 return Change(node, simplified()->LoadField(AccessBuilder::ForMapPrototype()),
295 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a,
297 RelaxControls(node);
298 node->ReplaceInput(0, a);
299 node->ReplaceInput(1, b);
300 node->TrimInputCount(2);
301 NodeProperties::ChangeOp(node, op);
302 return Changed(node);
306 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a,
308 RelaxControls(node);
309 node->ReplaceInput(0, a);
310 node->ReplaceInput(1, b);
311 node->ReplaceInput(2, c);
312 node->TrimInputCount(3);
313 NodeProperties::ChangeOp(node, op);
314 return Changed(node);
318 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a,
320 RelaxControls(node);
321 node->ReplaceInput(0, a);
322 node->ReplaceInput(1, b);
323 node->ReplaceInput(2, c);
324 node->ReplaceInput(3, d);
325 node->TrimInputCount(4);
326 NodeProperties::ChangeOp(node, op);
327 return Changed(node);
331 Reduction JSIntrinsicLowering::Change(Node* node, Callable const& callable,
335 CallDescriptor::kNeedsFrameState, node->op()->properties());
336 node->InsertInput(graph()->zone(), 0,
338 NodeProperties::ChangeOp(node, common()->Call(desc));
339 return Changed(node);