|
LLVM 23.0.0git
|
This file defines an instruction selector for the WebAssembly target. More...
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"#include "WebAssembly.h"#include "WebAssemblyISelLowering.h"#include "WebAssemblyTargetMachine.h"#include "WebAssemblyUtilities.h"#include "llvm/BinaryFormat/Wasm.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/SelectionDAGISel.h"#include "llvm/CodeGen/WasmEHFuncInfo.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/IR/Function.h"#include "llvm/IR/IntrinsicsWebAssembly.h"#include "llvm/MC/MCSymbolWasm.h"#include "llvm/Support/Debug.h"#include "llvm/Support/KnownBits.h"#include "llvm/Support/raw_ostream.h"#include "WebAssemblyGenDAGISel.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "wasm-isel" |
| #define | PASS_NAME "WebAssembly Instruction Selection" |
Functions | |
| INITIALIZE_PASS (WebAssemblyDAGToDAGISelLegacy, DEBUG_TYPE, PASS_NAME, false, false) void WebAssemblyDAGToDAGISel | |
| static SDValue | getTagSymNode (int Tag, SelectionDAG *DAG) |
| static APInt | encodeFunctionSignature (SelectionDAG *DAG, SDLoc &DL, SmallVector< MVT, 4 > &Returns, SmallVector< MVT, 4 > &Params) |
| static unsigned | getWebAssemblyMemoryOrder (AtomicOrdering Ordering) |
| static MemSDNode * | findMemSDNode (SDNode *N) |
This file defines an instruction selector for the WebAssembly target.
Definition in file WebAssemblyISelDAGToDAG.cpp.
| #define DEBUG_TYPE "wasm-isel" |
Definition at line 33 of file WebAssemblyISelDAGToDAG.cpp.
| #define PASS_NAME "WebAssembly Instruction Selection" |
Definition at line 34 of file WebAssemblyISelDAGToDAG.cpp.
|
static |
Definition at line 130 of file WebAssemblyISelDAGToDAG.cpp.
References llvm::BitWidth, DL, llvm::errs(), llvm::wasm::EXNREF, llvm::wasm::EXTERNREF, llvm::wasm::F32, llvm::wasm::F64, llvm::wasm::FUNCREF, llvm::wasm::I32, llvm::wasm::I64, LLVM_DEBUG, llvm_unreachable, and llvm::SmallVectorTemplateCommon< T, typename >::size().
Definition at line 581 of file WebAssemblyISelDAGToDAG.cpp.
References llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::BITCAST, llvm::dyn_cast(), N, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
|
static |
Definition at line 119 of file WebAssemblyISelDAGToDAG.cpp.
References assert(), llvm::WebAssembly::C_LONGJMP, llvm::WebAssembly::CPP_EXCEPTION, llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getTargetExternalSymbol(), and llvm::SelectionDAG::getTargetLoweringInfo().
|
static |
Definition at line 184 of file WebAssemblyISelDAGToDAG.cpp.
References llvm::Acquire, llvm::AcquireRelease, llvm_unreachable, llvm::Monotonic, llvm::Release, llvm::SequentiallyConsistent, llvm::Unordered, llvm::wasm::WASM_MEM_ORDER_ACQ_REL, and llvm::wasm::WASM_MEM_ORDER_SEQ_CST.
| INITIALIZE_PASS | ( | WebAssemblyDAGToDAGISelLegacy | , |
| DEBUG_TYPE | , | ||
| PASS_NAME | , | ||
| false | , | ||
| false | ) |
Definition at line 104 of file WebAssemblyISelDAGToDAG.cpp.
References DEBUG_TYPE, llvm::WebAssemblyFrameLowering::getLocalForStackObject(), PASS_NAME, and llvm::SelectionDAGISel::PreprocessISelDAG().