LLVM 20.0.0git
Macros | Functions | Variables
WebAssemblyTargetMachine.cpp File Reference

This file defines the WebAssembly-specific subclass of TargetMachine. More...

#include "WebAssemblyTargetMachine.h"
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "TargetInfo/WebAssemblyTargetInfo.h"
#include "WebAssembly.h"
#include "WebAssemblyISelLowering.h"
#include "WebAssemblyMachineFunctionInfo.h"
#include "WebAssemblyTargetObjectFile.h"
#include "WebAssemblyTargetTransformInfo.h"
#include "WebAssemblyUtilities.h"
#include "llvm/CodeGen/MIRParser/MIParser.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Function.h"
#include "llvm/InitializePasses.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Scalar/LowerAtomicPass.h"
#include "llvm/Transforms/Utils.h"
#include <optional>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "wasm"
 

Functions

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeWebAssemblyTarget ()
 
static Reloc::Model getEffectiveRelocModel (std::optional< Reloc::Model > RM, const Triple &TT)
 
static void basicCheckForEHAndSjLj (TargetMachine *TM)
 

Variables

static cl::opt< boolWasmDisableExplicitLocals ("wasm-disable-explicit-locals", cl::Hidden, cl::desc("WebAssembly: output implicit locals in" " instruction output for test purposes only."), cl::init(false))
 
static cl::opt< boolWasmDisableFixIrreducibleControlFlowPass ("wasm-disable-fix-irreducible-control-flow-pass", cl::Hidden, cl::desc("webassembly: disables the fix " " irreducible control flow optimization pass"), cl::init(false))
 

Detailed Description

This file defines the WebAssembly-specific subclass of TargetMachine.

Definition in file WebAssemblyTargetMachine.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "wasm"

Definition at line 38 of file WebAssemblyTargetMachine.cpp.

Function Documentation

◆ basicCheckForEHAndSjLj()

static void basicCheckForEHAndSjLj ( TargetMachine TM)
static

Definition at line 406 of file WebAssemblyTargetMachine.cpp.

References llvm::None, llvm::report_fatal_error(), and llvm::Wasm.

◆ getEffectiveRelocModel()

static Reloc::Model getEffectiveRelocModel ( std::optional< Reloc::Model RM,
const Triple TT 
)
static

Definition at line 99 of file WebAssemblyTargetMachine.cpp.

References llvm::Reloc::Static.

◆ LLVMInitializeWebAssemblyTarget()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeWebAssemblyTarget ( )

Definition at line 56 of file WebAssemblyTargetMachine.cpp.

References llvm::PassRegistry::getPassRegistry(), llvm::getTheWebAssemblyTarget32(), llvm::getTheWebAssemblyTarget64(), llvm::initializeFixFunctionBitcastsPass(), llvm::initializeLowerGlobalDtorsLegacyPassPass(), llvm::initializeOptimizeReturnedPass(), llvm::initializeWebAssemblyAddMissingPrototypesPass(), llvm::initializeWebAssemblyArgumentMovePass(), llvm::initializeWebAssemblyCFGSortPass(), llvm::initializeWebAssemblyCFGStackifyPass(), llvm::initializeWebAssemblyDAGToDAGISelLegacyPass(), llvm::initializeWebAssemblyDebugFixupPass(), llvm::initializeWebAssemblyExceptionInfoPass(), llvm::initializeWebAssemblyExplicitLocalsPass(), llvm::initializeWebAssemblyFixBrTableDefaultsPass(), llvm::initializeWebAssemblyFixIrreducibleControlFlowPass(), llvm::initializeWebAssemblyLateEHPreparePass(), llvm::initializeWebAssemblyLowerBrUnlessPass(), llvm::initializeWebAssemblyLowerEmscriptenEHSjLjPass(), llvm::initializeWebAssemblyLowerRefTypesIntPtrConvPass(), llvm::initializeWebAssemblyMCLowerPrePassPass(), llvm::initializeWebAssemblyMemIntrinsicResultsPass(), llvm::initializeWebAssemblyNullifyDebugValueListsPass(), llvm::initializeWebAssemblyOptimizeLiveIntervalsPass(), llvm::initializeWebAssemblyPeepholePass(), llvm::initializeWebAssemblyRefTypeMem2LocalPass(), llvm::initializeWebAssemblyRegColoringPass(), llvm::initializeWebAssemblyRegNumberingPass(), llvm::initializeWebAssemblyRegStackifyPass(), llvm::initializeWebAssemblyReplacePhysRegsPass(), llvm::initializeWebAssemblySetP2AlignOperandsPass(), X, and Y.

Variable Documentation

◆ WasmDisableExplicitLocals

cl::opt< bool > WasmDisableExplicitLocals("wasm-disable-explicit-locals", cl::Hidden, cl::desc("WebAssembly: output implicit locals in" " instruction output for test purposes only."), cl::init(false)) ( "wasm-disable-explicit-locals"  ,
cl::Hidden  ,
cl::desc("WebAssembly: output implicit locals in" " instruction output for test purposes only.")  ,
cl::init(false)   
)
static

◆ WasmDisableFixIrreducibleControlFlowPass

cl::opt< bool > WasmDisableFixIrreducibleControlFlowPass("wasm-disable-fix-irreducible-control-flow-pass", cl::Hidden, cl::desc("webassembly: disables the fix " " irreducible control flow optimization pass"), cl::init(false)) ( "wasm-disable-fix-irreducible-control-flow-pass"  ,
cl::Hidden  ,
cl::desc("webassembly: disables the fix " " irreducible control flow optimization pass")  ,
cl::init(false)   
)
static