71 OS <<
"\t.functype\t" <<
name;
78 for (
auto Ty : Params)
84 OS <<
"\t.import_global\t" << name <<
'\n';
88 OS <<
"\t.indidx \t" << *Value <<
'\n';
const char * TypeToString(MVT Ty)
void emitLocal(ArrayRef< MVT > Types) override
.local
void emitResult(ArrayRef< MVT > Types) override
.result
This class prints an WebAssembly MCInst to wasm file syntax.
Target specific streamer interface.
Function Alias Analysis Results
void emitIndirectFunctionType(StringRef name, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results) override
.functype
void emitResult(ArrayRef< MVT > Types) override
.result
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Base class for the full range of assembler expressions which are needed for parsing.
LLVM_NODISCARD bool empty() const
ValType toValType(const MVT &Ty)
void emitGlobalImport(StringRef name) override
.import_global
WebAssemblyTargetELFStreamer(MCStreamer &S)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
virtual void EmitIntValue(uint64_t Value, unsigned Size)
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers...
size_t size() const
size - Get the array size.
WebAssembly-specific streamer interface, to implement support WebAssembly-specific assembly directive...
Streaming machine code generation interface.
MVT - Machine Value Type.
The instances of the Type class are immutable: once they are created, they are never changed...
void emitIndIdx(const MCExpr *Value) override
.indidx
This file provides WebAssembly-specific target descriptions.
static void PrintTypes(formatted_raw_ostream &OS, ArrayRef< MVT > Types)
void emitIndIdx(const MCExpr *Value) override
.indidx
static const unsigned End
void emitEndFunc() override
.endfunc
bool empty() const
empty - Check if the array is empty.
WebAssemblyTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This file declares WebAssembly-specific target streamer classes.
void emitEndFunc() override
.endfunc
void emitIndirectFunctionType(StringRef name, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results) override
.functype
void emitParam(ArrayRef< MVT > Types) override
.param
LLVM_ATTRIBUTE_ALWAYS_INLINE size_type size() const
WebAssemblyTargetStreamer(MCStreamer &S)
void EmitULEB128IntValue(uint64_t Value, unsigned Padding=0)
Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integ...
void emitLocal(ArrayRef< MVT > Types) override
.local
void emitGlobalImport(StringRef name) override
.import_global
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
LLVM Value Representation.
StringRef - Represent a constant reference to a string, i.e.
void emitParam(ArrayRef< MVT > Types) override
.param