Go to the documentation of this file.
18 #define GET_REGINFO_ENUM
19 #include "WebAssemblyGenRegisterInfo.inc"
34 if (
Type ==
"v128" ||
Type ==
"i8x16" ||
Type ==
"i16x8" ||
Type ==
"i32x4" ||
37 if (
Type ==
"funcref")
39 if (
Type ==
"externref")
97 return "invalid_type";
125 switch (
Type.SimpleTy) {
152 case WebAssembly::I32RegClassID:
154 case WebAssembly::I64RegClassID:
156 case WebAssembly::F32RegClassID:
158 case WebAssembly::F64RegClassID:
160 case WebAssembly::V128RegClassID:
162 case WebAssembly::FUNCREFRegClassID:
164 case WebAssembly::EXTERNREFRegClassID:
179 bool IsTable =
false;
195 }
else if (VTs.size() == 1) {
StringSwitch & Case(StringLiteral S, T Value)
MVT parseMVT(StringRef Type)
This is an optimization pass for GlobalISel generic memory operations.
Optional< wasm::WasmSymbolType > getType() const
LLVM_NODISCARD R Default(T Value)
@ WASM_ADDRESS_SPACE_FUNCREF
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
unsigned getPointerAddressSpace() const
Get the address space of this pointer or pointer vector type.
@ WASM_SYMBOL_TYPE_GLOBAL
std::string signatureToString(const wasm::WasmSignature *Sig)
The instances of the Type class are immutable: once they are created, they are never changed.
@ WASM_ADDRESS_SPACE_EXTERNREF
void wasmSymbolSetType(MCSymbolWasm *Sym, const Type *GlobalVT, const SmallVector< MVT, 1 > &VTs)
Sets a Wasm Symbol Type.
wasm::ValType regClassToValType(unsigned RC)
bool isArrayTy() const
True if this is an instance of ArrayType.
Optional< wasm::ValType > parseType(StringRef Type)
wasm::ValType toValType(MVT Type)
void setType(wasm::WasmSymbolType type)
void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
@ INVALID_SIMPLE_VALUE_TYPE
std::string typeListToString(ArrayRef< wasm::ValType > List)
Type * getArrayElementType() const
void setTableType(wasm::WasmTableType TT)
SmallVector< ValType, 1 > Returns
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool isRefType(const Type *Ty)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
BlockType parseBlockType(StringRef Type)
const char * typeToString(wasm::ValType Type)
void setGlobalType(wasm::WasmGlobalType GT)
BlockType
Used as immediate MachineOperands for block signatures.
A switch()-like statement whose cases are string literals.
const char * anyTypeToString(unsigned Type)
SmallVector< ValType, 4 > Params