Commit af0b5af1 authored by Georg Neis's avatar Georg Neis Committed by Commit Bot

[turbofan] Extend list of operators that only produce HeapObjects

Change-Id: If8763d2a46a13e75722f2f5314ba50dc9df281e0
Reviewed-on: https://chromium-review.googlesource.com/c/1396089Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58565}
parent 3c54b7a4
...@@ -134,28 +134,28 @@ ...@@ -134,28 +134,28 @@
V(JSNegate) V(JSNegate)
#define JS_CREATE_OP_LIST(V) \ #define JS_CREATE_OP_LIST(V) \
V(JSCloneObject) \
V(JSCreate) \ V(JSCreate) \
V(JSCreateArguments) \ V(JSCreateArguments) \
V(JSCreateArray) \ V(JSCreateArray) \
V(JSCreateArrayFromIterable) \
V(JSCreateArrayIterator) \ V(JSCreateArrayIterator) \
V(JSCreateAsyncFunctionObject) \ V(JSCreateAsyncFunctionObject) \
V(JSCreateBoundFunction) \ V(JSCreateBoundFunction) \
V(JSCreateClosure) \ V(JSCreateClosure) \
V(JSCreateCollectionIterator) \ V(JSCreateCollectionIterator) \
V(JSCreateEmptyLiteralArray) \
V(JSCreateEmptyLiteralObject) \
V(JSCreateGeneratorObject) \ V(JSCreateGeneratorObject) \
V(JSCreateIterResultObject) \ V(JSCreateIterResultObject) \
V(JSCreateStringIterator) \
V(JSCreateKeyValueArray) \ V(JSCreateKeyValueArray) \
V(JSCreateObject) \
V(JSCreatePromise) \
V(JSCreateTypedArray) \
V(JSCreateLiteralArray) \ V(JSCreateLiteralArray) \
V(JSCreateEmptyLiteralArray) \
V(JSCreateArrayFromIterable) \
V(JSCreateLiteralObject) \ V(JSCreateLiteralObject) \
V(JSCreateEmptyLiteralObject) \ V(JSCreateLiteralRegExp) \
V(JSCloneObject) \ V(JSCreateObject) \
V(JSCreateLiteralRegExp) V(JSCreatePromise) \
V(JSCreateStringIterator) \
V(JSCreateTypedArray)
#define JS_OBJECT_OP_LIST(V) \ #define JS_OBJECT_OP_LIST(V) \
JS_CREATE_OP_LIST(V) \ JS_CREATE_OP_LIST(V) \
......
...@@ -83,27 +83,37 @@ bool NeedsCheckHeapObject(Node* receiver) { ...@@ -83,27 +83,37 @@ bool NeedsCheckHeapObject(Node* receiver) {
switch (receiver->opcode()) { switch (receiver->opcode()) {
case IrOpcode::kConvertReceiver: case IrOpcode::kConvertReceiver:
case IrOpcode::kHeapConstant: case IrOpcode::kHeapConstant:
case IrOpcode::kJSCloneObject:
case IrOpcode::kJSConstruct:
case IrOpcode::kJSConstructForwardVarargs:
case IrOpcode::kJSConstructWithArrayLike:
case IrOpcode::kJSConstructWithSpread:
case IrOpcode::kJSCreate: case IrOpcode::kJSCreate:
case IrOpcode::kJSCreateArguments: case IrOpcode::kJSCreateArguments:
case IrOpcode::kJSCreateArray: case IrOpcode::kJSCreateArray:
case IrOpcode::kJSCreateArrayFromIterable:
case IrOpcode::kJSCreateArrayIterator:
case IrOpcode::kJSCreateAsyncFunctionObject:
case IrOpcode::kJSCreateBoundFunction:
case IrOpcode::kJSCreateClosure: case IrOpcode::kJSCreateClosure:
case IrOpcode::kJSCreateCollectionIterator:
case IrOpcode::kJSCreateEmptyLiteralArray:
case IrOpcode::kJSCreateEmptyLiteralObject:
case IrOpcode::kJSCreateGeneratorObject:
case IrOpcode::kJSCreateIterResultObject: case IrOpcode::kJSCreateIterResultObject:
case IrOpcode::kJSCreateKeyValueArray:
case IrOpcode::kJSCreateLiteralArray: case IrOpcode::kJSCreateLiteralArray:
case IrOpcode::kJSCreateEmptyLiteralArray:
case IrOpcode::kJSCreateArrayFromIterable:
case IrOpcode::kJSCreateLiteralObject: case IrOpcode::kJSCreateLiteralObject:
case IrOpcode::kJSCreateEmptyLiteralObject:
case IrOpcode::kJSCreateLiteralRegExp: case IrOpcode::kJSCreateLiteralRegExp:
case IrOpcode::kJSCreateGeneratorObject: case IrOpcode::kJSCreateObject:
case IrOpcode::kJSConstructForwardVarargs: case IrOpcode::kJSCreatePromise:
case IrOpcode::kJSConstruct: case IrOpcode::kJSCreateStringIterator:
case IrOpcode::kJSConstructWithArrayLike: case IrOpcode::kJSCreateTypedArray:
case IrOpcode::kJSConstructWithSpread: case IrOpcode::kJSGetSuperConstructor:
case IrOpcode::kJSToName: case IrOpcode::kJSToName:
case IrOpcode::kJSToString:
case IrOpcode::kJSToObject: case IrOpcode::kJSToObject:
case IrOpcode::kJSToString:
case IrOpcode::kTypeOf: case IrOpcode::kTypeOf:
case IrOpcode::kJSGetSuperConstructor:
return false; return false;
case IrOpcode::kPhi: { case IrOpcode::kPhi: {
Node* control = NodeProperties::GetControlInput(receiver); Node* control = NodeProperties::GetControlInput(receiver);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment