LLVM  6.0.0svn
Functions
ARMCallLowering.cpp File Reference

This file implements the lowering of LLVM calls to machine code calls for GlobalISel. More...

#include "ARMCallLowering.h"
#include "ARMBaseInstrInfo.h"
#include "ARMISelLowering.h"
#include "ARMSubtarget.h"
#include "Utils/ARMBaseInfo.h"
#include "llvm/ADT/SmallVector.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/LowLevelType.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineValueType.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/LowLevelTypeImpl.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <utility>
Include dependency graph for ARMCallLowering.cpp:

Go to the source code of this file.

Functions

static bool isSupportedType (const DataLayout &DL, const ARMTargetLowering &TLI, Type *T)
 

Detailed Description

This file implements the lowering of LLVM calls to machine code calls for GlobalISel.

Definition in file ARMCallLowering.cpp.

Function Documentation

◆ isSupportedType()

static bool isSupportedType ( const DataLayout DL,
const ARMTargetLowering TLI,
Type T 
)
static

Definition at line 56 of file ARMCallLowering.cpp.

References llvm::MachineInstrBuilder::addUse(), Arg, assert(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildGEP(), llvm::MachineIRBuilder::buildStore(), llvm::MachineIRBuilder::buildUnmerge(), llvm::ComputeValueVTs(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), llvm::SmallVectorImpl< T >::emplace_back(), F(), llvm::MVT::f64, llvm::CallLowering::ArgInfo::Flags, llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::DataLayout::getABITypeAlignment(), llvm::Function::getCallingConv(), llvm::MachineFunction::getDataLayout(), llvm::MachineFunction::getFunction(), llvm::getLLTForType(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineIRBuilder::getMF(), llvm::CCState::getNextStackOffset(), llvm::MachineFunction::getRegInfo(), llvm::EVT::getSimpleVT(), llvm::MVT::getSizeInBits(), llvm::MachinePointerInfo::getStack(), llvm::MVT::getStoreSize(), llvm::MachineFunction::getSubtarget(), llvm::Value::getType(), llvm::EVT::getTypeForEVT(), llvm::CCValAssign::getValNo(), llvm::TargetLoweringBase::getValueType(), llvm::CCValAssign::getValVT(), llvm::CallLowering::handleAssignments(), llvm::RegState::Implicit, llvm::Type::isArrayTy(), llvm::EVT::isFloatingPoint(), llvm::EVT::isInteger(), llvm::CCValAssign::isRegLoc(), llvm::EVT::isSimple(), llvm::Type::isStructTy(), llvm::Function::isVarArg(), llvm::EVT::isVector(), llvm::max(), llvm::MachineMemOperand::MOStore, MRI, llvm::CCValAssign::needsCustom(), llvm::LLT::pointer(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::CallLowering::ArgInfo::Reg, Regs, llvm::MipsISD::Ret, llvm::AttributeList::ReturnIndex, llvm::LLT::scalar(), llvm::CallLowering::setArgFlags(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, std::swap(), and T.

Referenced by llvm::ARMCallLowering::lowerCall(), and llvm::ARMCallLowering::lowerFormalArguments().