25 #define DEBUG_TYPE "wasm-isel"
46 return "WebAssembly Instruction Selection";
59 bool SelectInlineAsmMemoryOperand(
const SDValue &
Op,
unsigned ConstraintID,
60 std::vector<SDValue> &OutOps)
override;
63 #include "WebAssemblyGenDAGISel.inc"
97 bool WebAssemblyDAGToDAGISel::SelectInlineAsmMemoryOperand(
98 const SDValue &
Op,
unsigned ConstraintID, std::vector<SDValue> &OutOps) {
99 switch (ConstraintID) {
104 OutOps.push_back(Op);
117 return new WebAssemblyDAGToDAGISel(TM, OptLevel);
raw_ostream & errs()
This returns a reference to a raw_ostream for standard error.
unsigned getOpcode() const
Return the SelectionDAG opcode value for this node.
const Function * getFunction() const
getFunction - Return the LLVM function that this machine code represents
void setNodeId(int Id)
Set unique node id.
This file contains the entry points for global functions defined in the LLVM WebAssembly back-end...
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
EVT getValueType(unsigned ResNo) const
Return the type of a specified result.
bool runOnMachineFunction(MachineFunction &MF) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
This file declares the WebAssembly-specific subclass of TargetMachine.
FunctionPass * createWebAssemblyISelDag(WebAssemblyTargetMachine &TM, CodeGenOpt::Level OptLevel)
This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling...
This file provides WebAssembly-specific target descriptions.
FunctionPass class - This class is used to implement most global optimizations.
EVT - Extended Value Type.
void dump() const
Dump this node, for debugging.
Represents one node in the SelectionDAG.
SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruc...
bool hasFnAttribute(Attribute::AttrKind Kind) const
Return true if the function has the attribute.
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...
bool isMachineOpcode() const
Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode...