5#ifndef V8_COMPILER_WASM_GC_OPERATOR_REDUCER_H_
6#define V8_COMPILER_WASM_GC_OPERATOR_REDUCER_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
22class SourcePositionTable;
29 return node == other.node && type == other.type;
33 bool IsSet() {
return node !=
nullptr; }
52 const char*
reducer_name()
const override {
return "WasmGCOperatorReducer"; }
80 bool allow_non_wasm =
false);
CommonOperatorBuilder * common() const
Reduction ReduceMerge(Node *node)
Reduction ReduceStart(Node *node)
void UpdateSourcePosition(Node *new_node, Node *old_node)
Reduction ReduceTypeGuard(Node *node)
SourcePositionTable * source_position_table_
WasmGCOperatorReducer(Editor *editor, Zone *temp_zone_, MachineGraph *mcgraph, const wasm::WasmModule *module, SourcePositionTable *source_position_table)
const wasm::WasmModule * module_
Reduction ReduceWasmTypeCheckAbstract(Node *node)
const char * reducer_name() const override
Reduction ReduceWasmArrayLength(Node *node)
Node * SetType(Node *node, wasm::ValueType type)
Reduction Reduce(Node *node) final
wasm::TypeInModule ObjectTypeFromContext(Node *object, Node *control, bool allow_non_wasm=false)
Reduction UpdateNodeAndAliasesTypes(Node *state_owner, ControlPathTypes parent_state, Node *node, wasm::TypeInModule type, bool in_new_block)
SimplifiedOperatorBuilder * simplified()
Reduction ReduceIf(Node *node, bool condition)
Reduction ReduceAssertNotNull(Node *node)
Reduction ReduceWasmTypeCheck(Node *node)
Reduction ReduceWasmTypeCastAbstract(Node *node)
Reduction ReduceWasmStructOperation(Node *node)
CommonOperatorBuilder * common()
Reduction ReduceCheckNull(Node *node)
Reduction ReduceWasmTypeCast(Node *node)
Reduction ReduceWasmAnyConvertExtern(Node *node)
SimplifiedOperatorBuilder * simplified() override
bool operator==(const NodeWithType &other) const
bool operator!=(const NodeWithType &other) const
NodeWithType(Node *node, wasm::TypeInModule type)