LLVM  13.0.0git
Macros | Functions
WebAssemblyISelLowering.cpp File Reference
#include "WebAssemblyISelLowering.h"
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "Utils/WebAssemblyUtilities.h"
#include "WebAssemblyMachineFunctionInfo.h"
#include "WebAssemblySubtarget.h"
#include "WebAssemblyTargetMachine.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/WasmEHFuncInfo.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/DiagnosticPrinter.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsWebAssembly.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetOptions.h"
#include "WebAssemblyISD.def"
Include dependency graph for WebAssemblyISelLowering.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "wasm-lower"
 
#define HANDLE_NODETYPE(NODE)
 
#define HANDLE_MEM_NODETYPE(NODE)   HANDLE_NODETYPE(NODE)
 

Functions

static MachineBasicBlockLowerFPToInt (MachineInstr &MI, DebugLoc DL, MachineBasicBlock *BB, const TargetInstrInfo &TII, bool IsUnsigned, bool Int64, bool Float64, unsigned LoweredOpcode)
 
static MachineBasicBlockLowerCallResults (MachineInstr &CallResults, DebugLoc DL, MachineBasicBlock *BB, const WebAssemblySubtarget *Subtarget, const TargetInstrInfo &TII)
 
static void fail (const SDLoc &DL, SelectionDAG &DAG, const char *Msg)
 
static bool callingConvSupported (CallingConv::ID CallConv)
 
static bool IsWebAssemblyGlobal (SDValue Op)
 
static Optional< unsigned > IsWebAssemblyLocal (SDValue Op, SelectionDAG &DAG)
 
static SDValue getCppExceptionSymNode (SDValue Op, unsigned TagIndex, SelectionDAG &DAG)
 
static SDValue unrollVectorShift (SDValue Op, SelectionDAG &DAG)
 
static SDValue performVECTOR_SHUFFLECombine (SDNode *N, TargetLowering::DAGCombinerInfo &DCI)
 
static SDValue performVectorExtendCombine (SDNode *N, TargetLowering::DAGCombinerInfo &DCI)
 
static SDValue performVectorConvertLowCombine (SDNode *N, TargetLowering::DAGCombinerInfo &DCI)
 
static SDValue performVectorTruncSatLowCombine (SDNode *N, TargetLowering::DAGCombinerInfo &DCI)
 

Detailed Description

This file implements the WebAssemblyTargetLowering class.

Definition in file WebAssemblyISelLowering.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "wasm-lower"

Definition at line 40 of file WebAssemblyISelLowering.cpp.

◆ HANDLE_MEM_NODETYPE

#define HANDLE_MEM_NODETYPE (   NODE)    HANDLE_NODETYPE(NODE)

◆ HANDLE_NODETYPE

#define HANDLE_NODETYPE (   NODE)
Value:
return "WebAssemblyISD::" #NODE;

Function Documentation

◆ callingConvSupported()

static bool callingConvSupported ( CallingConv::ID  CallConv)
static

◆ fail()

static void fail ( const SDLoc DL,
SelectionDAG DAG,
const char *  Msg 
)
static

◆ getCppExceptionSymNode()

static SDValue getCppExceptionSymNode ( SDValue  Op,
unsigned  TagIndex,
SelectionDAG DAG 
)
static

◆ IsWebAssemblyGlobal()

static bool IsWebAssemblyGlobal ( SDValue  Op)
static

◆ IsWebAssemblyLocal()

static Optional<unsigned> IsWebAssemblyLocal ( SDValue  Op,
SelectionDAG DAG 
)
static

◆ LowerCallResults()

static MachineBasicBlock* LowerCallResults ( MachineInstr CallResults,
DebugLoc  DL,
MachineBasicBlock BB,
const WebAssemblySubtarget Subtarget,
const TargetInstrInfo TII 
)
static

◆ LowerFPToInt()

static MachineBasicBlock* LowerFPToInt ( MachineInstr MI,
DebugLoc  DL,
MachineBasicBlock BB,
const TargetInstrInfo TII,
bool  IsUnsigned,
bool  Int64,
bool  Float64,
unsigned  LoweredOpcode 
)
static

◆ performVECTOR_SHUFFLECombine()

static SDValue performVECTOR_SHUFFLECombine ( SDNode N,
TargetLowering::DAGCombinerInfo DCI 
)
static

◆ performVectorConvertLowCombine()

static SDValue performVectorConvertLowCombine ( SDNode N,
TargetLowering::DAGCombinerInfo DCI 
)
static

◆ performVectorExtendCombine()

static SDValue performVectorExtendCombine ( SDNode N,
TargetLowering::DAGCombinerInfo DCI 
)
static

◆ performVectorTruncSatLowCombine()

static SDValue performVectorTruncSatLowCombine ( SDNode N,
TargetLowering::DAGCombinerInfo DCI 
)
static

◆ unrollVectorShift()

static SDValue unrollVectorShift ( SDValue  Op,
SelectionDAG DAG 
)
static
NODE
#define NODE(name)