#include "mlir/Dialect/WasmSSA/IR/WasmSSA.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinAttributeInterfaces.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Location.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Target/Wasm/WasmBinaryEncoding.h"
#include "mlir/Target/Wasm/WasmImporter.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/DebugLog.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/LogicalResult.h"
#include <cstddef>
#include <cstdint>
#include <variant>
Go to the source code of this file.
|
| #define | DEBUG_TYPE "wasm-translate" |
| |
| #define | APPLY_WASM_SEC_TRANSFORM |
| |
| #define | WASM_SEC_TRANSFORM(section) |
| |
| #define | BUILD_NUMERIC_OP(OP_NAME, N_ARGS, PREFIX, SUFFIX, TYPE) |
| |
| #define | BUILD_NUMERIC_BINOP_INT(OP_NAME, PREFIX) |
| |
| #define | BUILD_NUMERIC_BINOP_FP(OP_NAME, PREFIX) |
| |
| #define | BUILD_NUMERIC_BINOP_INTFP(OP_NAME, PREFIX) |
| |
| #define | BUILD_NUMERIC_UNARY_OP_INT(OP_NAME, PREFIX) |
| |
| #define | BUILD_NUMERIC_UNARY_OP_FP(OP_NAME, PREFIX) |
| |
| #define | BUILD_CONVERSION_OP(IN_T, OUT_T, SOURCE_OP, TARGET_OP) |
| |
| #define | BUILD_CONVERT_OP_FOR(DEST_T, WIDTH) |
| |
| #define | BUILD_SLICE_EXTEND_PARSER(IT_WIDTH, EXTRACT_WIDTH) |
| |
| #define | BUILD_REINTERPRET_PARSER(WIDTH, FP_TYPE) |
| |
◆ APPLY_WASM_SEC_TRANSFORM
| #define APPLY_WASM_SEC_TRANSFORM |
Value:
WASM_SEC_TRANSFORM(TYPE) \
WASM_SEC_TRANSFORM(IMPORT) \
WASM_SEC_TRANSFORM(FUNCTION) \
WASM_SEC_TRANSFORM(TABLE) \
WASM_SEC_TRANSFORM(MEMORY) \
WASM_SEC_TRANSFORM(GLOBAL) \
WASM_SEC_TRANSFORM(START) \
WASM_SEC_TRANSFORM(ELEMENT) \
WASM_SEC_TRANSFORM(CODE) \
WASM_SEC_TRANSFORM(DATA) \
WASM_SEC_TRANSFORM(DATACOUNT)
#define WASM_SEC_TRANSFORM(section)
Definition at line 64 of file TranslateFromWasm.cpp.
◆ BUILD_CONVERSION_OP
| #define BUILD_CONVERSION_OP |
( |
|
IN_T, |
|
|
|
OUT_T, |
|
|
|
SOURCE_OP, |
|
|
|
TARGET_OP |
|
) |
| |
Value: template <> \
inline parsed_inst_t ExpressionParser::parseSpecificInstruction< \
WasmBinaryEncoding::OpCode::SOURCE_OP>(
OpBuilder & builder) { \
return buildConvertOp<TARGET_OP, IN_T, OUT_T>(builder); \
}
This class helps build Operations.
Definition at line 1413 of file TranslateFromWasm.cpp.
◆ BUILD_CONVERT_OP_FOR
| #define BUILD_CONVERT_OP_FOR |
( |
|
DEST_T, |
|
|
|
WIDTH |
|
) |
| |
Value:
BUILD_CONVERSION_OP(int32_t, DEST_T, convertSI32F##WIDTH, ConvertSOp) \
BUILD_CONVERSION_OP(uint64_t, DEST_T, convertUI64F##WIDTH, ConvertUOp) \
BUILD_CONVERSION_OP(int64_t, DEST_T, convertSI64F##WIDTH, ConvertSOp)
#define BUILD_CONVERSION_OP(IN_T, OUT_T, SOURCE_OP, TARGET_OP)
Definition at line 1420 of file TranslateFromWasm.cpp.
◆ BUILD_NUMERIC_BINOP_FP
| #define BUILD_NUMERIC_BINOP_FP |
( |
|
OP_NAME, |
|
|
|
PREFIX |
|
) |
| |
Value:
BUILD_NUMERIC_OP(OP_NAME, 2, PREFIX, F64, double)
#define BUILD_NUMERIC_OP(OP_NAME, N_ARGS, PREFIX, SUFFIX, TYPE)
Definition at line 1309 of file TranslateFromWasm.cpp.
◆ BUILD_NUMERIC_BINOP_INT
| #define BUILD_NUMERIC_BINOP_INT |
( |
|
OP_NAME, |
|
|
|
PREFIX |
|
) |
| |
◆ BUILD_NUMERIC_BINOP_INTFP
| #define BUILD_NUMERIC_BINOP_INTFP |
( |
|
OP_NAME, |
|
|
|
PREFIX |
|
) |
| |
Value:
BUILD_NUMERIC_BINOP_FP(OP_NAME, PREFIX)
#define BUILD_NUMERIC_BINOP_INT(OP_NAME, PREFIX)
Definition at line 1314 of file TranslateFromWasm.cpp.
◆ BUILD_NUMERIC_OP
| #define BUILD_NUMERIC_OP |
( |
|
OP_NAME, |
|
|
|
N_ARGS, |
|
|
|
PREFIX, |
|
|
|
SUFFIX, |
|
|
|
TYPE |
|
) |
| |
Value: template <> \
inline parsed_inst_t ExpressionParser::parseSpecificInstruction< \
WasmBinaryEncoding::OpCode::PREFIX##SUFFIX>(
OpBuilder & builder) { \
return buildNumericOp<OP_NAME, TYPE, N_ARGS>(builder); \
}
Definition at line 1296 of file TranslateFromWasm.cpp.
◆ BUILD_NUMERIC_UNARY_OP_FP
| #define BUILD_NUMERIC_UNARY_OP_FP |
( |
|
OP_NAME, |
|
|
|
PREFIX |
|
) |
| |
◆ BUILD_NUMERIC_UNARY_OP_INT
| #define BUILD_NUMERIC_UNARY_OP_INT |
( |
|
OP_NAME, |
|
|
|
PREFIX |
|
) |
| |
◆ BUILD_REINTERPRET_PARSER
| #define BUILD_REINTERPRET_PARSER |
( |
|
WIDTH, |
|
|
|
FP_TYPE |
|
) |
| |
Value: template <> \
inline parsed_inst_t ExpressionParser::parseSpecificInstruction< \
WasmBinaryEncoding::OpCode::reinterpretF##WIDTH##AsI##WIDTH>(
OpBuilder & \
builder) { \
return buildConvertOp<ReinterpretOp, FP_TYPE, int##WIDTH##_t>(builder); \
} \
\
template <> \
inline parsed_inst_t ExpressionParser::parseSpecificInstruction< \
WasmBinaryEncoding::OpCode::reinterpretI##WIDTH##AsF##WIDTH>(
OpBuilder & \
builder) { \
return buildConvertOp<ReinterpretOp, int##WIDTH##_t, FP_TYPE>(builder); \
}
Definition at line 1460 of file TranslateFromWasm.cpp.
◆ BUILD_SLICE_EXTEND_PARSER
| #define BUILD_SLICE_EXTEND_PARSER |
( |
|
IT_WIDTH, |
|
|
|
EXTRACT_WIDTH |
|
) |
| |
Value: template <> \
parsed_inst_t ExpressionParser::parseSpecificInstruction< \
WasmBinaryEncoding::OpCode::extendI##IT_WIDTH##EXTRACT_WIDTH##S>( \
OpBuilder & builder) { \
using inout_t = int##IT_WIDTH##_t; \
auto attr = builder.getUI32IntegerAttr(EXTRACT_WIDTH); \
return buildConvertOp<ExtendLowBitsSOp, inout_t, inout_t>(builder, attr); \
}
Definition at line 1436 of file TranslateFromWasm.cpp.
◆ DEBUG_TYPE
| #define DEBUG_TYPE "wasm-translate" |
◆ WASM_SEC_TRANSFORM
| #define WASM_SEC_TRANSFORM |
( |
|
section | ) |
|
Value: template <> \
[[maybe_unused]] constexpr const char \
*wasmSectionName<WasmSectionType::section> = #section;
Definition at line 82 of file TranslateFromWasm.cpp.