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

[turbofan] Rename "js_heap_broker" to "broker".

There's no ambiguity and the shorter name makes things easier to read.

Bug: v8:7790
Change-Id: Ibcf3fd7f38a91e26a83cd335fad0ec80a5fe9be1
Reviewed-on: https://chromium-review.googlesource.com/c/1278392
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56623}
parent 63f92a9f
...@@ -245,10 +245,10 @@ Handle<Cell> PropertyAccessInfo::export_cell() const { ...@@ -245,10 +245,10 @@ Handle<Cell> PropertyAccessInfo::export_cell() const {
return Handle<Cell>::cast(constant_); return Handle<Cell>::cast(constant_);
} }
AccessInfoFactory::AccessInfoFactory(JSHeapBroker* js_heap_broker, AccessInfoFactory::AccessInfoFactory(JSHeapBroker* broker,
CompilationDependencies* dependencies, CompilationDependencies* dependencies,
Handle<Context> native_context, Zone* zone) Handle<Context> native_context, Zone* zone)
: js_heap_broker_(js_heap_broker), : broker_(broker),
dependencies_(dependencies), dependencies_(dependencies),
native_context_(native_context), native_context_(native_context),
isolate_(native_context->GetIsolate()), isolate_(native_context->GetIsolate()),
...@@ -404,12 +404,12 @@ bool AccessInfoFactory::ComputePropertyAccessInfo( ...@@ -404,12 +404,12 @@ bool AccessInfoFactory::ComputePropertyAccessInfo(
// The field type was cleared by the GC, so we don't know anything // The field type was cleared by the GC, so we don't know anything
// about the contents now. // about the contents now.
} else if (descriptors_field_type->IsClass()) { } else if (descriptors_field_type->IsClass()) {
MapRef map_ref(js_heap_broker(), map); MapRef map_ref(broker(), map);
map_ref.SerializeOwnDescriptors(); // TODO(neis): Remove later. map_ref.SerializeOwnDescriptors(); // TODO(neis): Remove later.
dependencies()->DependOnFieldType(map_ref, number); dependencies()->DependOnFieldType(map_ref, number);
// Remember the field map, and try to infer a useful type. // Remember the field map, and try to infer a useful type.
Handle<Map> map(descriptors_field_type->AsClass(), isolate()); Handle<Map> map(descriptors_field_type->AsClass(), isolate());
field_type = Type::For(MapRef(js_heap_broker(), map)); field_type = Type::For(MapRef(broker(), map));
field_map = MaybeHandle<Map>(map); field_map = MaybeHandle<Map>(map);
} }
} }
...@@ -709,17 +709,17 @@ bool AccessInfoFactory::LookupTransition(Handle<Map> map, Handle<Name> name, ...@@ -709,17 +709,17 @@ bool AccessInfoFactory::LookupTransition(Handle<Map> map, Handle<Name> name,
// Store is not safe if the field type was cleared. // Store is not safe if the field type was cleared.
return false; return false;
} else if (descriptors_field_type->IsClass()) { } else if (descriptors_field_type->IsClass()) {
MapRef transition_map_ref(js_heap_broker(), transition_map); MapRef transition_map_ref(broker(), transition_map);
transition_map_ref transition_map_ref
.SerializeOwnDescriptors(); // TODO(neis): Remove later. .SerializeOwnDescriptors(); // TODO(neis): Remove later.
dependencies()->DependOnFieldType(transition_map_ref, number); dependencies()->DependOnFieldType(transition_map_ref, number);
// Remember the field map, and try to infer a useful type. // Remember the field map, and try to infer a useful type.
Handle<Map> map(descriptors_field_type->AsClass(), isolate()); Handle<Map> map(descriptors_field_type->AsClass(), isolate());
field_type = Type::For(MapRef(js_heap_broker(), map)); field_type = Type::For(MapRef(broker(), map));
field_map = MaybeHandle<Map>(map); field_map = MaybeHandle<Map>(map);
} }
} }
dependencies()->DependOnTransition(MapRef(js_heap_broker(), transition_map)); dependencies()->DependOnTransition(MapRef(broker(), transition_map));
// Transitioning stores are never stores to constant fields. // Transitioning stores are never stores to constant fields.
*access_info = PropertyAccessInfo::DataField( *access_info = PropertyAccessInfo::DataField(
PropertyConstness::kMutable, MapHandles{map}, field_index, PropertyConstness::kMutable, MapHandles{map}, field_index,
......
...@@ -143,8 +143,7 @@ class PropertyAccessInfo final { ...@@ -143,8 +143,7 @@ class PropertyAccessInfo final {
// Factory class for {ElementAccessInfo}s and {PropertyAccessInfo}s. // Factory class for {ElementAccessInfo}s and {PropertyAccessInfo}s.
class AccessInfoFactory final { class AccessInfoFactory final {
public: public:
AccessInfoFactory(JSHeapBroker* js_heap_broker, AccessInfoFactory(JSHeapBroker* broker, CompilationDependencies* dependencies,
CompilationDependencies* dependencies,
Handle<Context> native_context, Zone* zone); Handle<Context> native_context, Zone* zone);
...@@ -172,13 +171,13 @@ class AccessInfoFactory final { ...@@ -172,13 +171,13 @@ class AccessInfoFactory final {
PropertyAccessInfo* access_info); PropertyAccessInfo* access_info);
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Factory* factory() const; Factory* factory() const;
Isolate* isolate() const { return isolate_; } Isolate* isolate() const { return isolate_; }
Handle<Context> native_context() const { return native_context_; } Handle<Context> native_context() const { return native_context_; }
Zone* zone() const { return zone_; } Zone* zone() const { return zone_; }
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
CompilationDependencies* const dependencies_; CompilationDependencies* const dependencies_;
Handle<Context> const native_context_; Handle<Context> const native_context_;
Isolate* const isolate_; Isolate* const isolate_;
......
...@@ -38,13 +38,13 @@ Decision DecideCondition(JSHeapBroker* broker, Node* const cond) { ...@@ -38,13 +38,13 @@ Decision DecideCondition(JSHeapBroker* broker, Node* const cond) {
} // namespace } // namespace
CommonOperatorReducer::CommonOperatorReducer(Editor* editor, Graph* graph, CommonOperatorReducer::CommonOperatorReducer(Editor* editor, Graph* graph,
JSHeapBroker* js_heap_broker, JSHeapBroker* broker,
CommonOperatorBuilder* common, CommonOperatorBuilder* common,
MachineOperatorBuilder* machine, MachineOperatorBuilder* machine,
Zone* temp_zone) Zone* temp_zone)
: AdvancedReducer(editor), : AdvancedReducer(editor),
graph_(graph), graph_(graph),
js_heap_broker_(js_heap_broker), broker_(broker),
common_(common), common_(common),
machine_(machine), machine_(machine),
dead_(graph->NewNode(common->Dead())), dead_(graph->NewNode(common->Dead())),
...@@ -89,10 +89,8 @@ Reduction CommonOperatorReducer::ReduceBranch(Node* node) { ...@@ -89,10 +89,8 @@ Reduction CommonOperatorReducer::ReduceBranch(Node* node) {
// not (i.e. true being returned in the false case and vice versa). // not (i.e. true being returned in the false case and vice versa).
if (cond->opcode() == IrOpcode::kBooleanNot || if (cond->opcode() == IrOpcode::kBooleanNot ||
(cond->opcode() == IrOpcode::kSelect && (cond->opcode() == IrOpcode::kSelect &&
DecideCondition(js_heap_broker(), cond->InputAt(1)) == DecideCondition(broker(), cond->InputAt(1)) == Decision::kFalse &&
Decision::kFalse && DecideCondition(broker(), cond->InputAt(2)) == Decision::kTrue)) {
DecideCondition(js_heap_broker(), cond->InputAt(2)) ==
Decision::kTrue)) {
for (Node* const use : node->uses()) { for (Node* const use : node->uses()) {
switch (use->opcode()) { switch (use->opcode()) {
case IrOpcode::kIfTrue: case IrOpcode::kIfTrue:
...@@ -114,7 +112,7 @@ Reduction CommonOperatorReducer::ReduceBranch(Node* node) { ...@@ -114,7 +112,7 @@ Reduction CommonOperatorReducer::ReduceBranch(Node* node) {
node, common()->Branch(NegateBranchHint(BranchHintOf(node->op())))); node, common()->Branch(NegateBranchHint(BranchHintOf(node->op()))));
return Changed(node); return Changed(node);
} }
Decision const decision = DecideCondition(js_heap_broker(), cond); Decision const decision = DecideCondition(broker(), cond);
if (decision == Decision::kUnknown) return NoChange(); if (decision == Decision::kUnknown) return NoChange();
Node* const control = node->InputAt(1); Node* const control = node->InputAt(1);
for (Node* const use : node->uses()) { for (Node* const use : node->uses()) {
...@@ -154,7 +152,7 @@ Reduction CommonOperatorReducer::ReduceDeoptimizeConditional(Node* node) { ...@@ -154,7 +152,7 @@ Reduction CommonOperatorReducer::ReduceDeoptimizeConditional(Node* node) {
: common()->DeoptimizeUnless(p.kind(), p.reason(), p.feedback())); : common()->DeoptimizeUnless(p.kind(), p.reason(), p.feedback()));
return Changed(node); return Changed(node);
} }
Decision const decision = DecideCondition(js_heap_broker(), condition); Decision const decision = DecideCondition(broker(), condition);
if (decision == Decision::kUnknown) return NoChange(); if (decision == Decision::kUnknown) return NoChange();
if (condition_is_true == (decision == Decision::kTrue)) { if (condition_is_true == (decision == Decision::kTrue)) {
ReplaceWithValue(node, dead(), effect, control); ReplaceWithValue(node, dead(), effect, control);
...@@ -387,7 +385,7 @@ Reduction CommonOperatorReducer::ReduceSelect(Node* node) { ...@@ -387,7 +385,7 @@ Reduction CommonOperatorReducer::ReduceSelect(Node* node) {
Node* const vtrue = node->InputAt(1); Node* const vtrue = node->InputAt(1);
Node* const vfalse = node->InputAt(2); Node* const vfalse = node->InputAt(2);
if (vtrue == vfalse) return Replace(vtrue); if (vtrue == vfalse) return Replace(vtrue);
switch (DecideCondition(js_heap_broker(), cond)) { switch (DecideCondition(broker(), cond)) {
case Decision::kTrue: case Decision::kTrue:
return Replace(vtrue); return Replace(vtrue);
case Decision::kFalse: case Decision::kFalse:
......
...@@ -24,8 +24,7 @@ class Operator; ...@@ -24,8 +24,7 @@ class Operator;
class V8_EXPORT_PRIVATE CommonOperatorReducer final class V8_EXPORT_PRIVATE CommonOperatorReducer final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
CommonOperatorReducer(Editor* editor, Graph* graph, CommonOperatorReducer(Editor* editor, Graph* graph, JSHeapBroker* broker,
JSHeapBroker* js_heap_broker,
CommonOperatorBuilder* common, CommonOperatorBuilder* common,
MachineOperatorBuilder* machine, Zone* temp_zone); MachineOperatorBuilder* machine, Zone* temp_zone);
~CommonOperatorReducer() final = default; ~CommonOperatorReducer() final = default;
...@@ -48,13 +47,13 @@ class V8_EXPORT_PRIVATE CommonOperatorReducer final ...@@ -48,13 +47,13 @@ class V8_EXPORT_PRIVATE CommonOperatorReducer final
Reduction Change(Node* node, Operator const* op, Node* a, Node* b); Reduction Change(Node* node, Operator const* op, Node* a, Node* b);
Graph* graph() const { return graph_; } Graph* graph() const { return graph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
CommonOperatorBuilder* common() const { return common_; } CommonOperatorBuilder* common() const { return common_; }
MachineOperatorBuilder* machine() const { return machine_; } MachineOperatorBuilder* machine() const { return machine_; }
Node* dead() const { return dead_; } Node* dead() const { return dead_; }
Graph* const graph_; Graph* const graph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
CommonOperatorBuilder* const common_; CommonOperatorBuilder* const common_;
MachineOperatorBuilder* const machine_; MachineOperatorBuilder* const machine_;
Node* const dead_; Node* const dead_;
......
...@@ -12,10 +12,8 @@ namespace internal { ...@@ -12,10 +12,8 @@ namespace internal {
namespace compiler { namespace compiler {
ConstantFoldingReducer::ConstantFoldingReducer(Editor* editor, JSGraph* jsgraph, ConstantFoldingReducer::ConstantFoldingReducer(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker) JSHeapBroker* broker)
: AdvancedReducer(editor), : AdvancedReducer(editor), jsgraph_(jsgraph), broker_(broker) {}
jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker) {}
ConstantFoldingReducer::~ConstantFoldingReducer() = default; ConstantFoldingReducer::~ConstantFoldingReducer() = default;
...@@ -40,7 +38,7 @@ Reduction ConstantFoldingReducer::Reduce(Node* node) { ...@@ -40,7 +38,7 @@ Reduction ConstantFoldingReducer::Reduce(Node* node) {
replacement = jsgraph()->Constant(upper.AsHeapConstant()->Ref()); replacement = jsgraph()->Constant(upper.AsHeapConstant()->Ref());
} else if (upper.Is(Type::MinusZero())) { } else if (upper.Is(Type::MinusZero())) {
Factory* factory = jsgraph()->isolate()->factory(); Factory* factory = jsgraph()->isolate()->factory();
ObjectRef minus_zero(js_heap_broker(), factory->minus_zero_value()); ObjectRef minus_zero(broker(), factory->minus_zero_value());
replacement = jsgraph()->Constant(minus_zero); replacement = jsgraph()->Constant(minus_zero);
} else if (upper.Is(Type::NaN())) { } else if (upper.Is(Type::NaN())) {
replacement = jsgraph()->NaNConstant(); replacement = jsgraph()->NaNConstant();
......
...@@ -18,7 +18,7 @@ class V8_EXPORT_PRIVATE ConstantFoldingReducer final ...@@ -18,7 +18,7 @@ class V8_EXPORT_PRIVATE ConstantFoldingReducer final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
ConstantFoldingReducer(Editor* editor, JSGraph* jsgraph, ConstantFoldingReducer(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker); JSHeapBroker* broker);
~ConstantFoldingReducer() final; ~ConstantFoldingReducer() final;
const char* reducer_name() const override { return "ConstantFoldingReducer"; } const char* reducer_name() const override { return "ConstantFoldingReducer"; }
...@@ -27,10 +27,10 @@ class V8_EXPORT_PRIVATE ConstantFoldingReducer final ...@@ -27,10 +27,10 @@ class V8_EXPORT_PRIVATE ConstantFoldingReducer final
private: private:
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
DISALLOW_COPY_AND_ASSIGN(ConstantFoldingReducer); DISALLOW_COPY_AND_ASSIGN(ConstantFoldingReducer);
}; };
......
This diff is collapsed.
...@@ -38,12 +38,12 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer { ...@@ -38,12 +38,12 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer {
enum Flag { kNoFlags = 0u, kBailoutOnUninitialized = 1u << 0 }; enum Flag { kNoFlags = 0u, kBailoutOnUninitialized = 1u << 0 };
typedef base::Flags<Flag> Flags; typedef base::Flags<Flag> Flags;
JSCallReducer(Editor* editor, JSGraph* jsgraph, JSHeapBroker* js_heap_broker, JSCallReducer(Editor* editor, JSGraph* jsgraph, JSHeapBroker* broker,
Flags flags, Handle<Context> native_context, Flags flags, Handle<Context> native_context,
CompilationDependencies* dependencies) CompilationDependencies* dependencies)
: AdvancedReducer(editor), : AdvancedReducer(editor),
jsgraph_(jsgraph), jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
flags_(flags), flags_(flags),
native_context_(native_context), native_context_(native_context),
dependencies_(dependencies) {} dependencies_(dependencies) {}
...@@ -233,7 +233,7 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer { ...@@ -233,7 +233,7 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer {
Graph* graph() const; Graph* graph() const;
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Isolate* isolate() const; Isolate* isolate() const;
Factory* factory() const; Factory* factory() const;
Handle<Context> native_context() const { return native_context_; } Handle<Context> native_context() const { return native_context_; }
...@@ -245,7 +245,7 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer { ...@@ -245,7 +245,7 @@ class V8_EXPORT_PRIVATE JSCallReducer final : public AdvancedReducer {
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
Flags const flags_; Flags const flags_;
Handle<Context> const native_context_; Handle<Context> const native_context_;
CompilationDependencies* const dependencies_; CompilationDependencies* const dependencies_;
......
...@@ -135,7 +135,7 @@ Reduction JSContextSpecialization::ReduceJSLoadContext(Node* node) { ...@@ -135,7 +135,7 @@ Reduction JSContextSpecialization::ReduceJSLoadContext(Node* node) {
Node* context = NodeProperties::GetOuterContext(node, &depth); Node* context = NodeProperties::GetOuterContext(node, &depth);
base::Optional<ContextRef> maybe_concrete = base::Optional<ContextRef> maybe_concrete =
GetSpecializationContext(js_heap_broker(), context, &depth, outer()); GetSpecializationContext(broker(), context, &depth, outer());
if (!maybe_concrete.has_value()) { if (!maybe_concrete.has_value()) {
// We do not have a concrete context object, so we can only partially reduce // We do not have a concrete context object, so we can only partially reduce
// the load by folding-in the outer context node. // the load by folding-in the outer context node.
...@@ -197,7 +197,7 @@ Reduction JSContextSpecialization::ReduceJSStoreContext(Node* node) { ...@@ -197,7 +197,7 @@ Reduction JSContextSpecialization::ReduceJSStoreContext(Node* node) {
Node* context = NodeProperties::GetOuterContext(node, &depth); Node* context = NodeProperties::GetOuterContext(node, &depth);
base::Optional<ContextRef> maybe_concrete = base::Optional<ContextRef> maybe_concrete =
GetSpecializationContext(js_heap_broker(), context, &depth, outer()); GetSpecializationContext(broker(), context, &depth, outer());
if (!maybe_concrete.has_value()) { if (!maybe_concrete.has_value()) {
// We do not have a concrete context object, so we can only partially reduce // We do not have a concrete context object, so we can only partially reduce
// the load by folding-in the outer context node. // the load by folding-in the outer context node.
......
...@@ -34,14 +34,13 @@ struct OuterContext { ...@@ -34,14 +34,13 @@ struct OuterContext {
class JSContextSpecialization final : public AdvancedReducer { class JSContextSpecialization final : public AdvancedReducer {
public: public:
JSContextSpecialization(Editor* editor, JSGraph* jsgraph, JSContextSpecialization(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker, JSHeapBroker* broker, Maybe<OuterContext> outer,
Maybe<OuterContext> outer,
MaybeHandle<JSFunction> closure) MaybeHandle<JSFunction> closure)
: AdvancedReducer(editor), : AdvancedReducer(editor),
jsgraph_(jsgraph), jsgraph_(jsgraph),
outer_(outer), outer_(outer),
closure_(closure), closure_(closure),
js_heap_broker_(js_heap_broker) {} broker_(broker) {}
const char* reducer_name() const override { const char* reducer_name() const override {
return "JSContextSpecialization"; return "JSContextSpecialization";
...@@ -63,12 +62,12 @@ class JSContextSpecialization final : public AdvancedReducer { ...@@ -63,12 +62,12 @@ class JSContextSpecialization final : public AdvancedReducer {
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
Maybe<OuterContext> outer() const { return outer_; } Maybe<OuterContext> outer() const { return outer_; }
MaybeHandle<JSFunction> closure() const { return closure_; } MaybeHandle<JSFunction> closure() const { return closure_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
Maybe<OuterContext> outer_; Maybe<OuterContext> outer_;
MaybeHandle<JSFunction> closure_; MaybeHandle<JSFunction> closure_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
DISALLOW_COPY_AND_ASSIGN(JSContextSpecialization); DISALLOW_COPY_AND_ASSIGN(JSContextSpecialization);
}; };
......
...@@ -173,7 +173,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) { ...@@ -173,7 +173,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) {
Node* const outer_state = frame_state->InputAt(kFrameStateOuterStateInput); Node* const outer_state = frame_state->InputAt(kFrameStateOuterStateInput);
Node* const control = graph()->start(); Node* const control = graph()->start();
FrameStateInfo state_info = FrameStateInfoOf(frame_state->op()); FrameStateInfo state_info = FrameStateInfoOf(frame_state->op());
SharedFunctionInfoRef shared(js_heap_broker(), SharedFunctionInfoRef shared(broker(),
state_info.shared_info().ToHandleChecked()); state_info.shared_info().ToHandleChecked());
// Use the ArgumentsAccessStub for materializing both mapped and unmapped // Use the ArgumentsAccessStub for materializing both mapped and unmapped
...@@ -635,7 +635,7 @@ Reduction JSCreateLowering::ReduceJSCreateArray(Node* node) { ...@@ -635,7 +635,7 @@ Reduction JSCreateLowering::ReduceJSCreateArray(Node* node) {
{ {
Handle<AllocationSite> site; Handle<AllocationSite> site;
if (p.site().ToHandle(&site)) { if (p.site().ToHandle(&site)) {
site_ref = AllocationSiteRef(js_heap_broker(), site); site_ref = AllocationSiteRef(broker(), site);
} }
} }
PretenureFlag pretenure = NOT_TENURED; PretenureFlag pretenure = NOT_TENURED;
...@@ -896,7 +896,7 @@ Reduction JSCreateLowering::ReduceJSCreateBoundFunction(Node* node) { ...@@ -896,7 +896,7 @@ Reduction JSCreateLowering::ReduceJSCreateBoundFunction(Node* node) {
CreateBoundFunctionParameters const& p = CreateBoundFunctionParameters const& p =
CreateBoundFunctionParametersOf(node->op()); CreateBoundFunctionParametersOf(node->op());
int const arity = static_cast<int>(p.arity()); int const arity = static_cast<int>(p.arity());
MapRef const map(js_heap_broker(), p.map()); MapRef const map(broker(), p.map());
Node* bound_target_function = NodeProperties::GetValueInput(node, 0); Node* bound_target_function = NodeProperties::GetValueInput(node, 0);
Node* bound_this = NodeProperties::GetValueInput(node, 1); Node* bound_this = NodeProperties::GetValueInput(node, 1);
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
...@@ -934,9 +934,9 @@ Reduction JSCreateLowering::ReduceJSCreateBoundFunction(Node* node) { ...@@ -934,9 +934,9 @@ Reduction JSCreateLowering::ReduceJSCreateBoundFunction(Node* node) {
Reduction JSCreateLowering::ReduceJSCreateClosure(Node* node) { Reduction JSCreateLowering::ReduceJSCreateClosure(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateClosure, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateClosure, node->opcode());
CreateClosureParameters const& p = CreateClosureParametersOf(node->op()); CreateClosureParameters const& p = CreateClosureParametersOf(node->op());
SharedFunctionInfoRef shared(js_heap_broker(), p.shared_info()); SharedFunctionInfoRef shared(broker(), p.shared_info());
HeapObjectRef feedback_cell(js_heap_broker(), p.feedback_cell()); HeapObjectRef feedback_cell(broker(), p.feedback_cell());
HeapObjectRef code(js_heap_broker(), p.code()); HeapObjectRef code(broker(), p.code());
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node); Node* control = NodeProperties::GetControlInput(node);
Node* context = NodeProperties::GetContextInput(node); Node* context = NodeProperties::GetContextInput(node);
...@@ -945,7 +945,7 @@ Reduction JSCreateLowering::ReduceJSCreateClosure(Node* node) { ...@@ -945,7 +945,7 @@ Reduction JSCreateLowering::ReduceJSCreateClosure(Node* node) {
// seen more than one instantiation, this simplifies the generated code and // seen more than one instantiation, this simplifies the generated code and
// also serves as a heuristic of which allocation sites benefit from it. // also serves as a heuristic of which allocation sites benefit from it.
if (!feedback_cell.map().equals( if (!feedback_cell.map().equals(
MapRef(js_heap_broker(), factory()->many_closures_cell_map()))) { MapRef(broker(), factory()->many_closures_cell_map()))) {
return NoChange(); return NoChange();
} }
...@@ -1104,7 +1104,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralArrayOrObject(Node* node) { ...@@ -1104,7 +1104,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralArrayOrObject(Node* node) {
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node); Node* control = NodeProperties::GetControlInput(node);
FeedbackVectorRef feedback_vector(js_heap_broker(), p.feedback().vector()); FeedbackVectorRef feedback_vector(broker(), p.feedback().vector());
ObjectRef feedback = feedback_vector.get(p.feedback().slot()); ObjectRef feedback = feedback_vector.get(p.feedback().slot());
if (feedback.IsAllocationSite()) { if (feedback.IsAllocationSite()) {
AllocationSiteRef site = feedback.AsAllocationSite(); AllocationSiteRef site = feedback.AsAllocationSite();
...@@ -1127,7 +1127,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralArrayOrObject(Node* node) { ...@@ -1127,7 +1127,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralArrayOrObject(Node* node) {
Reduction JSCreateLowering::ReduceJSCreateEmptyLiteralArray(Node* node) { Reduction JSCreateLowering::ReduceJSCreateEmptyLiteralArray(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateEmptyLiteralArray, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateEmptyLiteralArray, node->opcode());
FeedbackParameter const& p = FeedbackParameterOf(node->op()); FeedbackParameter const& p = FeedbackParameterOf(node->op());
FeedbackVectorRef fv(js_heap_broker(), p.feedback().vector()); FeedbackVectorRef fv(broker(), p.feedback().vector());
ObjectRef feedback = fv.get(p.feedback().slot()); ObjectRef feedback = fv.get(p.feedback().slot());
if (feedback.IsAllocationSite()) { if (feedback.IsAllocationSite()) {
AllocationSiteRef site = feedback.AsAllocationSite(); AllocationSiteRef site = feedback.AsAllocationSite();
...@@ -1184,7 +1184,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralRegExp(Node* node) { ...@@ -1184,7 +1184,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralRegExp(Node* node) {
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node); Node* control = NodeProperties::GetControlInput(node);
FeedbackVectorRef feedback_vector(js_heap_broker(), p.feedback().vector()); FeedbackVectorRef feedback_vector(broker(), p.feedback().vector());
ObjectRef feedback = feedback_vector.get(p.feedback().slot()); ObjectRef feedback = feedback_vector.get(p.feedback().slot());
if (feedback.IsJSRegExp()) { if (feedback.IsJSRegExp()) {
JSRegExpRef boilerplate = feedback.AsJSRegExp(); JSRegExpRef boilerplate = feedback.AsJSRegExp();
...@@ -1199,7 +1199,7 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) { ...@@ -1199,7 +1199,7 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateFunctionContext, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateFunctionContext, node->opcode());
const CreateFunctionContextParameters& parameters = const CreateFunctionContextParameters& parameters =
CreateFunctionContextParametersOf(node->op()); CreateFunctionContextParametersOf(node->op());
ScopeInfoRef scope_info(js_heap_broker(), parameters.scope_info()); ScopeInfoRef scope_info(broker(), parameters.scope_info());
int slot_count = parameters.slot_count(); int slot_count = parameters.slot_count();
ScopeType scope_type = parameters.scope_type(); ScopeType scope_type = parameters.scope_type();
...@@ -1244,7 +1244,7 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) { ...@@ -1244,7 +1244,7 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) {
Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) { Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateWithContext, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateWithContext, node->opcode());
ScopeInfoRef scope_info(js_heap_broker(), ScopeInfoOf(node->op())); ScopeInfoRef scope_info(broker(), ScopeInfoOf(node->op()));
Node* extension = NodeProperties::GetValueInput(node, 0); Node* extension = NodeProperties::GetValueInput(node, 0);
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node); Node* control = NodeProperties::GetControlInput(node);
...@@ -1265,7 +1265,7 @@ Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) { ...@@ -1265,7 +1265,7 @@ Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) {
Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) { Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateCatchContext, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateCatchContext, node->opcode());
ScopeInfoRef scope_info(js_heap_broker(), ScopeInfoOf(node->op())); ScopeInfoRef scope_info(broker(), ScopeInfoOf(node->op()));
Node* exception = NodeProperties::GetValueInput(node, 0); Node* exception = NodeProperties::GetValueInput(node, 0);
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node); Node* control = NodeProperties::GetControlInput(node);
...@@ -1290,7 +1290,7 @@ Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) { ...@@ -1290,7 +1290,7 @@ Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) {
Reduction JSCreateLowering::ReduceJSCreateBlockContext(Node* node) { Reduction JSCreateLowering::ReduceJSCreateBlockContext(Node* node) {
DCHECK_EQ(IrOpcode::kJSCreateBlockContext, node->opcode()); DCHECK_EQ(IrOpcode::kJSCreateBlockContext, node->opcode());
ScopeInfoRef scope_info(js_heap_broker(), ScopeInfoOf(node->op())); ScopeInfoRef scope_info(broker(), ScopeInfoOf(node->op()));
int const context_length = scope_info.ContextLength(); int const context_length = scope_info.ContextLength();
// Use inline allocation for block contexts up to a size limit. // Use inline allocation for block contexts up to a size limit.
...@@ -1348,8 +1348,7 @@ Reduction JSCreateLowering::ReduceJSCreateObject(Node* node) { ...@@ -1348,8 +1348,7 @@ Reduction JSCreateLowering::ReduceJSCreateObject(Node* node) {
if (!prototype_type.IsHeapConstant()) return NoChange(); if (!prototype_type.IsHeapConstant()) return NoChange();
HeapObjectRef prototype_const = prototype_type.AsHeapConstant()->Ref(); HeapObjectRef prototype_const = prototype_type.AsHeapConstant()->Ref();
auto maybe_instance_map = auto maybe_instance_map = GetObjectCreateMap(broker(), prototype_const);
GetObjectCreateMap(js_heap_broker(), prototype_const);
if (!maybe_instance_map) return NoChange(); if (!maybe_instance_map) return NoChange();
MapRef instance_map = maybe_instance_map.value(); MapRef instance_map = maybe_instance_map.value();
...@@ -1826,7 +1825,7 @@ SimplifiedOperatorBuilder* JSCreateLowering::simplified() const { ...@@ -1826,7 +1825,7 @@ SimplifiedOperatorBuilder* JSCreateLowering::simplified() const {
} }
NativeContextRef JSCreateLowering::native_context() const { NativeContextRef JSCreateLowering::native_context() const {
return js_heap_broker()->native_context(); return broker()->native_context();
} }
} // namespace compiler } // namespace compiler
......
...@@ -33,11 +33,11 @@ class V8_EXPORT_PRIVATE JSCreateLowering final ...@@ -33,11 +33,11 @@ class V8_EXPORT_PRIVATE JSCreateLowering final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
JSCreateLowering(Editor* editor, CompilationDependencies* dependencies, JSCreateLowering(Editor* editor, CompilationDependencies* dependencies,
JSGraph* jsgraph, JSHeapBroker* js_heap_broker, Zone* zone) JSGraph* jsgraph, JSHeapBroker* broker, Zone* zone)
: AdvancedReducer(editor), : AdvancedReducer(editor),
dependencies_(dependencies), dependencies_(dependencies),
jsgraph_(jsgraph), jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
zone_(zone) {} zone_(zone) {}
~JSCreateLowering() final = default; ~JSCreateLowering() final = default;
...@@ -117,12 +117,12 @@ class V8_EXPORT_PRIVATE JSCreateLowering final ...@@ -117,12 +117,12 @@ class V8_EXPORT_PRIVATE JSCreateLowering final
CommonOperatorBuilder* common() const; CommonOperatorBuilder* common() const;
SimplifiedOperatorBuilder* simplified() const; SimplifiedOperatorBuilder* simplified() const;
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Zone* zone() const { return zone_; } Zone* zone() const { return zone_; }
CompilationDependencies* const dependencies_; CompilationDependencies* const dependencies_;
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
Zone* const zone_; Zone* const zone_;
}; };
......
...@@ -568,8 +568,7 @@ class V8_EXPORT_PRIVATE JSHeapBroker : public NON_EXPORTED_BASE(ZoneObject) { ...@@ -568,8 +568,7 @@ class V8_EXPORT_PRIVATE JSHeapBroker : public NON_EXPORTED_BASE(ZoneObject) {
optionally_something) \ optionally_something) \
auto optionally_something_ = optionally_something; \ auto optionally_something_ = optionally_something; \
if (!optionally_something_) \ if (!optionally_something_) \
return NoChangeBecauseOfMissingData(js_heap_broker(), __FUNCTION__, \ return NoChangeBecauseOfMissingData(broker(), __FUNCTION__, __LINE__); \
__LINE__); \
something_var = *optionally_something_; something_var = *optionally_something_;
class Reduction; class Reduction;
......
...@@ -606,8 +606,7 @@ Reduction JSInliner::ReduceJSCall(Node* node) { ...@@ -606,8 +606,7 @@ Reduction JSInliner::ReduceJSCall(Node* node) {
if (node->opcode() == IrOpcode::kJSCall && if (node->opcode() == IrOpcode::kJSCall &&
is_sloppy(shared_info->language_mode()) && !shared_info->native()) { is_sloppy(shared_info->language_mode()) && !shared_info->native()) {
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
if (NodeProperties::CanBePrimitive(js_heap_broker(), call.receiver(), if (NodeProperties::CanBePrimitive(broker(), call.receiver(), effect)) {
effect)) {
CallParameters const& p = CallParametersOf(node->op()); CallParameters const& p = CallParametersOf(node->op());
Node* global_proxy = jsgraph()->HeapConstant( Node* global_proxy = jsgraph()->HeapConstant(
handle(info_->native_context()->global_proxy(), isolate())); handle(info_->native_context()->global_proxy(), isolate()));
......
...@@ -24,13 +24,13 @@ class SourcePositionTable; ...@@ -24,13 +24,13 @@ class SourcePositionTable;
class JSInliner final : public AdvancedReducer { class JSInliner final : public AdvancedReducer {
public: public:
JSInliner(Editor* editor, Zone* local_zone, OptimizedCompilationInfo* info, JSInliner(Editor* editor, Zone* local_zone, OptimizedCompilationInfo* info,
JSGraph* jsgraph, JSHeapBroker* js_heap_broker, JSGraph* jsgraph, JSHeapBroker* broker,
SourcePositionTable* source_positions) SourcePositionTable* source_positions)
: AdvancedReducer(editor), : AdvancedReducer(editor),
local_zone_(local_zone), local_zone_(local_zone),
info_(info), info_(info),
jsgraph_(jsgraph), jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
source_positions_(source_positions) {} source_positions_(source_positions) {}
const char* reducer_name() const override { return "JSInliner"; } const char* reducer_name() const override { return "JSInliner"; }
...@@ -50,14 +50,14 @@ class JSInliner final : public AdvancedReducer { ...@@ -50,14 +50,14 @@ class JSInliner final : public AdvancedReducer {
Graph* graph() const; Graph* graph() const;
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
// TODO(neis): Make heap broker a component of JSGraph? // TODO(neis): Make heap broker a component of JSGraph?
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Isolate* isolate() const { return jsgraph_->isolate(); } Isolate* isolate() const { return jsgraph_->isolate(); }
Handle<Context> native_context() const; Handle<Context> native_context() const;
Zone* const local_zone_; Zone* const local_zone_;
OptimizedCompilationInfo* info_; OptimizedCompilationInfo* info_;
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
SourcePositionTable* const source_positions_; SourcePositionTable* const source_positions_;
bool DetermineCallTarget(Node* node, bool DetermineCallTarget(Node* node,
......
...@@ -51,7 +51,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final ...@@ -51,7 +51,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final
typedef base::Flags<Flag> Flags; typedef base::Flags<Flag> Flags;
JSNativeContextSpecialization(Editor* editor, JSGraph* jsgraph, JSNativeContextSpecialization(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker, Flags flags, JSHeapBroker* broker, Flags flags,
Handle<Context> native_context, Handle<Context> native_context,
CompilationDependencies* dependencies, CompilationDependencies* dependencies,
Zone* zone, Zone* shared_zone); Zone* zone, Zone* shared_zone);
...@@ -229,7 +229,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final ...@@ -229,7 +229,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final
Graph* graph() const; Graph* graph() const;
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Isolate* isolate() const; Isolate* isolate() const;
Factory* factory() const; Factory* factory() const;
CommonOperatorBuilder* common() const; CommonOperatorBuilder* common() const;
...@@ -238,15 +238,13 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final ...@@ -238,15 +238,13 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final
Flags flags() const { return flags_; } Flags flags() const { return flags_; }
Handle<JSGlobalObject> global_object() const { return global_object_; } Handle<JSGlobalObject> global_object() const { return global_object_; }
Handle<JSGlobalProxy> global_proxy() const { return global_proxy_; } Handle<JSGlobalProxy> global_proxy() const { return global_proxy_; }
NativeContextRef native_context() const { NativeContextRef native_context() const { return broker()->native_context(); }
return js_heap_broker()->native_context();
}
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
Zone* zone() const { return zone_; } Zone* zone() const { return zone_; }
Zone* shared_zone() const { return shared_zone_; } Zone* shared_zone() const { return shared_zone_; }
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
Flags const flags_; Flags const flags_;
Handle<JSGlobalObject> global_object_; Handle<JSGlobalObject> global_object_;
Handle<JSGlobalProxy> global_proxy_; Handle<JSGlobalProxy> global_proxy_;
......
...@@ -94,7 +94,7 @@ class JSBinopReduction final { ...@@ -94,7 +94,7 @@ class JSBinopReduction final {
if (BothInputsAre(Type::String()) || if (BothInputsAre(Type::String()) ||
BinaryOperationHintOf(node_->op()) == BinaryOperationHint::kString) { BinaryOperationHintOf(node_->op()) == BinaryOperationHint::kString) {
HeapObjectBinopMatcher m(node_); HeapObjectBinopMatcher m(node_);
JSHeapBroker* broker = lowering_->js_heap_broker(); JSHeapBroker* broker = lowering_->broker();
if (m.right().HasValue() && m.right().Ref(broker).IsString()) { if (m.right().HasValue() && m.right().Ref(broker).IsString()) {
StringRef right_string = m.right().Ref(broker).AsString(); StringRef right_string = m.right().Ref(broker).AsString();
if (right_string.length() >= ConsString::kMinLength) return true; if (right_string.length() >= ConsString::kMinLength) return true;
...@@ -414,12 +414,12 @@ class JSBinopReduction final { ...@@ -414,12 +414,12 @@ class JSBinopReduction final {
// - relax effects from generic but not-side-effecting operations // - relax effects from generic but not-side-effecting operations
JSTypedLowering::JSTypedLowering(Editor* editor, JSGraph* jsgraph, JSTypedLowering::JSTypedLowering(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker, Zone* zone) JSHeapBroker* broker, Zone* zone)
: AdvancedReducer(editor), : AdvancedReducer(editor),
jsgraph_(jsgraph), jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
empty_string_type_(Type::HeapConstant( empty_string_type_(Type::HeapConstant(broker, factory()->empty_string(),
js_heap_broker, factory()->empty_string(), graph()->zone())), graph()->zone())),
pointer_comparable_type_( pointer_comparable_type_(
Type::Union(Type::Oddball(), Type::Union(Type::Oddball(),
Type::Union(Type::SymbolOrReceiver(), empty_string_type_, Type::Union(Type::SymbolOrReceiver(), empty_string_type_,
...@@ -933,8 +933,8 @@ Reduction JSTypedLowering::ReduceJSToNumberInput(Node* input) { ...@@ -933,8 +933,8 @@ Reduction JSTypedLowering::ReduceJSToNumberInput(Node* input) {
if (input_type.Is(Type::String())) { if (input_type.Is(Type::String())) {
HeapObjectMatcher m(input); HeapObjectMatcher m(input);
if (m.HasValue() && m.Ref(js_heap_broker()).IsString()) { if (m.HasValue() && m.Ref(broker()).IsString()) {
StringRef input_value = m.Ref(js_heap_broker()).AsString(); StringRef input_value = m.Ref(broker()).AsString();
double number; double number;
ASSIGN_RETURN_NO_CHANGE_IF_DATA_MISSING(number, input_value.ToNumber()); ASSIGN_RETURN_NO_CHANGE_IF_DATA_MISSING(number, input_value.ToNumber());
return Replace(jsgraph()->Constant(number)); return Replace(jsgraph()->Constant(number));
...@@ -1107,8 +1107,8 @@ Reduction JSTypedLowering::ReduceJSLoadNamed(Node* node) { ...@@ -1107,8 +1107,8 @@ Reduction JSTypedLowering::ReduceJSLoadNamed(Node* node) {
DCHECK_EQ(IrOpcode::kJSLoadNamed, node->opcode()); DCHECK_EQ(IrOpcode::kJSLoadNamed, node->opcode());
Node* receiver = NodeProperties::GetValueInput(node, 0); Node* receiver = NodeProperties::GetValueInput(node, 0);
Type receiver_type = NodeProperties::GetType(receiver); Type receiver_type = NodeProperties::GetType(receiver);
NameRef name(js_heap_broker(), NamedAccessOf(node->op()).name()); NameRef name(broker(), NamedAccessOf(node->op()).name());
NameRef length_str(js_heap_broker(), factory()->length_string()); NameRef length_str(broker(), factory()->length_string());
// Optimize "length" property of strings. // Optimize "length" property of strings.
if (name.equals(length_str) && receiver_type.Is(Type::String())) { if (name.equals(length_str) && receiver_type.Is(Type::String())) {
Node* value = graph()->NewNode(simplified()->StringLength(), receiver); Node* value = graph()->NewNode(simplified()->StringLength(), receiver);
...@@ -1541,7 +1541,7 @@ Reduction JSTypedLowering::ReduceJSConstruct(Node* node) { ...@@ -1541,7 +1541,7 @@ Reduction JSTypedLowering::ReduceJSConstruct(Node* node) {
// Patch {node} to an indirect call via the {function}s construct stub. // Patch {node} to an indirect call via the {function}s construct stub.
bool use_builtin_construct_stub = shared.construct_as_builtin(); bool use_builtin_construct_stub = shared.construct_as_builtin();
CodeRef code(js_heap_broker(), CodeRef code(broker(),
use_builtin_construct_stub use_builtin_construct_stub
? BUILTIN_CODE(isolate(), JSBuiltinsConstructStub) ? BUILTIN_CODE(isolate(), JSBuiltinsConstructStub)
: BUILTIN_CODE(isolate(), JSConstructStubGeneric)); : BUILTIN_CODE(isolate(), JSConstructStubGeneric));
......
...@@ -31,8 +31,8 @@ enum Signedness { kSigned, kUnsigned }; ...@@ -31,8 +31,8 @@ enum Signedness { kSigned, kUnsigned };
class V8_EXPORT_PRIVATE JSTypedLowering final class V8_EXPORT_PRIVATE JSTypedLowering final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
JSTypedLowering(Editor* editor, JSGraph* jsgraph, JSTypedLowering(Editor* editor, JSGraph* jsgraph, JSHeapBroker* broker,
JSHeapBroker* js_heap_broker, Zone* zone); Zone* zone);
~JSTypedLowering() final = default; ~JSTypedLowering() final = default;
const char* reducer_name() const override { return "JSTypedLowering"; } const char* reducer_name() const override { return "JSTypedLowering"; }
...@@ -94,14 +94,14 @@ class V8_EXPORT_PRIVATE JSTypedLowering final ...@@ -94,14 +94,14 @@ class V8_EXPORT_PRIVATE JSTypedLowering final
Factory* factory() const; Factory* factory() const;
Graph* graph() const; Graph* graph() const;
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Isolate* isolate() const; Isolate* isolate() const;
JSOperatorBuilder* javascript() const; JSOperatorBuilder* javascript() const;
CommonOperatorBuilder* common() const; CommonOperatorBuilder* common() const;
SimplifiedOperatorBuilder* simplified() const; SimplifiedOperatorBuilder* simplified() const;
JSGraph* jsgraph_; JSGraph* jsgraph_;
JSHeapBroker* js_heap_broker_; JSHeapBroker* broker_;
Type empty_string_type_; Type empty_string_type_;
Type pointer_comparable_type_; Type pointer_comparable_type_;
TypeCache const& type_cache_; TypeCache const& type_cache_;
......
...@@ -16,26 +16,24 @@ namespace v8 { ...@@ -16,26 +16,24 @@ namespace v8 {
namespace internal { namespace internal {
namespace compiler { namespace compiler {
OperationTyper::OperationTyper(JSHeapBroker* js_heap_broker, Zone* zone) OperationTyper::OperationTyper(JSHeapBroker* broker, Zone* zone)
: zone_(zone), cache_(TypeCache::Get()) { : zone_(zone), cache_(TypeCache::Get()) {
Factory* factory = js_heap_broker->isolate()->factory(); Factory* factory = broker->isolate()->factory();
infinity_ = Type::NewConstant(V8_INFINITY, zone); infinity_ = Type::NewConstant(V8_INFINITY, zone);
minus_infinity_ = Type::NewConstant(-V8_INFINITY, zone); minus_infinity_ = Type::NewConstant(-V8_INFINITY, zone);
Type truncating_to_zero = Type::MinusZeroOrNaN(); Type truncating_to_zero = Type::MinusZeroOrNaN();
DCHECK(!truncating_to_zero.Maybe(Type::Integral32())); DCHECK(!truncating_to_zero.Maybe(Type::Integral32()));
singleton_empty_string_ = singleton_empty_string_ =
Type::HeapConstant(js_heap_broker, factory->empty_string(), zone); Type::HeapConstant(broker, factory->empty_string(), zone);
singleton_NaN_string_ = singleton_NaN_string_ =
Type::HeapConstant(js_heap_broker, factory->NaN_string(), zone); Type::HeapConstant(broker, factory->NaN_string(), zone);
singleton_zero_string_ = singleton_zero_string_ =
Type::HeapConstant(js_heap_broker, factory->zero_string(), zone); Type::HeapConstant(broker, factory->zero_string(), zone);
singleton_false_ = singleton_false_ = Type::HeapConstant(broker, factory->false_value(), zone);
Type::HeapConstant(js_heap_broker, factory->false_value(), zone); singleton_true_ = Type::HeapConstant(broker, factory->true_value(), zone);
singleton_true_ =
Type::HeapConstant(js_heap_broker, factory->true_value(), zone);
singleton_the_hole_ = singleton_the_hole_ =
Type::HeapConstant(js_heap_broker, factory->the_hole_value(), zone); Type::HeapConstant(broker, factory->the_hole_value(), zone);
signed32ish_ = Type::Union(Type::Signed32(), truncating_to_zero, zone); signed32ish_ = Type::Union(Type::Signed32(), truncating_to_zero, zone);
unsigned32ish_ = Type::Union(Type::Unsigned32(), truncating_to_zero, zone); unsigned32ish_ = Type::Union(Type::Unsigned32(), truncating_to_zero, zone);
......
...@@ -27,7 +27,7 @@ class TypeCache; ...@@ -27,7 +27,7 @@ class TypeCache;
class V8_EXPORT_PRIVATE OperationTyper { class V8_EXPORT_PRIVATE OperationTyper {
public: public:
OperationTyper(JSHeapBroker* js_heap_broker, Zone* zone); OperationTyper(JSHeapBroker* broker, Zone* zone);
// Typing Phi. // Typing Phi.
Type Merge(Type left, Type right); Type Merge(Type left, Type right);
......
This diff is collapsed.
...@@ -137,8 +137,7 @@ void PropertyAccessBuilder::BuildCheckMaps( ...@@ -137,8 +137,7 @@ void PropertyAccessBuilder::BuildCheckMaps(
if (receiver_map->is_stable()) { if (receiver_map->is_stable()) {
for (Handle<Map> map : receiver_maps) { for (Handle<Map> map : receiver_maps) {
if (map.is_identical_to(receiver_map)) { if (map.is_identical_to(receiver_map)) {
dependencies()->DependOnStableMap( dependencies()->DependOnStableMap(MapRef(broker(), receiver_map));
MapRef(js_heap_broker(), receiver_map));
return; return;
} }
} }
...@@ -207,7 +206,7 @@ Node* PropertyAccessBuilder::TryBuildLoadConstantDataField( ...@@ -207,7 +206,7 @@ Node* PropertyAccessBuilder::TryBuildLoadConstantDataField(
// the field. // the field.
DCHECK(access_info.IsDataConstantField()); DCHECK(access_info.IsDataConstantField());
DCHECK(!it.is_dictionary_holder()); DCHECK(!it.is_dictionary_holder());
MapRef map(js_heap_broker(), MapRef map(broker(),
handle(it.GetHolder<HeapObject>()->map(), isolate())); handle(it.GetHolder<HeapObject>()->map(), isolate()));
map.SerializeOwnDescriptors(); // TODO(neis): Remove later. map.SerializeOwnDescriptors(); // TODO(neis): Remove later.
dependencies()->DependOnFieldType(map, it.GetFieldDescriptorIndex()); dependencies()->DependOnFieldType(map, it.GetFieldDescriptorIndex());
...@@ -270,7 +269,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField( ...@@ -270,7 +269,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(
Handle<Map> field_map; Handle<Map> field_map;
if (access_info.field_map().ToHandle(&field_map)) { if (access_info.field_map().ToHandle(&field_map)) {
if (field_map->is_stable()) { if (field_map->is_stable()) {
dependencies()->DependOnStableMap(MapRef(js_heap_broker(), field_map)); dependencies()->DependOnStableMap(MapRef(broker(), field_map));
field_access.map = field_map; field_access.map = field_map;
} }
} }
......
...@@ -26,11 +26,9 @@ class SimplifiedOperatorBuilder; ...@@ -26,11 +26,9 @@ class SimplifiedOperatorBuilder;
class PropertyAccessBuilder { class PropertyAccessBuilder {
public: public:
PropertyAccessBuilder(JSGraph* jsgraph, JSHeapBroker* js_heap_broker, PropertyAccessBuilder(JSGraph* jsgraph, JSHeapBroker* broker,
CompilationDependencies* dependencies) CompilationDependencies* dependencies)
: jsgraph_(jsgraph), : jsgraph_(jsgraph), broker_(broker), dependencies_(dependencies) {}
js_heap_broker_(js_heap_broker),
dependencies_(dependencies) {}
// Builds the appropriate string check if the maps are only string // Builds the appropriate string check if the maps are only string
// maps. // maps.
...@@ -54,7 +52,7 @@ class PropertyAccessBuilder { ...@@ -54,7 +52,7 @@ class PropertyAccessBuilder {
private: private:
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
Graph* graph() const; Graph* graph() const;
Isolate* isolate() const; Isolate* isolate() const;
...@@ -69,7 +67,7 @@ class PropertyAccessBuilder { ...@@ -69,7 +67,7 @@ class PropertyAccessBuilder {
Node* ResolveHolder(PropertyAccessInfo const& access_info, Node* receiver); Node* ResolveHolder(PropertyAccessInfo const& access_info, Node* receiver);
JSGraph* jsgraph_; JSGraph* jsgraph_;
JSHeapBroker* js_heap_broker_; JSHeapBroker* broker_;
CompilationDependencies* dependencies_; CompilationDependencies* dependencies_;
}; };
......
...@@ -287,8 +287,8 @@ class RepresentationSelector { ...@@ -287,8 +287,8 @@ class RepresentationSelector {
bool weakened_ = false; bool weakened_ = false;
}; };
RepresentationSelector(JSGraph* jsgraph, JSHeapBroker* js_heap_broker, RepresentationSelector(JSGraph* jsgraph, JSHeapBroker* broker, Zone* zone,
Zone* zone, RepresentationChanger* changer, RepresentationChanger* changer,
SourcePositionTable* source_positions, SourcePositionTable* source_positions,
NodeOriginTable* node_origins) NodeOriginTable* node_origins)
: jsgraph_(jsgraph), : jsgraph_(jsgraph),
...@@ -307,7 +307,7 @@ class RepresentationSelector { ...@@ -307,7 +307,7 @@ class RepresentationSelector {
source_positions_(source_positions), source_positions_(source_positions),
node_origins_(node_origins), node_origins_(node_origins),
type_cache_(TypeCache::Get()), type_cache_(TypeCache::Get()),
op_typer_(js_heap_broker, graph_zone()) { op_typer_(broker, graph_zone()) {
} }
// Forward propagation of types from type feedback. // Forward propagation of types from type feedback.
...@@ -3408,13 +3408,13 @@ class RepresentationSelector { ...@@ -3408,13 +3408,13 @@ class RepresentationSelector {
Zone* graph_zone() { return jsgraph_->zone(); } Zone* graph_zone() { return jsgraph_->zone(); }
}; };
SimplifiedLowering::SimplifiedLowering(JSGraph* jsgraph, SimplifiedLowering::SimplifiedLowering(JSGraph* jsgraph, JSHeapBroker* broker,
JSHeapBroker* js_heap_broker, Zone* zone, Zone* zone,
SourcePositionTable* source_positions, SourcePositionTable* source_positions,
NodeOriginTable* node_origins, NodeOriginTable* node_origins,
PoisoningMitigationLevel poisoning_level) PoisoningMitigationLevel poisoning_level)
: jsgraph_(jsgraph), : jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
zone_(zone), zone_(zone),
type_cache_(TypeCache::Get()), type_cache_(TypeCache::Get()),
source_positions_(source_positions), source_positions_(source_positions),
...@@ -3423,7 +3423,7 @@ SimplifiedLowering::SimplifiedLowering(JSGraph* jsgraph, ...@@ -3423,7 +3423,7 @@ SimplifiedLowering::SimplifiedLowering(JSGraph* jsgraph,
void SimplifiedLowering::LowerAllNodes() { void SimplifiedLowering::LowerAllNodes() {
RepresentationChanger changer(jsgraph(), jsgraph()->isolate()); RepresentationChanger changer(jsgraph(), jsgraph()->isolate());
RepresentationSelector selector(jsgraph(), js_heap_broker_, zone_, &changer, RepresentationSelector selector(jsgraph(), broker_, zone_, &changer,
source_positions_, node_origins_); source_positions_, node_origins_);
selector.Run(this); selector.Run(this);
} }
......
...@@ -23,7 +23,7 @@ class TypeCache; ...@@ -23,7 +23,7 @@ class TypeCache;
class V8_EXPORT_PRIVATE SimplifiedLowering final { class V8_EXPORT_PRIVATE SimplifiedLowering final {
public: public:
SimplifiedLowering(JSGraph* jsgraph, JSHeapBroker* js_heap_broker, Zone* zone, SimplifiedLowering(JSGraph* jsgraph, JSHeapBroker* broker, Zone* zone,
SourcePositionTable* source_position, SourcePositionTable* source_position,
NodeOriginTable* node_origins, NodeOriginTable* node_origins,
PoisoningMitigationLevel poisoning_level); PoisoningMitigationLevel poisoning_level);
...@@ -48,7 +48,7 @@ class V8_EXPORT_PRIVATE SimplifiedLowering final { ...@@ -48,7 +48,7 @@ class V8_EXPORT_PRIVATE SimplifiedLowering final {
private: private:
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* js_heap_broker_; JSHeapBroker* broker_;
Zone* const zone_; Zone* const zone_;
TypeCache const& type_cache_; TypeCache const& type_cache_;
SetOncePointer<Node> to_number_code_; SetOncePointer<Node> to_number_code_;
......
...@@ -32,11 +32,10 @@ Decision DecideObjectIsSmi(Node* const input) { ...@@ -32,11 +32,10 @@ Decision DecideObjectIsSmi(Node* const input) {
} // namespace } // namespace
SimplifiedOperatorReducer::SimplifiedOperatorReducer( SimplifiedOperatorReducer::SimplifiedOperatorReducer(Editor* editor,
Editor* editor, JSGraph* jsgraph, JSHeapBroker* js_heap_broker) JSGraph* jsgraph,
: AdvancedReducer(editor), JSHeapBroker* broker)
jsgraph_(jsgraph), : AdvancedReducer(editor), jsgraph_(jsgraph), broker_(broker) {}
js_heap_broker_(js_heap_broker) {}
SimplifiedOperatorReducer::~SimplifiedOperatorReducer() = default; SimplifiedOperatorReducer::~SimplifiedOperatorReducer() = default;
...@@ -62,7 +61,7 @@ Reduction SimplifiedOperatorReducer::Reduce(Node* node) { ...@@ -62,7 +61,7 @@ Reduction SimplifiedOperatorReducer::Reduce(Node* node) {
case IrOpcode::kChangeTaggedToBit: { case IrOpcode::kChangeTaggedToBit: {
HeapObjectMatcher m(node->InputAt(0)); HeapObjectMatcher m(node->InputAt(0));
if (m.HasValue()) { if (m.HasValue()) {
return ReplaceInt32(m.Ref(js_heap_broker()).BooleanValue()); return ReplaceInt32(m.Ref(broker()).BooleanValue());
} }
if (m.IsChangeBitToTagged()) return Replace(m.InputAt(0)); if (m.IsChangeBitToTagged()) return Replace(m.InputAt(0));
break; break;
......
...@@ -27,7 +27,7 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorReducer final ...@@ -27,7 +27,7 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorReducer final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
SimplifiedOperatorReducer(Editor* editor, JSGraph* jsgraph, SimplifiedOperatorReducer(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker); JSHeapBroker* broker);
~SimplifiedOperatorReducer() final; ~SimplifiedOperatorReducer() final;
const char* reducer_name() const override { const char* reducer_name() const override {
...@@ -56,10 +56,10 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorReducer final ...@@ -56,10 +56,10 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorReducer final
SimplifiedOperatorBuilder* simplified() const; SimplifiedOperatorBuilder* simplified() const;
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* const js_heap_broker_; JSHeapBroker* const broker_;
DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorReducer); DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorReducer);
}; };
......
...@@ -12,10 +12,8 @@ namespace internal { ...@@ -12,10 +12,8 @@ namespace internal {
namespace compiler { namespace compiler {
TypeNarrowingReducer::TypeNarrowingReducer(Editor* editor, JSGraph* jsgraph, TypeNarrowingReducer::TypeNarrowingReducer(Editor* editor, JSGraph* jsgraph,
JSHeapBroker* js_heap_broker) JSHeapBroker* broker)
: AdvancedReducer(editor), : AdvancedReducer(editor), jsgraph_(jsgraph), op_typer_(broker, zone()) {}
jsgraph_(jsgraph),
op_typer_(js_heap_broker, zone()) {}
TypeNarrowingReducer::~TypeNarrowingReducer() = default; TypeNarrowingReducer::~TypeNarrowingReducer() = default;
......
...@@ -19,8 +19,7 @@ class JSGraph; ...@@ -19,8 +19,7 @@ class JSGraph;
class V8_EXPORT_PRIVATE TypeNarrowingReducer final class V8_EXPORT_PRIVATE TypeNarrowingReducer final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
TypeNarrowingReducer(Editor* editor, JSGraph* jsgraph, TypeNarrowingReducer(Editor* editor, JSGraph* jsgraph, JSHeapBroker* broker);
JSHeapBroker* js_heap_broker);
~TypeNarrowingReducer() final; ~TypeNarrowingReducer() final;
const char* reducer_name() const override { return "TypeNarrowingReducer"; } const char* reducer_name() const override { return "TypeNarrowingReducer"; }
......
...@@ -20,15 +20,14 @@ namespace compiler { ...@@ -20,15 +20,14 @@ namespace compiler {
TypedOptimization::TypedOptimization(Editor* editor, TypedOptimization::TypedOptimization(Editor* editor,
CompilationDependencies* dependencies, CompilationDependencies* dependencies,
JSGraph* jsgraph, JSGraph* jsgraph, JSHeapBroker* broker)
JSHeapBroker* js_heap_broker)
: AdvancedReducer(editor), : AdvancedReducer(editor),
dependencies_(dependencies), dependencies_(dependencies),
jsgraph_(jsgraph), jsgraph_(jsgraph),
js_heap_broker_(js_heap_broker), broker_(broker),
true_type_(Type::HeapConstant(js_heap_broker, factory()->true_value(), true_type_(
graph()->zone())), Type::HeapConstant(broker, factory()->true_value(), graph()->zone())),
false_type_(Type::HeapConstant(js_heap_broker, factory()->false_value(), false_type_(Type::HeapConstant(broker, factory()->false_value(),
graph()->zone())), graph()->zone())),
type_cache_(TypeCache::Get()) {} type_cache_(TypeCache::Get()) {}
...@@ -93,7 +92,7 @@ Reduction TypedOptimization::Reduce(Node* node) { ...@@ -93,7 +92,7 @@ Reduction TypedOptimization::Reduce(Node* node) {
namespace { namespace {
base::Optional<MapRef> GetStableMapFromObjectType(JSHeapBroker* js_heap_broker, base::Optional<MapRef> GetStableMapFromObjectType(JSHeapBroker* broker,
Type object_type) { Type object_type) {
if (object_type.IsHeapConstant()) { if (object_type.IsHeapConstant()) {
HeapObjectRef object = object_type.AsHeapConstant()->Ref(); HeapObjectRef object = object_type.AsHeapConstant()->Ref();
...@@ -149,7 +148,7 @@ Reduction TypedOptimization::ReduceCheckMaps(Node* node) { ...@@ -149,7 +148,7 @@ Reduction TypedOptimization::ReduceCheckMaps(Node* node) {
Type const object_type = NodeProperties::GetType(object); Type const object_type = NodeProperties::GetType(object);
Node* const effect = NodeProperties::GetEffectInput(node); Node* const effect = NodeProperties::GetEffectInput(node);
base::Optional<MapRef> object_map = base::Optional<MapRef> object_map =
GetStableMapFromObjectType(js_heap_broker(), object_type); GetStableMapFromObjectType(broker(), object_type);
if (object_map.has_value()) { if (object_map.has_value()) {
for (int i = 1; i < node->op()->ValueInputCount(); ++i) { for (int i = 1; i < node->op()->ValueInputCount(); ++i) {
Node* const map = NodeProperties::GetValueInput(node, i); Node* const map = NodeProperties::GetValueInput(node, i);
...@@ -220,7 +219,7 @@ Reduction TypedOptimization::ReduceLoadField(Node* node) { ...@@ -220,7 +219,7 @@ Reduction TypedOptimization::ReduceLoadField(Node* node) {
// (2) deoptimization is enabled and we can add a code dependency on the // (2) deoptimization is enabled and we can add a code dependency on the
// stability of map (to guard the Constant type information). // stability of map (to guard the Constant type information).
base::Optional<MapRef> object_map = base::Optional<MapRef> object_map =
GetStableMapFromObjectType(js_heap_broker(), object_type); GetStableMapFromObjectType(broker(), object_type);
if (object_map.has_value()) { if (object_map.has_value()) {
dependencies()->DependOnStableMap(*object_map); dependencies()->DependOnStableMap(*object_map);
Node* const value = jsgraph()->Constant(*object_map); Node* const value = jsgraph()->Constant(*object_map);
...@@ -474,8 +473,8 @@ Reduction TypedOptimization::ReduceStringLength(Node* node) { ...@@ -474,8 +473,8 @@ Reduction TypedOptimization::ReduceStringLength(Node* node) {
case IrOpcode::kHeapConstant: { case IrOpcode::kHeapConstant: {
// Constant-fold the String::length of the {input}. // Constant-fold the String::length of the {input}.
HeapObjectMatcher m(input); HeapObjectMatcher m(input);
if (m.Ref(js_heap_broker()).IsString()) { if (m.Ref(broker()).IsString()) {
uint32_t const length = m.Ref(js_heap_broker()).AsString().length(); uint32_t const length = m.Ref(broker()).AsString().length();
Node* value = jsgraph()->Constant(length); Node* value = jsgraph()->Constant(length);
return Replace(value); return Replace(value);
} }
...@@ -593,28 +592,28 @@ Reduction TypedOptimization::ReduceTypeOf(Node* node) { ...@@ -593,28 +592,28 @@ Reduction TypedOptimization::ReduceTypeOf(Node* node) {
Factory* const f = factory(); Factory* const f = factory();
if (type.Is(Type::Boolean())) { if (type.Is(Type::Boolean())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->boolean_string()))); jsgraph()->Constant(ObjectRef(broker(), f->boolean_string())));
} else if (type.Is(Type::Number())) { } else if (type.Is(Type::Number())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->number_string()))); jsgraph()->Constant(ObjectRef(broker(), f->number_string())));
} else if (type.Is(Type::String())) { } else if (type.Is(Type::String())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->string_string()))); jsgraph()->Constant(ObjectRef(broker(), f->string_string())));
} else if (type.Is(Type::BigInt())) { } else if (type.Is(Type::BigInt())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->bigint_string()))); jsgraph()->Constant(ObjectRef(broker(), f->bigint_string())));
} else if (type.Is(Type::Symbol())) { } else if (type.Is(Type::Symbol())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->symbol_string()))); jsgraph()->Constant(ObjectRef(broker(), f->symbol_string())));
} else if (type.Is(Type::OtherUndetectableOrUndefined())) { } else if (type.Is(Type::OtherUndetectableOrUndefined())) {
return Replace(jsgraph()->Constant( return Replace(
ObjectRef(js_heap_broker(), f->undefined_string()))); jsgraph()->Constant(ObjectRef(broker(), f->undefined_string())));
} else if (type.Is(Type::NonCallableOrNull())) { } else if (type.Is(Type::NonCallableOrNull())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->object_string()))); jsgraph()->Constant(ObjectRef(broker(), f->object_string())));
} else if (type.Is(Type::Function())) { } else if (type.Is(Type::Function())) {
return Replace( return Replace(
jsgraph()->Constant(ObjectRef(js_heap_broker(), f->function_string()))); jsgraph()->Constant(ObjectRef(broker(), f->function_string())));
} }
return NoChange(); return NoChange();
} }
......
...@@ -28,7 +28,7 @@ class V8_EXPORT_PRIVATE TypedOptimization final ...@@ -28,7 +28,7 @@ class V8_EXPORT_PRIVATE TypedOptimization final
: public NON_EXPORTED_BASE(AdvancedReducer) { : public NON_EXPORTED_BASE(AdvancedReducer) {
public: public:
TypedOptimization(Editor* editor, CompilationDependencies* dependencies, TypedOptimization(Editor* editor, CompilationDependencies* dependencies,
JSGraph* jsgraph, JSHeapBroker* js_heap_broker); JSGraph* jsgraph, JSHeapBroker* broker);
~TypedOptimization() override; ~TypedOptimization() override;
const char* reducer_name() const override { return "TypedOptimization"; } const char* reducer_name() const override { return "TypedOptimization"; }
...@@ -73,11 +73,11 @@ class V8_EXPORT_PRIVATE TypedOptimization final ...@@ -73,11 +73,11 @@ class V8_EXPORT_PRIVATE TypedOptimization final
CompilationDependencies* dependencies() const { return dependencies_; } CompilationDependencies* dependencies() const { return dependencies_; }
JSGraph* jsgraph() const { return jsgraph_; } JSGraph* jsgraph() const { return jsgraph_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
CompilationDependencies* const dependencies_; CompilationDependencies* const dependencies_;
JSGraph* const jsgraph_; JSGraph* const jsgraph_;
JSHeapBroker* js_heap_broker_; JSHeapBroker* broker_;
Type const true_type_; Type const true_type_;
Type const false_type_; Type const false_type_;
TypeCache const& type_cache_; TypeCache const& type_cache_;
......
...@@ -34,13 +34,13 @@ class Typer::Decorator final : public GraphDecorator { ...@@ -34,13 +34,13 @@ class Typer::Decorator final : public GraphDecorator {
Typer* const typer_; Typer* const typer_;
}; };
Typer::Typer(JSHeapBroker* js_heap_broker, Flags flags, Graph* graph) Typer::Typer(JSHeapBroker* broker, Flags flags, Graph* graph)
: flags_(flags), : flags_(flags),
graph_(graph), graph_(graph),
decorator_(nullptr), decorator_(nullptr),
cache_(TypeCache::Get()), cache_(TypeCache::Get()),
js_heap_broker_(js_heap_broker), broker_(broker),
operation_typer_(js_heap_broker, zone()) { operation_typer_(broker, zone()) {
singleton_false_ = operation_typer_.singleton_false(); singleton_false_ = operation_typer_.singleton_false();
singleton_true_ = operation_typer_.singleton_true(); singleton_true_ = operation_typer_.singleton_true();
...@@ -2215,7 +2215,7 @@ Type Typer::Visitor::TypeRuntimeAbort(Node* node) { UNREACHABLE(); } ...@@ -2215,7 +2215,7 @@ Type Typer::Visitor::TypeRuntimeAbort(Node* node) { UNREACHABLE(); }
// Heap constants. // Heap constants.
Type Typer::Visitor::TypeConstant(Handle<Object> value) { Type Typer::Visitor::TypeConstant(Handle<Object> value) {
return Type::NewConstant(typer_->js_heap_broker(), value, zone()); return Type::NewConstant(typer_->broker(), value, zone());
} }
} // namespace compiler } // namespace compiler
......
...@@ -25,7 +25,7 @@ class V8_EXPORT_PRIVATE Typer { ...@@ -25,7 +25,7 @@ class V8_EXPORT_PRIVATE Typer {
}; };
typedef base::Flags<Flag> Flags; typedef base::Flags<Flag> Flags;
Typer(JSHeapBroker* js_heap_broker, Flags flags, Graph* graph); Typer(JSHeapBroker* broker, Flags flags, Graph* graph);
~Typer(); ~Typer();
void Run(); void Run();
...@@ -41,13 +41,13 @@ class V8_EXPORT_PRIVATE Typer { ...@@ -41,13 +41,13 @@ class V8_EXPORT_PRIVATE Typer {
Graph* graph() const { return graph_; } Graph* graph() const { return graph_; }
Zone* zone() const { return graph()->zone(); } Zone* zone() const { return graph()->zone(); }
OperationTyper* operation_typer() { return &operation_typer_; } OperationTyper* operation_typer() { return &operation_typer_; }
JSHeapBroker* js_heap_broker() const { return js_heap_broker_; } JSHeapBroker* broker() const { return broker_; }
Flags const flags_; Flags const flags_;
Graph* const graph_; Graph* const graph_;
Decorator* decorator_; Decorator* decorator_;
TypeCache const& cache_; TypeCache const& cache_;
JSHeapBroker* js_heap_broker_; JSHeapBroker* broker_;
OperationTyper operation_typer_; OperationTyper operation_typer_;
Type singleton_false_; Type singleton_false_;
......
...@@ -839,9 +839,9 @@ Type Type::NewConstant(double value, Zone* zone) { ...@@ -839,9 +839,9 @@ Type Type::NewConstant(double value, Zone* zone) {
return OtherNumberConstant(value, zone); return OtherNumberConstant(value, zone);
} }
Type Type::NewConstant(JSHeapBroker* js_heap_broker, Handle<i::Object> value, Type Type::NewConstant(JSHeapBroker* broker, Handle<i::Object> value,
Zone* zone) { Zone* zone) {
ObjectRef ref(js_heap_broker, value); ObjectRef ref(broker, value);
if (ref.IsSmi()) { if (ref.IsSmi()) {
return NewConstant(static_cast<double>(ref.AsSmi()), zone); return NewConstant(static_cast<double>(ref.AsSmi()), zone);
} }
...@@ -1079,10 +1079,10 @@ Type Type::OtherNumberConstant(double value, Zone* zone) { ...@@ -1079,10 +1079,10 @@ Type Type::OtherNumberConstant(double value, Zone* zone) {
} }
// static // static
Type Type::HeapConstant(JSHeapBroker* js_heap_broker, Handle<i::Object> value, Type Type::HeapConstant(JSHeapBroker* broker, Handle<i::Object> value,
Zone* zone) { Zone* zone) {
return FromTypeBase( return FromTypeBase(
HeapConstantType::New(HeapObjectRef(js_heap_broker, value), zone)); HeapConstantType::New(HeapObjectRef(broker, value), zone));
} }
// static // static
......
...@@ -369,8 +369,8 @@ class V8_EXPORT_PRIVATE Type { ...@@ -369,8 +369,8 @@ class V8_EXPORT_PRIVATE Type {
static Type UnsignedSmall() { return NewBitset(BitsetType::UnsignedSmall()); } static Type UnsignedSmall() { return NewBitset(BitsetType::UnsignedSmall()); }
static Type OtherNumberConstant(double value, Zone* zone); static Type OtherNumberConstant(double value, Zone* zone);
static Type HeapConstant(JSHeapBroker* js_heap_broker, static Type HeapConstant(JSHeapBroker* broker, Handle<i::Object> value,
Handle<i::Object> value, Zone* zone); Zone* zone);
static Type HeapConstant(const HeapObjectRef& value, Zone* zone); static Type HeapConstant(const HeapObjectRef& value, Zone* zone);
static Type Range(double min, double max, Zone* zone); static Type Range(double min, double max, Zone* zone);
static Type Range(RangeType::Limits lims, Zone* zone); static Type Range(RangeType::Limits lims, Zone* zone);
...@@ -378,7 +378,7 @@ class V8_EXPORT_PRIVATE Type { ...@@ -378,7 +378,7 @@ class V8_EXPORT_PRIVATE Type {
static Type Union(int length, Zone* zone); static Type Union(int length, Zone* zone);
// NewConstant is a factory that returns Constant, Range or Number. // NewConstant is a factory that returns Constant, Range or Number.
static Type NewConstant(JSHeapBroker* js_heap_broker, Handle<i::Object> value, static Type NewConstant(JSHeapBroker* broker, Handle<i::Object> value,
Zone* zone); Zone* zone);
static Type NewConstant(double value, Zone* zone); static Type NewConstant(double value, Zone* zone);
......
...@@ -63,7 +63,7 @@ class ConstantFoldingReducerTest : public TypedGraphTest { ...@@ -63,7 +63,7 @@ class ConstantFoldingReducerTest : public TypedGraphTest {
public: public:
ConstantFoldingReducerTest() ConstantFoldingReducerTest()
: TypedGraphTest(3), : TypedGraphTest(3),
js_heap_broker_(isolate(), zone()), broker_(isolate(), zone()),
simplified_(zone()), simplified_(zone()),
deps_(isolate(), zone()) {} deps_(isolate(), zone()) {}
~ConstantFoldingReducerTest() override = default; ~ConstantFoldingReducerTest() override = default;
...@@ -76,23 +76,23 @@ class ConstantFoldingReducerTest : public TypedGraphTest { ...@@ -76,23 +76,23 @@ class ConstantFoldingReducerTest : public TypedGraphTest {
&machine); &machine);
// TODO(titzer): mock the GraphReducer here for better unit testing. // TODO(titzer): mock the GraphReducer here for better unit testing.
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
ConstantFoldingReducer reducer(&graph_reducer, &jsgraph, js_heap_broker()); ConstantFoldingReducer reducer(&graph_reducer, &jsgraph, broker());
return reducer.Reduce(node); return reducer.Reduce(node);
} }
SimplifiedOperatorBuilder* simplified() { return &simplified_; } SimplifiedOperatorBuilder* simplified() { return &simplified_; }
JSHeapBroker* js_heap_broker() { return &js_heap_broker_; } JSHeapBroker* broker() { return &broker_; }
private: private:
JSHeapBroker js_heap_broker_; JSHeapBroker broker_;
SimplifiedOperatorBuilder simplified_; SimplifiedOperatorBuilder simplified_;
CompilationDependencies deps_; CompilationDependencies deps_;
}; };
TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) { TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) {
{ {
Reduction r = Reduce(Parameter(Type::NewConstant( Reduction r = Reduce(Parameter(
js_heap_broker(), factory()->minus_zero_value(), zone()))); Type::NewConstant(broker(), factory()->minus_zero_value(), zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsNumberConstant(-0.0)); EXPECT_THAT(r.replacement(), IsNumberConstant(-0.0));
} }
...@@ -104,8 +104,7 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) { ...@@ -104,8 +104,7 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) {
{ {
Reduction r = Reduce(Parameter(Type::Union( Reduction r = Reduce(Parameter(Type::Union(
Type::MinusZero(), Type::MinusZero(),
Type::NewConstant(js_heap_broker(), factory()->NewNumber(0), zone()), Type::NewConstant(broker(), factory()->NewNumber(0), zone()), zone())));
zone())));
EXPECT_FALSE(r.Changed()); EXPECT_FALSE(r.Changed());
} }
} }
...@@ -113,8 +112,7 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) { ...@@ -113,8 +112,7 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithMinusZero) {
TEST_F(ConstantFoldingReducerTest, ParameterWithNull) { TEST_F(ConstantFoldingReducerTest, ParameterWithNull) {
Handle<HeapObject> null = factory()->null_value(); Handle<HeapObject> null = factory()->null_value();
{ {
Reduction r = Reduction r = Reduce(Parameter(Type::NewConstant(broker(), null, zone())));
Reduce(Parameter(Type::NewConstant(js_heap_broker(), null, zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsHeapConstant(null)); EXPECT_THAT(r.replacement(), IsHeapConstant(null));
} }
...@@ -131,14 +129,14 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithNaN) { ...@@ -131,14 +129,14 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithNaN) {
std::numeric_limits<double>::signaling_NaN()}; std::numeric_limits<double>::signaling_NaN()};
TRACED_FOREACH(double, nan, kNaNs) { TRACED_FOREACH(double, nan, kNaNs) {
Handle<Object> constant = factory()->NewNumber(nan); Handle<Object> constant = factory()->NewNumber(nan);
Reduction r = Reduce( Reduction r =
Parameter(Type::NewConstant(js_heap_broker(), constant, zone()))); Reduce(Parameter(Type::NewConstant(broker(), constant, zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsNumberConstant(IsNaN())); EXPECT_THAT(r.replacement(), IsNumberConstant(IsNaN()));
} }
{ {
Reduction r = Reduce(Parameter( Reduction r = Reduce(
Type::NewConstant(js_heap_broker(), factory()->nan_value(), zone()))); Parameter(Type::NewConstant(broker(), factory()->nan_value(), zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsNumberConstant(IsNaN())); EXPECT_THAT(r.replacement(), IsNumberConstant(IsNaN()));
} }
...@@ -152,8 +150,8 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithNaN) { ...@@ -152,8 +150,8 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithNaN) {
TEST_F(ConstantFoldingReducerTest, ParameterWithPlainNumber) { TEST_F(ConstantFoldingReducerTest, ParameterWithPlainNumber) {
TRACED_FOREACH(double, value, kFloat64Values) { TRACED_FOREACH(double, value, kFloat64Values) {
Handle<Object> constant = factory()->NewNumber(value); Handle<Object> constant = factory()->NewNumber(value);
Reduction r = Reduce( Reduction r =
Parameter(Type::NewConstant(js_heap_broker(), constant, zone()))); Reduce(Parameter(Type::NewConstant(broker(), constant, zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsNumberConstant(value)); EXPECT_THAT(r.replacement(), IsNumberConstant(value));
} }
...@@ -172,8 +170,8 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithUndefined) { ...@@ -172,8 +170,8 @@ TEST_F(ConstantFoldingReducerTest, ParameterWithUndefined) {
EXPECT_THAT(r.replacement(), IsHeapConstant(undefined)); EXPECT_THAT(r.replacement(), IsHeapConstant(undefined));
} }
{ {
Reduction r = Reduce( Reduction r =
Parameter(Type::NewConstant(js_heap_broker(), undefined, zone()))); Reduce(Parameter(Type::NewConstant(broker(), undefined, zone())));
ASSERT_TRUE(r.Changed()); ASSERT_TRUE(r.Changed());
EXPECT_THAT(r.replacement(), IsHeapConstant(undefined)); EXPECT_THAT(r.replacement(), IsHeapConstant(undefined));
} }
...@@ -194,9 +192,9 @@ TEST_F(ConstantFoldingReducerTest, ToBooleanWithFalsish) { ...@@ -194,9 +192,9 @@ TEST_F(ConstantFoldingReducerTest, ToBooleanWithFalsish) {
Type::Undefined(), Type::Undefined(),
Type::Union( Type::Union(
Type::Undetectable(), Type::Undetectable(),
Type::Union(Type::NewConstant( Type::Union(
js_heap_broker(), Type::NewConstant(
factory()->false_value(), zone()), broker(), factory()->false_value(), zone()),
Type::Range(0.0, 0.0, zone()), zone()), Type::Range(0.0, 0.0, zone()), zone()),
zone()), zone()),
zone()), zone()),
...@@ -212,7 +210,7 @@ TEST_F(ConstantFoldingReducerTest, ToBooleanWithFalsish) { ...@@ -212,7 +210,7 @@ TEST_F(ConstantFoldingReducerTest, ToBooleanWithFalsish) {
TEST_F(ConstantFoldingReducerTest, ToBooleanWithTruish) { TEST_F(ConstantFoldingReducerTest, ToBooleanWithTruish) {
Node* input = Parameter( Node* input = Parameter(
Type::Union( Type::Union(
Type::NewConstant(js_heap_broker(), factory()->true_value(), zone()), Type::NewConstant(broker(), factory()->true_value(), zone()),
Type::Union(Type::DetectableReceiver(), Type::Symbol(), zone()), Type::Union(Type::DetectableReceiver(), Type::Symbol(), zone()),
zone()), zone()),
0); 0);
......
...@@ -20,12 +20,12 @@ GraphTest::GraphTest(int num_parameters) ...@@ -20,12 +20,12 @@ GraphTest::GraphTest(int num_parameters)
canonical_(isolate()), canonical_(isolate()),
common_(zone()), common_(zone()),
graph_(zone()), graph_(zone()),
js_heap_broker_(isolate(), zone()), broker_(isolate(), zone()),
source_positions_(&graph_), source_positions_(&graph_),
node_origins_(&graph_) { node_origins_(&graph_) {
graph()->SetStart(graph()->NewNode(common()->Start(num_parameters))); graph()->SetStart(graph()->NewNode(common()->Start(num_parameters)));
graph()->SetEnd(graph()->NewNode(common()->End(1), graph()->start())); graph()->SetEnd(graph()->NewNode(common()->End(1), graph()->start()));
js_heap_broker()->SetNativeContextRef(); broker()->SetNativeContextRef();
} }
...@@ -69,7 +69,7 @@ Node* GraphTest::NumberConstant(volatile double value) { ...@@ -69,7 +69,7 @@ Node* GraphTest::NumberConstant(volatile double value) {
Node* GraphTest::HeapConstant(const Handle<HeapObject>& value) { Node* GraphTest::HeapConstant(const Handle<HeapObject>& value) {
Node* node = graph()->NewNode(common()->HeapConstant(value)); Node* node = graph()->NewNode(common()->HeapConstant(value));
Type type = Type::NewConstant(js_heap_broker(), value, zone()); Type type = Type::NewConstant(broker(), value, zone());
NodeProperties::SetType(node, type); NodeProperties::SetType(node, type);
return node; return node;
} }
...@@ -119,8 +119,7 @@ Matcher<Node*> GraphTest::IsUndefinedConstant() { ...@@ -119,8 +119,7 @@ Matcher<Node*> GraphTest::IsUndefinedConstant() {
} }
TypedGraphTest::TypedGraphTest(int num_parameters) TypedGraphTest::TypedGraphTest(int num_parameters)
: GraphTest(num_parameters), : GraphTest(num_parameters), typer_(broker(), Typer::kNoFlags, graph()) {}
typer_(js_heap_broker(), Typer::kNoFlags, graph()) {}
TypedGraphTest::~TypedGraphTest() = default; TypedGraphTest::~TypedGraphTest() = default;
......
...@@ -62,13 +62,13 @@ class GraphTest : public virtual TestWithNativeContext, ...@@ -62,13 +62,13 @@ class GraphTest : public virtual TestWithNativeContext,
Graph* graph() { return &graph_; } Graph* graph() { return &graph_; }
SourcePositionTable* source_positions() { return &source_positions_; } SourcePositionTable* source_positions() { return &source_positions_; }
NodeOriginTable* node_origins() { return &node_origins_; } NodeOriginTable* node_origins() { return &node_origins_; }
JSHeapBroker* js_heap_broker() { return &js_heap_broker_; } JSHeapBroker* broker() { return &broker_; }
private: private:
CanonicalHandleScope canonical_; CanonicalHandleScope canonical_;
CommonOperatorBuilder common_; CommonOperatorBuilder common_;
Graph graph_; Graph graph_;
JSHeapBroker js_heap_broker_; JSHeapBroker broker_;
SourcePositionTable source_positions_; SourcePositionTable source_positions_;
NodeOriginTable node_origins_; NodeOriginTable node_origins_;
}; };
......
...@@ -23,7 +23,7 @@ class JSCallReducerTest : public TypedGraphTest { ...@@ -23,7 +23,7 @@ class JSCallReducerTest : public TypedGraphTest {
JSCallReducerTest() JSCallReducerTest()
: TypedGraphTest(3), javascript_(zone()), deps_(isolate(), zone()) { : TypedGraphTest(3), javascript_(zone()), deps_(isolate(), zone()) {
if (FLAG_concurrent_typed_lowering) { if (FLAG_concurrent_typed_lowering) {
js_heap_broker()->SerializeStandardObjects(); broker()->SerializeStandardObjects();
} }
} }
~JSCallReducerTest() override = default; ~JSCallReducerTest() override = default;
...@@ -37,7 +37,7 @@ class JSCallReducerTest : public TypedGraphTest { ...@@ -37,7 +37,7 @@ class JSCallReducerTest : public TypedGraphTest {
// TODO(titzer): mock the GraphReducer here for better unit testing. // TODO(titzer): mock the GraphReducer here for better unit testing.
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
JSCallReducer reducer(&graph_reducer, &jsgraph, js_heap_broker(), JSCallReducer reducer(&graph_reducer, &jsgraph, broker(),
JSCallReducer::kNoFlags, native_context(), &deps_); JSCallReducer::kNoFlags, native_context(), &deps_);
return reducer.Reduce(node); return reducer.Reduce(node);
} }
......
...@@ -45,7 +45,7 @@ class JSCreateLoweringTest : public TypedGraphTest { ...@@ -45,7 +45,7 @@ class JSCreateLoweringTest : public TypedGraphTest {
&machine); &machine);
// TODO(titzer): mock the GraphReducer here for better unit testing. // TODO(titzer): mock the GraphReducer here for better unit testing.
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
JSCreateLowering reducer(&graph_reducer, &deps_, &jsgraph, js_heap_broker(), JSCreateLowering reducer(&graph_reducer, &deps_, &jsgraph, broker(),
zone()); zone());
return reducer.Reduce(node); return reducer.Reduce(node);
} }
...@@ -75,8 +75,8 @@ class JSCreateLoweringTest : public TypedGraphTest { ...@@ -75,8 +75,8 @@ class JSCreateLoweringTest : public TypedGraphTest {
TEST_F(JSCreateLoweringTest, JSCreate) { TEST_F(JSCreateLoweringTest, JSCreate) {
Handle<JSFunction> function = isolate()->object_function(); Handle<JSFunction> function = isolate()->object_function();
Node* const target = Parameter( Node* const target =
Type::HeapConstant(js_heap_broker(), function, graph()->zone())); Parameter(Type::HeapConstant(broker(), function, graph()->zone()));
Node* const context = Parameter(Type::Any()); Node* const context = Parameter(Type::Any());
Node* const effect = graph()->start(); Node* const effect = graph()->start();
Node* const control = graph()->start(); Node* const control = graph()->start();
......
...@@ -34,13 +34,13 @@ TEST_F(JSNativeContextSpecializationTest, GetMaxStringLengthOfString) { ...@@ -34,13 +34,13 @@ TEST_F(JSNativeContextSpecializationTest, GetMaxStringLengthOfString) {
Node* const str_node = graph()->NewNode( Node* const str_node = graph()->NewNode(
common()->HeapConstant(factory()->InternalizeUtf8String("str"))); common()->HeapConstant(factory()->InternalizeUtf8String("str")));
EXPECT_EQ(JSNativeContextSpecialization::GetMaxStringLength(js_heap_broker(), EXPECT_EQ(
str_node), JSNativeContextSpecialization::GetMaxStringLength(broker(), str_node),
str_len); str_len);
Node* const num_node = graph()->NewNode(common()->NumberConstant(10.0 / 3)); Node* const num_node = graph()->NewNode(common()->NumberConstant(10.0 / 3));
EXPECT_EQ(JSNativeContextSpecialization::GetMaxStringLength(js_heap_broker(), EXPECT_EQ(
num_node), JSNativeContextSpecialization::GetMaxStringLength(broker(), num_node),
num_len); num_len);
} }
......
...@@ -48,7 +48,7 @@ class JSTypedLoweringTest : public TypedGraphTest { ...@@ -48,7 +48,7 @@ class JSTypedLoweringTest : public TypedGraphTest {
&machine); &machine);
// TODO(titzer): mock the GraphReducer here for better unit testing. // TODO(titzer): mock the GraphReducer here for better unit testing.
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
JSTypedLowering reducer(&graph_reducer, &jsgraph, js_heap_broker(), zone()); JSTypedLowering reducer(&graph_reducer, &jsgraph, broker(), zone());
return reducer.Reduce(node); return reducer.Reduce(node);
} }
......
...@@ -651,7 +651,7 @@ TEST_F(RedundancyEliminationTest, CheckedUint64ToTaggedSigned) { ...@@ -651,7 +651,7 @@ TEST_F(RedundancyEliminationTest, CheckedUint64ToTaggedSigned) {
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberEqualWithCheckBoundsBetterType) { SpeculativeNumberEqualWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -687,7 +687,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -687,7 +687,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberEqualWithCheckBoundsSameType) { SpeculativeNumberEqualWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::UnsignedSmall(), 0); Node* lhs = Parameter(Type::UnsignedSmall(), 0);
...@@ -726,7 +726,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -726,7 +726,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberLessThanWithCheckBoundsBetterType) { SpeculativeNumberLessThanWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -762,7 +762,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -762,7 +762,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberLessThanWithCheckBoundsSameType) { SpeculativeNumberLessThanWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::UnsignedSmall(), 0); Node* lhs = Parameter(Type::UnsignedSmall(), 0);
...@@ -801,7 +801,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -801,7 +801,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberLessThanOrEqualWithCheckBoundsBetterType) { SpeculativeNumberLessThanOrEqualWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -837,7 +837,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -837,7 +837,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberLessThanOrEqualWithCheckBoundsSameType) { SpeculativeNumberLessThanOrEqualWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
Node* lhs = Parameter(Type::UnsignedSmall(), 0); Node* lhs = Parameter(Type::UnsignedSmall(), 0);
...@@ -876,7 +876,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -876,7 +876,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberAddWithCheckBoundsBetterType) { SpeculativeNumberAddWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -902,7 +902,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -902,7 +902,7 @@ TEST_F(RedundancyEliminationTest,
} }
TEST_F(RedundancyEliminationTest, SpeculativeNumberAddWithCheckBoundsSameType) { TEST_F(RedundancyEliminationTest, SpeculativeNumberAddWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0); Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0);
...@@ -932,7 +932,7 @@ TEST_F(RedundancyEliminationTest, SpeculativeNumberAddWithCheckBoundsSameType) { ...@@ -932,7 +932,7 @@ TEST_F(RedundancyEliminationTest, SpeculativeNumberAddWithCheckBoundsSameType) {
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberSubtractWithCheckBoundsBetterType) { SpeculativeNumberSubtractWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -960,7 +960,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -960,7 +960,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeNumberSubtractWithCheckBoundsSameType) { SpeculativeNumberSubtractWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0); Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0);
...@@ -991,7 +991,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -991,7 +991,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeSafeIntegerAddWithCheckBoundsBetterType) { SpeculativeSafeIntegerAddWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -1019,7 +1019,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -1019,7 +1019,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeSafeIntegerAddWithCheckBoundsSameType) { SpeculativeSafeIntegerAddWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0); Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0);
...@@ -1050,7 +1050,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -1050,7 +1050,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeSafeIntegerSubtractWithCheckBoundsBetterType) { SpeculativeSafeIntegerSubtractWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Any(), 0); Node* lhs = Parameter(Type::Any(), 0);
...@@ -1078,7 +1078,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -1078,7 +1078,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeSafeIntegerSubtractWithCheckBoundsSameType) { SpeculativeSafeIntegerSubtractWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0); Node* lhs = Parameter(Type::Range(42.0, 42.0, zone()), 0);
...@@ -1109,7 +1109,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -1109,7 +1109,7 @@ TEST_F(RedundancyEliminationTest,
TEST_F(RedundancyEliminationTest, TEST_F(RedundancyEliminationTest,
SpeculativeToNumberWithCheckBoundsBetterType) { SpeculativeToNumberWithCheckBoundsBetterType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
...@@ -1137,7 +1137,7 @@ TEST_F(RedundancyEliminationTest, ...@@ -1137,7 +1137,7 @@ TEST_F(RedundancyEliminationTest,
} }
TEST_F(RedundancyEliminationTest, SpeculativeToNumberWithCheckBoundsSameType) { TEST_F(RedundancyEliminationTest, SpeculativeToNumberWithCheckBoundsSameType) {
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback1, vector_slot_pairs()) {
TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) { TRACED_FOREACH(VectorSlotPair, feedback2, vector_slot_pairs()) {
TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) { TRACED_FOREACH(NumberOperationHint, hint, kNumberOperationHints) {
......
...@@ -42,12 +42,12 @@ class SimplifiedLoweringTest : public GraphTest { ...@@ -42,12 +42,12 @@ class SimplifiedLoweringTest : public GraphTest {
{ {
// Simplified lowering needs to run w/o the typer decorator so make sure // Simplified lowering needs to run w/o the typer decorator so make sure
// the object is not live at the same time. // the object is not live at the same time.
Typer typer(js_heap_broker(), Typer::kNoFlags, graph()); Typer typer(broker(), Typer::kNoFlags, graph());
typer.Run(); typer.Run();
} }
SimplifiedLowering lowering(jsgraph(), js_heap_broker(), zone(), SimplifiedLowering lowering(jsgraph(), broker(), zone(), source_positions(),
source_positions(), node_origins(), node_origins(),
PoisoningMitigationLevel::kDontPoison); PoisoningMitigationLevel::kDontPoison);
lowering.LowerAllNodes(); lowering.LowerAllNodes();
} }
......
...@@ -29,14 +29,13 @@ class SimplifiedOperatorReducerTest : public GraphTest { ...@@ -29,14 +29,13 @@ class SimplifiedOperatorReducerTest : public GraphTest {
protected: protected:
Reduction Reduce(Node* node) { Reduction Reduce(Node* node) {
JSHeapBroker js_heap_broker(isolate(), zone()); JSHeapBroker broker(isolate(), zone());
MachineOperatorBuilder machine(zone()); MachineOperatorBuilder machine(zone());
JSOperatorBuilder javascript(zone()); JSOperatorBuilder javascript(zone());
JSGraph jsgraph(isolate(), graph(), common(), &javascript, simplified(), JSGraph jsgraph(isolate(), graph(), common(), &javascript, simplified(),
&machine); &machine);
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
SimplifiedOperatorReducer reducer(&graph_reducer, &jsgraph, SimplifiedOperatorReducer reducer(&graph_reducer, &jsgraph, &broker);
&js_heap_broker);
return reducer.Reduce(node); return reducer.Reduce(node);
} }
......
...@@ -38,8 +38,7 @@ class TypedOptimizationTest : public TypedGraphTest { ...@@ -38,8 +38,7 @@ class TypedOptimizationTest : public TypedGraphTest {
&machine); &machine);
// TODO(titzer): mock the GraphReducer here for better unit testing. // TODO(titzer): mock the GraphReducer here for better unit testing.
GraphReducer graph_reducer(zone(), graph()); GraphReducer graph_reducer(zone(), graph());
TypedOptimization reducer(&graph_reducer, &deps_, &jsgraph, TypedOptimization reducer(&graph_reducer, &deps_, &jsgraph, broker());
js_heap_broker());
return reducer.Reduce(node); return reducer.Reduce(node);
} }
......
...@@ -22,8 +22,8 @@ class TyperTest : public TypedGraphTest { ...@@ -22,8 +22,8 @@ class TyperTest : public TypedGraphTest {
public: public:
TyperTest() TyperTest()
: TypedGraphTest(3), : TypedGraphTest(3),
js_heap_broker_(isolate(), zone()), broker_(isolate(), zone()),
operation_typer_(&js_heap_broker_, zone()), operation_typer_(&broker_, zone()),
types_(zone(), isolate(), random_number_generator()), types_(zone(), isolate(), random_number_generator()),
javascript_(zone()), javascript_(zone()),
simplified_(zone()) { simplified_(zone()) {
...@@ -56,7 +56,7 @@ class TyperTest : public TypedGraphTest { ...@@ -56,7 +56,7 @@ class TyperTest : public TypedGraphTest {
const int kRepetitions = 50; const int kRepetitions = 50;
JSHeapBroker js_heap_broker_; JSHeapBroker broker_;
OperationTyper operation_typer_; OperationTyper operation_typer_;
Types types_; Types types_;
JSOperatorBuilder javascript_; JSOperatorBuilder javascript_;
...@@ -176,8 +176,8 @@ class TyperTest : public TypedGraphTest { ...@@ -176,8 +176,8 @@ class TyperTest : public TypedGraphTest {
for (int x2 = rmin; x2 < rmin + width; x2++) { for (int x2 = rmin; x2 < rmin + width; x2++) {
double result_value = opfun(x1, x2); double result_value = opfun(x1, x2);
Type result_type = Type::NewConstant( Type result_type = Type::NewConstant(
&js_heap_broker_, &broker_, isolate()->factory()->NewNumber(result_value),
isolate()->factory()->NewNumber(result_value), zone()); zone());
EXPECT_TRUE(result_type.Is(expected_type)); EXPECT_TRUE(result_type.Is(expected_type));
} }
} }
...@@ -198,23 +198,21 @@ class TyperTest : public TypedGraphTest { ...@@ -198,23 +198,21 @@ class TyperTest : public TypedGraphTest {
double x2 = RandomInt(r2.AsRange()); double x2 = RandomInt(r2.AsRange());
double result_value = opfun(x1, x2); double result_value = opfun(x1, x2);
Type result_type = Type::NewConstant( Type result_type = Type::NewConstant(
&js_heap_broker_, isolate()->factory()->NewNumber(result_value), &broker_, isolate()->factory()->NewNumber(result_value), zone());
zone());
EXPECT_TRUE(result_type.Is(expected_type)); EXPECT_TRUE(result_type.Is(expected_type));
} }
} }
// Test extreme cases. // Test extreme cases.
double x1 = +1e-308; double x1 = +1e-308;
double x2 = -1e-308; double x2 = -1e-308;
Type r1 = Type::NewConstant(&js_heap_broker_, Type r1 = Type::NewConstant(&broker_, isolate()->factory()->NewNumber(x1),
isolate()->factory()->NewNumber(x1), zone()); zone());
Type r2 = Type::NewConstant(&js_heap_broker_, Type r2 = Type::NewConstant(&broker_, isolate()->factory()->NewNumber(x2),
isolate()->factory()->NewNumber(x2), zone()); zone());
Type expected_type = TypeBinaryOp(op, r1, r2); Type expected_type = TypeBinaryOp(op, r1, r2);
double result_value = opfun(x1, x2); double result_value = opfun(x1, x2);
Type result_type = Type::NewConstant( Type result_type = Type::NewConstant(
&js_heap_broker_, isolate()->factory()->NewNumber(result_value), &broker_, isolate()->factory()->NewNumber(result_value), zone());
zone());
EXPECT_TRUE(result_type.Is(expected_type)); EXPECT_TRUE(result_type.Is(expected_type));
} }
...@@ -229,7 +227,7 @@ class TyperTest : public TypedGraphTest { ...@@ -229,7 +227,7 @@ class TyperTest : public TypedGraphTest {
double x2 = RandomInt(r2.AsRange()); double x2 = RandomInt(r2.AsRange());
bool result_value = opfun(x1, x2); bool result_value = opfun(x1, x2);
Type result_type = Type::NewConstant( Type result_type = Type::NewConstant(
&js_heap_broker_, &broker_,
result_value ? isolate()->factory()->true_value() result_value ? isolate()->factory()->true_value()
: isolate()->factory()->false_value(), : isolate()->factory()->false_value(),
zone()); zone());
...@@ -249,8 +247,7 @@ class TyperTest : public TypedGraphTest { ...@@ -249,8 +247,7 @@ class TyperTest : public TypedGraphTest {
int32_t x2 = static_cast<int32_t>(RandomInt(r2.AsRange())); int32_t x2 = static_cast<int32_t>(RandomInt(r2.AsRange()));
double result_value = opfun(x1, x2); double result_value = opfun(x1, x2);
Type result_type = Type::NewConstant( Type result_type = Type::NewConstant(
&js_heap_broker_, isolate()->factory()->NewNumber(result_value), &broker_, isolate()->factory()->NewNumber(result_value), zone());
zone());
EXPECT_TRUE(result_type.Is(expected_type)); EXPECT_TRUE(result_type.Is(expected_type));
} }
} }
......
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