diff --git a/common.gypi b/common.gypi index a5e5df78732e38..18f60c1435c6ef 100644 --- a/common.gypi +++ b/common.gypi @@ -37,7 +37,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.6', + 'v8_embedder_string': '-node.7', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/builtins/builtins-collections-gen.cc b/deps/v8/src/builtins/builtins-collections-gen.cc index e5e6026ce61632..6fea5c37e8c2f2 100644 --- a/deps/v8/src/builtins/builtins-collections-gen.cc +++ b/deps/v8/src/builtins/builtins-collections-gen.cc @@ -2782,10 +2782,9 @@ TNode WeakCollectionsBuiltinsAssembler::ShouldShrink( TNode WeakCollectionsBuiltinsAssembler::ValueIndexFromKeyIndex( TNode key_index) { - return IntPtrAdd( - key_index, - IntPtrConstant(EphemeronHashTable::TodoShape::kEntryValueIndex - - EphemeronHashTable::kEntryKeyIndex)); + return IntPtrAdd(key_index, + IntPtrConstant(EphemeronHashTable::ShapeT::kEntryValueIndex - + EphemeronHashTable::kEntryKeyIndex)); } TF_BUILTIN(WeakMapConstructor, WeakCollectionsBuiltinsAssembler) { diff --git a/deps/v8/src/codegen/code-stub-assembler.cc b/deps/v8/src/codegen/code-stub-assembler.cc index 170cf773d71c39..ec9f176f342d64 100644 --- a/deps/v8/src/codegen/code-stub-assembler.cc +++ b/deps/v8/src/codegen/code-stub-assembler.cc @@ -9455,7 +9455,7 @@ void CodeStubAssembler::NameDictionaryLookup( CAST(UnsafeLoadFixedArrayElement(dictionary, index)); GotoIf(TaggedEqual(current, undefined), if_not_found); if (mode == kFindExisting) { - if (Dictionary::TodoShape::kMatchNeedsHoleCheck) { + if (Dictionary::ShapeT::kMatchNeedsHoleCheck) { GotoIf(TaggedEqual(current, TheHoleConstant()), &next_probe); } current = LoadName(current); diff --git a/deps/v8/src/compiler/turboshaft/assembler.h b/deps/v8/src/compiler/turboshaft/assembler.h index 81a952bf580145..7a8149b4c92922 100644 --- a/deps/v8/src/compiler/turboshaft/assembler.h +++ b/deps/v8/src/compiler/turboshaft/assembler.h @@ -3934,8 +3934,14 @@ class TSAssembler : public Assembler> { public: +#ifdef _WIN32 + explicit TSAssembler(Graph& input_graph, Graph& output_graph, + Zone* phase_zone) + : Assembler(input_graph, output_graph, phase_zone) {} +#else using Assembler>::Assembler; +#endif }; #include "src/compiler/turboshaft/undef-assembler-macros.inc" diff --git a/deps/v8/src/compiler/turboshaft/code-elimination-and-simplification-phase.cc b/deps/v8/src/compiler/turboshaft/code-elimination-and-simplification-phase.cc index 416d0da2ad3846..fcb579f6f62d7a 100644 --- a/deps/v8/src/compiler/turboshaft/code-elimination-and-simplification-phase.cc +++ b/deps/v8/src/compiler/turboshaft/code-elimination-and-simplification-phase.cc @@ -32,7 +32,8 @@ void CodeEliminationAndSimplificationPhase::Run(Zone* temp_zone) { // (which, for simplificy, doesn't use the Assembler helper // methods, but only calls Next::ReduceLoad/Store). DuplicationOptimizationReducer, - ValueNumberingReducer>::Run(temp_zone); + VariableReducerHotfix, + ValueNumberingReducer>::Run(temp_zone); } } // namespace v8::internal::compiler::turboshaft diff --git a/deps/v8/src/compiler/turboshaft/copying-phase.h b/deps/v8/src/compiler/turboshaft/copying-phase.h index 64893f7173cbf6..fa2acafd12d6f2 100644 --- a/deps/v8/src/compiler/turboshaft/copying-phase.h +++ b/deps/v8/src/compiler/turboshaft/copying-phase.h @@ -36,6 +36,18 @@ struct PaddingSpace { V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, PaddingSpace padding); +template +class VariableReducerHotfix : public Next { +public: + TURBOSHAFT_REDUCER_BOILERPLATE() + + void SetVariable(Variable var, OpIndex new_index) {} + Variable NewLoopInvariantVariable(MaybeRegisterRepresentation rep) { return Variable(); } + + OpIndex GetVariable(Variable var) { return OpIndex(); } + OpIndex GetPredecessorValue(Variable var, int predecessor_index) { return OpIndex(); } +}; + template class ReducerBaseForwarder; template @@ -46,6 +58,9 @@ class GraphVisitor : public Next { template friend class ReducerBaseForwarder; + private: + bool contains_variable_reducer_; + public: TURBOSHAFT_REDUCER_BOILERPLATE() @@ -66,7 +81,8 @@ class GraphVisitor : public Next { // `trace_reduction` is a template parameter to avoid paying for tracing at // runtime. template - void VisitGraph() { + void VisitGraph(bool contains_variable_reducer) { + contains_variable_reducer_ = contains_variable_reducer; Asm().Analyze(); // Creating initial old-to-new Block mapping. @@ -177,8 +193,7 @@ class GraphVisitor : public Next { DCHECK(old_index.valid()); OpIndex result = op_mapping_[old_index]; - if constexpr (reducer_list_contains::value) { + if (contains_variable_reducer_) { if (!result.valid()) { // {op_mapping} doesn't have a mapping for {old_index}. The assembler // should provide the mapping. @@ -1294,8 +1309,7 @@ class GraphVisitor : public Next { DCHECK(Asm().input_graph().BelongsToThisGraph(old_index)); DCHECK_IMPLIES(new_index.valid(), Asm().output_graph().BelongsToThisGraph(new_index)); - if constexpr (reducer_list_contains::value) { + if (contains_variable_reducer_) { if (current_block_needs_variables_) { MaybeVariable var = GetVariableFor(old_index); if (!var.has_value()) { @@ -1393,17 +1407,17 @@ template