// Copyright 2024 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_COMPILER_TURBOSHAFT_JS_GENERIC_LOWERING_REDUCER_H_ #define V8_COMPILER_TURBOSHAFT_JS_GENERIC_LOWERING_REDUCER_H_ #include "src/compiler/globals.h" #include "src/compiler/turboshaft/assembler.h" #include "src/compiler/turboshaft/index.h" #include "src/compiler/turboshaft/operations.h" namespace v8::internal::compiler::turboshaft { #include "src/compiler/turboshaft/define-assembler-macros.inc" // JSGenericLowering lowers JS operators to generic builtin calls (possibly with // some small inlined fast paths). // // It should run after SimplifiedLowering, which should have already replaced // most of the JS operations with lower levels (Simplified or Machine) more // specialized operations. However, SimplifiedLowering won't be able to remove // all JS operators; the remaining JS operations will thus be replaced by // builtin calls here in JSGenericLowering. template <class Next> class JSGenericLoweringReducer : public Next { … }; #include "src/compiler/turboshaft/undef-assembler-macros.inc" } // namespace v8::internal::compiler::turboshaft #endif // V8_COMPILER_TURBOSHAFT_JS_GENERIC_LOWERING_REDUCER_H_