1//===-- PPCMachineFunctionInfo.cpp - Private data used for PowerPC --------===// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7//===----------------------------------------------------------------------===// 18"ppc-disable-non-volatile-cr",
19cl::desc(
"Disable the use of non-volatile CR register fields"),
22void PPCFunctionInfo::anchor() {}
63for (
const std::pair<Register, ISD::ArgFlagsTy> &LiveIn : LiveInAttrs)
64if (LiveIn.first == VReg)
65return LiveIn.second.isSExt();
70for (
const std::pair<Register, ISD::ArgFlagsTy> &LiveIn : LiveInAttrs)
71if (LiveIn.first == VReg)
72return LiveIn.second.isZExt();
106for (
constauto &Elt : ParamtersType) {
136// There are only 32bits in the VectExtParamInfo. 140return Bits < 32 ? VectExtParamInfo << (32 - Bits) : VectExtParamInfo;
148for (
constauto &Elt : ParamtersType) {
156//'00' ==> fixed parameter if HasVectorParms is true. 162//'0' ==> fixed parameter if HasVectorParms is false. 163 ParamsTypeInfo <<= 1;
168// '10'b => floating point short parameter. 175// '11'b => floating point long parameter. 185// '01' ==> vector parameter 194return Bits < 32 ? ParamsTypeInfo << (32 - Bits) : ParamsTypeInfo;
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
static cl::opt< bool > PPCDisableNonVolatileCR("ppc-disable-non-volatile-cr", cl::desc("Disable the use of non-volatile CR register fields"), cl::init(false), cl::Hidden)
Allocate memory in an ever growing pool, as if by bump-pointer.
A parsed version of the target data layout string in and methods for querying it.
MCSymbol * getOrCreateSymbol(const Twine &Name)
Lookup the symbol inside with the specified Name.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
unsigned getFunctionNumber() const
getFunctionNumber - Return a unique ID for the current function.
MCContext & getContext() const
const DataLayout & getDataLayout() const
Return the DataLayout attached to the Module associated to this MF.
Ty * cloneInfo(const Ty &Old)
PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific informat...
uint32_t getParmsType() const
MCSymbol * getPICOffsetSymbol(MachineFunction &MF) const
bool isLiveInSExt(Register VReg) const
This function returns true if the specified vreg is a live-in register and sign-extended.
MCSymbol * getGlobalEPSymbol(MachineFunction &MF) const
MCSymbol * getLocalEPSymbol(MachineFunction &MF) const
bool isLiveInZExt(Register VReg) const
This function returns true if the specified vreg is a live-in register and zero-extended.
PPCFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
void appendParameterType(ParamType Type)
bool hasVectorParms() const
uint32_t getVecExtParmsType() const
MCSymbol * getTOCOffsetSymbol(MachineFunction &MF) const
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Wrapper class representing virtual and physical registers.
void push_back(const T &Elt)
TargetSubtargetInfo - Generic base class for all target subtargets.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
The instances of the Type class are immutable: once they are created, they are never changed.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
initializer< Ty > init(const Ty &Val)
This is an optimization pass for GlobalISel generic memory operations.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
static constexpr uint8_t WidthOfParamType
static constexpr uint32_t ParmTypeIsVectorShortBit
static constexpr uint32_t ParmTypeIsDoubleBits
static constexpr uint32_t ParmTypeIsVectorIntBit
static constexpr uint32_t ParmTypeIsFixedBits
static constexpr uint32_t ParmTypeIsVectorBits
static constexpr uint32_t ParmTypeIsVectorCharBit
static constexpr uint32_t ParmTypeIsVectorFloatBit
static constexpr uint32_t ParmTypeIsFloatingBits