Index: src/compiler/js-generic-lowering.cc |
diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc |
index cf9ef1717177b593119b5326bc214938cbc91a95..7dad83b10b5aebc1f40a070791c718373bbd199c 100644 |
--- a/src/compiler/js-generic-lowering.cc |
+++ b/src/compiler/js-generic-lowering.cc |
@@ -17,10 +17,8 @@ namespace v8 { |
namespace internal { |
namespace compiler { |
-JSGenericLowering::JSGenericLowering(CompilationInfo* info, JSGraph* jsgraph) |
- : info_(info), |
- jsgraph_(jsgraph), |
- linkage_(new (jsgraph->zone()) Linkage(jsgraph->zone(), info)) {} |
+JSGenericLowering::JSGenericLowering(bool is_typing_enabled, JSGraph* jsgraph) |
+ : is_typing_enabled_(is_typing_enabled), jsgraph_(jsgraph) {} |
void JSGenericLowering::PatchOperator(Node* node, const Operator* op) { |
@@ -45,7 +43,7 @@ Reduction JSGenericLowering::Reduce(Node* node) { |
// TODO(mstarzinger): If typing is enabled then simplified lowering will |
// have inserted the correct ChangeBoolToBit, otherwise we need to perform |
// poor-man's representation inference here and insert manual change. |
- if (!info()->is_typing_enabled()) { |
+ if (!is_typing_enabled_) { |
Node* condition = node->InputAt(0); |
if (condition->opcode() != IrOpcode::kAlways) { |
Node* test = graph()->NewNode(machine()->WordEqual(), condition, |
@@ -130,8 +128,8 @@ static CallDescriptor::Flags FlagsForNode(Node* node) { |
void JSGenericLowering::ReplaceWithCompareIC(Node* node, Token::Value token) { |
Callable callable = CodeFactory::CompareIC(isolate(), token); |
bool has_frame_state = OperatorProperties::HasFrameStateInput(node->op()); |
- CallDescriptor* desc_compare = linkage()->GetStubCallDescriptor( |
- callable.descriptor(), 0, |
+ CallDescriptor* desc_compare = Linkage::GetStubCallDescriptor( |
+ isolate(), zone(), callable.descriptor(), 0, |
CallDescriptor::kPatchableCallSiteWithNop | FlagsForNode(node)); |
NodeVector inputs(zone()); |
inputs.reserve(node->InputCount() + 1); |
@@ -172,8 +170,9 @@ void JSGenericLowering::ReplaceWithCompareIC(Node* node, Token::Value token) { |
void JSGenericLowering::ReplaceWithStubCall(Node* node, Callable callable, |
CallDescriptor::Flags flags) { |
Operator::Properties properties = node->op()->properties(); |
- CallDescriptor* desc = linkage()->GetStubCallDescriptor( |
- callable.descriptor(), 0, flags | FlagsForNode(node), properties); |
+ CallDescriptor* desc = |
+ Linkage::GetStubCallDescriptor(isolate(), zone(), callable.descriptor(), |
+ 0, flags | FlagsForNode(node), properties); |
Node* stub_code = jsgraph()->HeapConstant(callable.code()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |
@@ -186,8 +185,9 @@ void JSGenericLowering::ReplaceWithBuiltinCall(Node* node, |
Operator::Properties properties = node->op()->properties(); |
Callable callable = |
CodeFactory::CallFunction(isolate(), nargs - 1, NO_CALL_FUNCTION_FLAGS); |
- CallDescriptor* desc = linkage()->GetStubCallDescriptor( |
- callable.descriptor(), nargs, FlagsForNode(node), properties); |
+ CallDescriptor* desc = |
+ Linkage::GetStubCallDescriptor(isolate(), zone(), callable.descriptor(), |
+ nargs, FlagsForNode(node), properties); |
Node* global_object = graph()->NewNode( |
machine()->Load(kMachAnyTagged), NodeProperties::GetContextInput(node), |
jsgraph()->IntPtrConstant( |
@@ -216,7 +216,7 @@ void JSGenericLowering::ReplaceWithRuntimeCall(Node* node, |
const Runtime::Function* fun = Runtime::FunctionForId(f); |
int nargs = (nargs_override < 0) ? fun->nargs : nargs_override; |
CallDescriptor* desc = |
- linkage()->GetRuntimeCallDescriptor(f, nargs, properties); |
+ Linkage::GetRuntimeCallDescriptor(zone(), f, nargs, properties); |
Node* ref = jsgraph()->ExternalConstant(ExternalReference(f, isolate())); |
Node* arity = jsgraph()->Int32Constant(nargs); |
PatchInsertInput(node, 0, jsgraph()->CEntryStubConstant(fun->result_size)); |
@@ -318,8 +318,8 @@ void JSGenericLowering::LowerJSInstanceOf(Node* node) { |
InstanceofStub::kArgsInRegisters); |
InstanceofStub stub(isolate(), flags); |
CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
- CallDescriptor* desc = |
- linkage()->GetStubCallDescriptor(d, 0, FlagsForNode(node)); |
+ CallDescriptor* desc = Linkage::GetStubCallDescriptor(isolate(), zone(), d, 0, |
+ FlagsForNode(node)); |
Node* stub_code = jsgraph()->HeapConstant(stub.GetCode()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |
@@ -374,8 +374,8 @@ void JSGenericLowering::LowerJSCallConstruct(Node* node) { |
int arity = OpParameter<int>(node); |
CallConstructStub stub(isolate(), NO_CALL_CONSTRUCTOR_FLAGS); |
CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
- CallDescriptor* desc = |
- linkage()->GetStubCallDescriptor(d, arity, FlagsForNode(node)); |
+ CallDescriptor* desc = Linkage::GetStubCallDescriptor( |
+ isolate(), zone(), d, arity, FlagsForNode(node)); |
Node* stub_code = jsgraph()->HeapConstant(stub.GetCode()); |
Node* construct = NodeProperties::GetValueInput(node, 0); |
PatchInsertInput(node, 0, stub_code); |
@@ -418,8 +418,8 @@ bool JSGenericLowering::TryLowerDirectJSCall(Node* node) { |
context = jsgraph()->HeapConstant(Handle<Context>(function->context())); |
} |
node->ReplaceInput(index, context); |
- CallDescriptor* desc = |
- linkage()->GetJSCallDescriptor(1 + arg_count, FlagsForNode(node)); |
+ CallDescriptor* desc = Linkage::GetJSCallDescriptor( |
+ zone(), false, 1 + arg_count, FlagsForNode(node)); |
PatchOperator(node, common()->Call(desc)); |
return true; |
} |
@@ -434,8 +434,9 @@ void JSGenericLowering::LowerJSCallFunction(Node* node) { |
int arg_count = static_cast<int>(p.arity() - 2); |
CallFunctionStub stub(isolate(), arg_count, p.flags()); |
CallInterfaceDescriptor d = stub.GetCallInterfaceDescriptor(); |
- CallDescriptor* desc = linkage()->GetStubCallDescriptor( |
- d, static_cast<int>(p.arity() - 1), FlagsForNode(node)); |
+ CallDescriptor* desc = Linkage::GetStubCallDescriptor( |
+ isolate(), zone(), d, static_cast<int>(p.arity() - 1), |
+ FlagsForNode(node)); |
Node* stub_code = jsgraph()->HeapConstant(stub.GetCode()); |
PatchInsertInput(node, 0, stub_code); |
PatchOperator(node, common()->Call(desc)); |