diff options
Diffstat (limited to 'chromium/v8/src/compiler/js-intrinsic-lowering.cc')
-rw-r--r-- | chromium/v8/src/compiler/js-intrinsic-lowering.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/chromium/v8/src/compiler/js-intrinsic-lowering.cc b/chromium/v8/src/compiler/js-intrinsic-lowering.cc index 970a7e3ed63..ccb0622017d 100644 --- a/chromium/v8/src/compiler/js-intrinsic-lowering.cc +++ b/chromium/v8/src/compiler/js-intrinsic-lowering.cc @@ -21,10 +21,13 @@ namespace v8 { namespace internal { namespace compiler { -JSIntrinsicLowering::JSIntrinsicLowering(Editor* editor, JSGraph* jsgraph) - : AdvancedReducer(editor), jsgraph_(jsgraph) {} +JSIntrinsicLowering::JSIntrinsicLowering(Editor* editor, JSGraph* jsgraph, + JSHeapBroker* broker) + : AdvancedReducer(editor), jsgraph_(jsgraph), broker_(broker) {} Reduction JSIntrinsicLowering::Reduce(Node* node) { + DisallowHeapAccessIf no_heap_access(FLAG_concurrent_inlining); + if (node->opcode() != IrOpcode::kJSCallRuntime) return NoChange(); const Runtime::Function* const f = Runtime::FunctionForId(CallRuntimeParametersOf(node->op()).id()); @@ -108,7 +111,7 @@ Reduction JSIntrinsicLowering::ReduceDeoptimizeNow(Node* node) { // TODO(bmeurer): Move MergeControlToEnd() to the AdvancedReducer. Node* deoptimize = graph()->NewNode( common()->Deoptimize(DeoptimizeKind::kEager, - DeoptimizeReason::kDeoptimizeNow, VectorSlotPair()), + DeoptimizeReason::kDeoptimizeNow, FeedbackSource()), frame_state, effect, control); NodeProperties::MergeControlToEnd(graph(), common(), deoptimize); Revisit(graph()->end()); @@ -307,7 +310,7 @@ Reduction JSIntrinsicLowering::ReduceToObject(Node* node) { Reduction JSIntrinsicLowering::ReduceToString(Node* node) { // ToString is unnecessary if the input is a string. HeapObjectMatcher m(NodeProperties::GetValueInput(node, 0)); - if (m.HasValue() && m.Value()->IsString()) { + if (m.HasValue() && m.Ref(broker()).IsString()) { ReplaceWithValue(node, m.node()); return Replace(m.node()); } |