#ifndef V8_COMPILER_TURBOSHAFT_MEMORY_OPTIMIZATION_REDUCER_H_
#define V8_COMPILER_TURBOSHAFT_MEMORY_OPTIMIZATION_REDUCER_H_
#include <optional>
#include "src/base/template-utils.h"
#include "src/builtins/builtins.h"
#include "src/codegen/external-reference.h"
#include "src/compiler/turboshaft/assembler.h"
#include "src/compiler/turboshaft/copying-phase.h"
#include "src/compiler/turboshaft/operations.h"
#include "src/compiler/turboshaft/opmasks.h"
#include "src/compiler/turboshaft/phase.h"
#include "src/compiler/turboshaft/utils.h"
#include "src/compiler/write-barrier-kind.h"
#include "src/zone/zone-containers.h"
namespace v8::internal::compiler::turboshaft {
#include "src/compiler/turboshaft/define-assembler-macros.inc"
const TSCallDescriptor* CreateAllocateBuiltinDescriptor(Zone* zone,
Isolate* isolate);
inline bool ValueNeedsWriteBarrier(const Graph* graph, const Operation& value,
Isolate* isolate) { … }
inline const AllocateOp* UnwrapAllocate(const Graph* graph,
const Operation* op) { … }
struct MemoryAnalyzer { … };
template <class Next>
class MemoryOptimizationReducer : public Next { … };
#include "src/compiler/turboshaft/undef-assembler-macros.inc"
}
#endif