5#ifndef V8_COMPILER_MEMORY_OPTIMIZER_H_
6#define V8_COMPILER_MEMORY_OPTIMIZER_H_
12#ifdef V8_ENABLE_WEBASSEMBLY
53 const char* function_debug_name,
TickCounter* tick_counter,
DISALLOW_IMPLICIT_CONSTRUCTORS(MemoryOptimizer)
void EnqueueMerge(Node *, int, AllocationState const *)
void VisitOtherEffect(Node *, AllocationState const *, NodeId)
JSGraphAssembler graph_assembler_
void VisitAllocateRaw(Node *, AllocationState const *, NodeId)
JSGraph * jsgraph() const
ZoneMap< NodeId, AllocationStates > pending_
AllocationState const * MergeStates(AllocationStates const &states)
void VisitNode(Node *, AllocationState const *, NodeId)
void VisitProtectedLoad(Node *, AllocationState const *, NodeId)
void VisitStoreToObject(Node *, AllocationState const *, NodeId)
ZoneQueue< Token > tokens_
MemoryLowering memory_lowering_
MemoryOptimizer(JSHeapBroker *broker, JSGraph *jsgraph, Zone *zone, MemoryLowering::AllocationFolding allocation_folding, const char *function_debug_name, TickCounter *tick_counter, bool is_wasm)
void VisitLoadElement(Node *, AllocationState const *, NodeId)
void VisitLoadField(Node *, AllocationState const *, NodeId)
~MemoryOptimizer()=default
void EnqueueUses(Node *, AllocationState const *, NodeId)
WasmAddressReassociation wasm_address_reassociation_
AllocationState const *const empty_state_
void VisitLoadFromObject(Node *, AllocationState const *, NodeId)
AllocationState const * empty_state() const
void VisitCall(Node *, AllocationState const *, NodeId)
void VisitStore(Node *, AllocationState const *, NodeId)
WasmAddressReassociation * wasm_address_reassociation()
void VisitProtectedStore(Node *, AllocationState const *, NodeId)
void EnqueueUse(Node *, int, AllocationState const *, NodeId)
MemoryLowering * memory_lowering()
void VisitStoreElement(Node *, AllocationState const *, NodeId)
void ReplaceUsesAndKillNode(Node *node, Node *replacement)
TickCounter *const tick_counter_
void VisitStoreField(Node *, AllocationState const *, NodeId)
bool AllocationTypeNeedsUpdateToOld(Node *const user, const Edge edge)
void VisitProtectedMemOp(Node *node, uint32_t effect_chain)
WasmAddressReassociation(JSGraph *jsgraph, Zone *zone)
#define V8_EXPORT_PRIVATE
AllocationState const * state