LLVM API Documentation
#include <HexagonCallingConvLower.h>
CCState - This class holds information needed while lowering arguments and return values. It captures which registers are already assigned and which stack slots are used. It provides accessors to allocate these values.
Definition at line 47 of file HexagonCallingConvLower.h.
| Hexagon_CCState::Hexagon_CCState | ( | CallingConv::ID | CC, |
| bool | isVarArg, | ||
| const TargetMachine & | TM, | ||
| SmallVector< CCValAssign, 16 > & | locs, | ||
| LLVMContext & | c | ||
| ) |
Definition at line 26 of file HexagonCallingConvLower.cpp.
References llvm::MCRegisterInfo::getNumRegs(), and llvm::SmallVectorImpl< T >::resize().
| void llvm::Hexagon_CCState::addLoc | ( | const CCValAssign & | V | ) | [inline] |
Definition at line 61 of file HexagonCallingConvLower.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by AnalyzeReturn(), and HandleByVal().
AllocateReg - Attempt to allocate one register. If it is not available, return zero. Otherwise, return the register, marking it and any aliases as allocated.
Definition at line 121 of file HexagonCallingConvLower.h.
References isAllocated().
Version of AllocateReg with extra register to be shadowed.
Definition at line 128 of file HexagonCallingConvLower.h.
References isAllocated().
AllocateReg - Attempt to allocate one of the specified registers. If none are available, return zero. Otherwise, return the first one available, marking it and any aliases as allocated.
Definition at line 138 of file HexagonCallingConvLower.h.
References getFirstUnallocated().
| unsigned llvm::Hexagon_CCState::AllocateReg | ( | const unsigned * | Regs, |
| const unsigned * | ShadowRegs, | ||
| unsigned | NumRegs | ||
| ) | [inline] |
Version of AllocateReg with list of registers to be shadowed.
Definition at line 150 of file HexagonCallingConvLower.h.
References getFirstUnallocated().
AllocateStack - Allocate a chunk of stack space with the specified size and alignment.
Definition at line 165 of file HexagonCallingConvLower.h.
Referenced by HandleByVal().
| void Hexagon_CCState::AnalyzeCallOperands | ( | const SmallVectorImpl< ISD::OutputArg > & | Outs, |
| Hexagon_CCAssignFn | Fn, | ||
| int | NonVarArgsParams, | ||
| unsigned | SretValueSize | ||
| ) |
AnalyzeCallOperands - Analyze an ISD::CALL node, incorporating info about the passed values into this state.
Definition at line 131 of file HexagonCallingConvLower.cpp.
References llvm::dbgs(), llvm::CCValAssign::Full, llvm::EVT::getEVTString(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
| void Hexagon_CCState::AnalyzeCallOperands | ( | SmallVectorImpl< EVT > & | ArgVTs, |
| SmallVectorImpl< ISD::ArgFlagsTy > & | Flags, | ||
| Hexagon_CCAssignFn | Fn | ||
| ) |
AnalyzeCallOperands - Same as above except it takes vectors of types and argument flags.
Definition at line 161 of file HexagonCallingConvLower.cpp.
References llvm::dbgs(), llvm::CCValAssign::Full, llvm::EVT::getEVTString(), and llvm::SmallVectorTemplateCommon< T >::size().
| void Hexagon_CCState::AnalyzeCallResult | ( | const SmallVectorImpl< ISD::InputArg > & | Ins, |
| Hexagon_CCAssignFn | Fn, | ||
| unsigned | SretValueInRegs | ||
| ) |
AnalyzeCallResult - Analyze the return values of an ISD::CALL node, incorporating info about the passed values into this state.
Definition at line 180 of file HexagonCallingConvLower.cpp.
References llvm::dbgs(), llvm::CCValAssign::Full, llvm::EVT::getEVTString(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
| void Hexagon_CCState::AnalyzeCallResult | ( | EVT | VT, |
| Hexagon_CCAssignFn | Fn | ||
| ) |
AnalyzeCallResult - Same as above except it's specialized for calls which produce a single value.
Definition at line 197 of file HexagonCallingConvLower.cpp.
References llvm::dbgs(), llvm::CCValAssign::Full, and llvm::EVT::getEVTString().
| void Hexagon_CCState::AnalyzeFormalArguments | ( | const SmallVectorImpl< ISD::InputArg > & | Ins, |
| Hexagon_CCAssignFn | Fn, | ||
| unsigned | SretValueInRegs | ||
| ) |
AnalyzeFormalArguments - Analyze an ISD::FORMAL_ARGUMENTS node, incorporating info about the formals into this state.
Definition at line 66 of file HexagonCallingConvLower.cpp.
References llvm::dbgs(), llvm::CCValAssign::Full, llvm::EVT::getEVTString(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
| void Hexagon_CCState::AnalyzeReturn | ( | const SmallVectorImpl< ISD::OutputArg > & | Outs, |
| Hexagon_CCAssignFn | Fn, | ||
| unsigned | SretValueInRegs | ||
| ) |
AnalyzeReturn - Analyze the returned values of an ISD::RET node, incorporating info about the result values into this state.
Definition at line 94 of file HexagonCallingConvLower.cpp.
References addLoc(), llvm::dbgs(), llvm::CCValAssign::Full, llvm::EVT::getEVTString(), llvm::CCValAssign::getReg(), llvm::MVT::i32, llvm::MVT::i64, and llvm::SmallVectorTemplateCommon< T, typename >::size().
| unsigned llvm::Hexagon_CCState::getCallingConv | ( | ) | const [inline] |
Definition at line 67 of file HexagonCallingConvLower.h.
| LLVMContext& llvm::Hexagon_CCState::getContext | ( | ) | const [inline] |
Definition at line 65 of file HexagonCallingConvLower.h.
| unsigned llvm::Hexagon_CCState::getFirstUnallocated | ( | const unsigned * | Regs, |
| unsigned | NumRegs | ||
| ) | const [inline] |
getFirstUnallocated - Return the first unallocated register in the set, or NumRegs if they are all allocated.
Definition at line 111 of file HexagonCallingConvLower.h.
References isAllocated().
Referenced by AllocateReg().
| unsigned llvm::Hexagon_CCState::getNextStackOffset | ( | ) | const [inline] |
Definition at line 70 of file HexagonCallingConvLower.h.
| const TargetMachine& llvm::Hexagon_CCState::getTarget | ( | ) | const [inline] |
Definition at line 66 of file HexagonCallingConvLower.h.
| void Hexagon_CCState::HandleByVal | ( | unsigned | ValNo, |
| EVT | ValVT, | ||
| EVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| int | MinSize, | ||
| int | MinAlign, | ||
| ISD::ArgFlagsTy | ArgFlags | ||
| ) |
Definition at line 41 of file HexagonCallingConvLower.cpp.
References addLoc(), Align(), AllocateStack(), llvm::ISD::ArgFlagsTy::getByValAlign(), llvm::ISD::ArgFlagsTy::getByValSize(), llvm::CCValAssign::getMem(), llvm::EVT::getSimpleVT(), and llvm::MinAlign().
isAllocated - Return true if the specified register (or an alias) is allocated.
Definition at line 74 of file HexagonCallingConvLower.h.
Referenced by AllocateReg(), and getFirstUnallocated().
| bool llvm::Hexagon_CCState::isVarArg | ( | ) | const [inline] |
Definition at line 68 of file HexagonCallingConvLower.h.