16 #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYISELLOWERING_H
17 #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYISELLOWERING_H
23 namespace WebAssemblyISD {
27 #define HANDLE_NODETYPE(NODE) NODE,
28 #include "WebAssemblyISD.def"
29 #undef HANDLE_NODETYPE
34 class WebAssemblySubtarget;
35 class WebAssemblyTargetMachine;
51 const char *getTargetNodeName(
unsigned Opcode)
const override;
52 std::pair<unsigned, const TargetRegisterClass *> getRegForInlineAsmConstraint(
54 MVT VT)
const override;
55 bool isCheapToSpeculateCttz()
const override;
56 bool isCheapToSpeculateCtlz()
const override;
58 unsigned AS)
const override;
59 bool allowsMisalignedMemoryAccesses(
EVT,
unsigned AddrSpace,
unsigned Align,
60 bool *
Fast)
const override;
91 namespace WebAssembly {
BUILTIN_OP_END - This must be the last enum value in this list.
A parsed version of the target data layout string in and methods for querying it. ...
This represents an addressing mode of: BaseGV + BaseOffs + BaseReg + Scale*ScaleReg If BaseGV is null...
FastISel * createFastISel(FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
This is a fast-path instruction selection class that generates poor code and doesn't support illegal ...
MVT - Machine Value Type.
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important class for using LLVM in a threaded context.
EVT - Extended Value Type.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
This structure contains all information that is necessary for lowering calls.
WebAssemblyTargetLowering(const TargetMachine &TM, const WebAssemblySubtarget &STI)
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
Provides information about what library functions are available for the current target.
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
FunctionLoweringInfo - This contains information that is global to a function that is used when lower...
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...
Fast - This calling convention attempts to make calls as fast as possible (e.g.
This file describes how to lower LLVM code to machine code.