16 #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMACHINEFUNCTIONINFO_H
17 #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMACHINEFUNCTIONINFO_H
29 std::vector<MVT> Params;
30 std::vector<MVT> Results;
31 std::vector<MVT> Locals;
34 std::vector<unsigned> WARegs;
47 unsigned VarargVreg = -1U;
51 unsigned BasePtrVreg = -1U;
58 const std::vector<MVT> &
getParams()
const {
return Params; }
61 const std::vector<MVT> &
getResults()
const {
return Results; }
64 const std::vector<MVT> &
getLocals()
const {
return Locals; }
67 assert(VarargVreg != -1U &&
"Vararg vreg hasn't been set");
73 assert(BasePtrVreg != -1U &&
"Base ptr vreg hasn't been set");
106 return Reg & INT32_MAX;
111 Type *Ty, SmallVectorImpl<MVT> &ValueVTs);
114 SmallVectorImpl<MVT> &Params,
115 SmallVectorImpl<MVT> &
Results);
void resize(unsigned N, bool t=false)
resize - Grow or shrink the bitvector.
size_type size() const
size - Returns the number of bits in this bitvector.
static unsigned virtReg2Index(unsigned Reg)
Convert a virtual register number to a 0-based index.
Function Alias Analysis Results
void setWAReg(unsigned VReg, unsigned WAReg)
bool isVRegStackified(unsigned VReg) const
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
void ComputeLegalValueVTs(const Function &F, const TargetMachine &TM, Type *Ty, SmallVectorImpl< MVT > &ValueVTs)
Reg
All possible values of the reg field in the ModR/M byte.
unsigned getWAReg(unsigned Reg) const
void setBasePointerVreg(unsigned Reg)
MVT - Machine Value Type.
void ComputeSignatureVTs(const Function &F, const TargetMachine &TM, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results)
This file provides WebAssembly-specific target descriptions.
const std::vector< MVT > & getResults() const
WebAssemblyFunctionInfo(MachineFunction &MF)
void setVarargBufferVreg(unsigned Reg)
void stackifyVReg(unsigned VReg)
static const unsigned UnusedReg
bool test(unsigned Idx) const
unsigned getBasePointerVreg() const
MachineInstr * getUniqueVRegDef(unsigned Reg) const
getUniqueVRegDef - Return the unique machine instr that defines the specified virtual register or nul...
~WebAssemblyFunctionInfo() override
const std::vector< MVT > & getParams() const
This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information ...
MachineRegisterInfo & getRegInfo()
getRegInfo - Return information about the registers currently in use.
const std::vector< MVT > & getLocals() const
unsigned getVarargBufferVreg() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static unsigned getWARegStackId(unsigned Reg)