LLVM 17.0.0git
|
This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction. More...
#include "Target/WebAssembly/WebAssemblyMachineFunctionInfo.h"
Static Public Member Functions | |
static unsigned | getWARegStackId (unsigned Reg) |
![]() | |
template<typename FuncInfoTy , typename SubtargetTy = TargetSubtargetInfo> | |
static FuncInfoTy * | create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI) |
Factory function: default behavior is to call new using the supplied allocator. | |
template<typename Ty > | |
static Ty * | create (BumpPtrAllocator &Allocator, const Ty &MFI) |
Static Public Attributes | |
static const unsigned | UnusedReg = -1u |
This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction.
Definition at line 33 of file WebAssemblyMachineFunctionInfo.h.
|
inlineexplicit |
Definition at line 68 of file WebAssemblyMachineFunctionInfo.h.
|
overridedefault |
|
inline |
Definition at line 93 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 80 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 83 of file WebAssemblyMachineFunctionInfo.h.
References Results.
|
inline |
Definition at line 111 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 86 of file WebAssemblyMachineFunctionInfo.h.
References Results.
|
overridevirtual |
Make a functionally equivalent copy of this MachineFunctionInfo in MF
.
This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.
Reimplemented from llvm::MachineFunctionInfo.
Definition at line 27 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 102 of file WebAssemblyMachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 115 of file WebAssemblyMachineFunctionInfo.h.
References assert().
Referenced by llvm::WebAssemblyFrameLowering::getDwarfFrameBase().
|
inline |
Definition at line 107 of file WebAssemblyMachineFunctionInfo.h.
References assert().
Referenced by checkFrameBase(), and llvm::WebAssemblyRegisterInfo::getFrameRegister().
Definition at line 94 of file WebAssemblyMachineFunctionInfo.h.
Referenced by llvm::WebAssemblyAsmPrinter::emitFunctionBodyStart().
Definition at line 81 of file WebAssemblyMachineFunctionInfo.h.
Referenced by llvm::yaml::WebAssemblyFunctionInfo::WebAssemblyFunctionInfo().
Definition at line 84 of file WebAssemblyMachineFunctionInfo.h.
References Results.
Referenced by llvm::yaml::WebAssemblyFunctionInfo::WebAssemblyFunctionInfo().
|
inline |
Definition at line 96 of file WebAssemblyMachineFunctionInfo.h.
References assert().
Definition at line 149 of file WebAssemblyMachineFunctionInfo.h.
References assert(), I, and llvm::Register::virtReg2Index().
Referenced by llvm::WebAssemblyMCInstLower::lower(), and llvm::WebAssemblyAsmPrinter::regToString().
Definition at line 156 of file WebAssemblyMachineFunctionInfo.h.
Referenced by llvm::WebAssemblyInstPrinter::printOperand().
void WebAssemblyFunctionInfo::initializeBaseYamlFields | ( | MachineFunction & | MF, |
const yaml::WebAssemblyFunctionInfo & | YamlMFI | ||
) |
Definition at line 154 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::yaml::WebAssemblyFunctionInfo::CFGStackified, llvm::MachineFunction::getBlockNumbered(), llvm::MachineFunction::getWasmEHFuncInfo(), llvm::yaml::WebAssemblyFunctionInfo::Params, llvm::WebAssembly::parseMVT(), llvm::yaml::WebAssemblyFunctionInfo::Results, and llvm::yaml::WebAssemblyFunctionInfo::SrcToUnwindDest.
void WebAssemblyFunctionInfo::initWARegs | ( | MachineRegisterInfo & | MRI | ) |
Definition at line 36 of file WebAssemblyMachineFunctionInfo.cpp.
|
inline |
Definition at line 161 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 113 of file WebAssemblyMachineFunctionInfo.h.
Referenced by checkFrameBase(), and llvm::WebAssemblyFrameLowering::getDwarfFrameBase().
Definition at line 135 of file WebAssemblyMachineFunctionInfo.h.
References I, llvm::BitVector::size(), llvm::BitVector::test(), and llvm::Register::virtReg2Index().
Referenced by llvm::WebAssemblyInstrInfo::commuteInstructionImpl(), findStartOfTree(), llvm::WebAssembly::isChild(), maybeRewriteToFallthrough(), oneUseDominatesOtherUses(), and llvm::WebAssemblyAsmPrinter::regToString().
|
inline |
Definition at line 119 of file WebAssemblyMachineFunctionInfo.h.
References Reg.
Definition at line 162 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 114 of file WebAssemblyMachineFunctionInfo.h.
Referenced by checkFrameBase().
|
inline |
Definition at line 106 of file WebAssemblyMachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 92 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 91 of file WebAssemblyMachineFunctionInfo.h.
|
inline |
Definition at line 100 of file WebAssemblyMachineFunctionInfo.h.
References Reg.
Definition at line 143 of file WebAssemblyMachineFunctionInfo.h.
References assert(), I, UnusedReg, and llvm::Register::virtReg2Index().
|
inline |
Definition at line 123 of file WebAssemblyMachineFunctionInfo.h.
References assert(), I, MRI, llvm::BitVector::resize(), llvm::BitVector::set(), llvm::BitVector::size(), and llvm::Register::virtReg2Index().
Referenced by maybeRewriteToDrop(), maybeRewriteToFallthrough(), moveAndTeeForMultiUse(), moveForSingleUse(), and rematerializeCheapDef().
|
inline |
Definition at line 130 of file WebAssemblyMachineFunctionInfo.h.
References I, llvm::BitVector::reset(), llvm::BitVector::size(), and llvm::Register::virtReg2Index().
Definition at line 121 of file WebAssemblyMachineFunctionInfo.h.
Referenced by initWARegs(), llvm::WebAssemblyInstPrinter::printOperand(), llvm::WebAssemblyInstPrinter::printRegName(), llvm::WebAssemblyAsmPrinter::regToString(), and setWAReg().