|
LLVM 23.0.0git
|
This file implements some simple delegations needed for call lowering. More...
#include "llvm/CodeGen/GlobalISel/CallLowering.h"#include "llvm/CodeGen/Analysis.h"#include "llvm/CodeGen/CallingConvLower.h"#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"#include "llvm/CodeGen/GlobalISel/Utils.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/TargetLowering.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Module.h"#include "llvm/Target/TargetMachine.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "call-lowering" |
Functions | |
| static void | addFlagsUsingAttrFn (ISD::ArgFlagsTy &Flags, const std::function< bool(Attribute::AttrKind)> &AttrFn) |
Helper function which updates Flags when AttrFn returns true. | |
| static MachineInstrBuilder | mergeVectorRegsToResultRegs (MachineIRBuilder &B, ArrayRef< Register > DstRegs, ArrayRef< Register > SrcRegs) |
Pack values SrcRegs to cover the vector type result DstRegs. | |
| static unsigned | extendOpFromFlags (llvm::ISD::ArgFlagsTy Flags) |
| static bool | isCopyCompatibleType (LLT SrcTy, LLT DstTy) |
| Check if we can use a basic COPY instruction between the two types. | |
This file implements some simple delegations needed for call lowering.
Definition in file CallLowering.cpp.
| #define DEBUG_TYPE "call-lowering" |
Definition at line 28 of file CallLowering.cpp.
|
static |
Helper function which updates Flags when AttrFn returns true.
Definition at line 36 of file CallLowering.cpp.
Referenced by llvm::CallLowering::addArgFlagsFromAttributes(), llvm::CallLowering::getAttributesForArgIdx(), and llvm::CallLowering::getAttributesForReturn().
|
static |
Definition at line 678 of file CallLowering.cpp.
Referenced by llvm::CallLowering::handleAssignments().
Check if we can use a basic COPY instruction between the two types.
We're currently building on top of the infrastructure using MVT, which loses pointer information in the CCValAssign. We accept copies from physical registers that have been reported as integers if it's to an equivalent sized pointer LLT.
Definition at line 1386 of file CallLowering.cpp.
References llvm::LLT::getScalarType(), llvm::LLT::getSizeInBits(), llvm::LLT::isPointer(), and llvm::LLT::isScalar().
Referenced by llvm::CallLowering::IncomingValueHandler::assignValueToReg().
|
static |
Pack values SrcRegs to cover the vector type result DstRegs.
Definition at line 327 of file CallLowering.cpp.
References assert(), B(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::copy(), llvm::getCoverTy(), llvm::LLT::getSizeInBits(), I, MRI, llvm::ArrayRef< T >::size(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::CallLowering::buildCopyFromRegs().