v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
wasm-gc-lowering.h
Go to the documentation of this file.
1// Copyright 2022 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_COMPILER_WASM_GC_LOWERING_H_
6#define V8_COMPILER_WASM_GC_LOWERING_H_
7
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
10#endif // !V8_ENABLE_WEBASSEMBLY
11
15
16namespace v8 {
17namespace internal {
18namespace compiler {
19
20class MachineGraph;
21class SourcePositionTable;
22class WasmGraphAssembler;
23
24class WasmGCLowering final : public AdvancedReducer {
25 public:
26 WasmGCLowering(Editor* editor, MachineGraph* mcgraph,
27 const wasm::WasmModule* module, bool disable_trap_handler,
28 SourcePositionTable* source_position_table);
29
30 const char* reducer_name() const override { return "WasmGCLowering"; }
31
32 Reduction Reduce(Node* node) final;
33
34 private:
56 Node* IsNull(Node* object, wasm::ValueType type);
59 void UpdateSourcePosition(Node* new_node, Node* old_node);
66};
67
68} // namespace compiler
69} // namespace internal
70} // namespace v8
71
72#endif // V8_COMPILER_WASM_GC_LOWERING_H_
Node * BuildLoadExternalPointerFromObject(Node *object, int offset, ExternalPointerTag tag)
WasmGCLowering(Editor *editor, MachineGraph *mcgraph, const wasm::WasmModule *module, bool disable_trap_handler, SourcePositionTable *source_position_table)
void UpdateSourcePosition(Node *new_node, Node *old_node)
Reduction ReduceWasmTypeCheckAbstract(Node *node)
Reduction ReduceStringPrepareForGetCodeunit(Node *node)
Node * IsNull(Node *object, wasm::ValueType type)
Reduction ReduceWasmArrayInitializeLength(Node *node)
const char * reducer_name() const override
int32_t offset