LLVM API Documentation
#include "SystemZISelLowering.h"
#include "SystemZCallingConv.h"
#include "SystemZConstantPoolValue.h"
#include "SystemZMachineFunctionInfo.h"
#include "SystemZTargetMachine.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include <cctype>
#include "SystemZGenCallingConv.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "systemz-lower" |
#define | CONV(X) |
#define | OPCODE(NAME) case SystemZISD::NAME: return "SystemZISD::" #NAME |
#define CONV | ( | X | ) |
Referenced by CCMaskForCondCode().
#define DEBUG_TYPE "systemz-lower" |
Definition at line 14 of file SystemZISelLowering.cpp.
#define OPCODE | ( | NAME | ) | case SystemZISD::NAME: return "SystemZISD::" #NAME |
Referenced by llvm::SystemZTargetLowering::getTargetNodeName().
|
static |
Definition at line 1348 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::SystemZICMP::Any, llvm::SystemZ::CCMASK_TM, llvm::SystemZ::CCMASK_TM_MIXED_MSB_0, llvm::SystemZ::CCMASK_TM_MIXED_MSB_1, llvm::dyn_cast(), llvm::SelectionDAG::getConstant(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::EVT::getSizeInBits(), getTestUnderMaskCond(), llvm::SDValue::getValueType(), llvm::ConstantSDNode::getZExtValue(), isSimpleShift(), llvm::ISD::SHL, llvm::SystemZICMP::SignedOnly, llvm::ISD::SRL, llvm::SystemZISD::TM, and llvm::SystemZICMP::UnsignedOnly.
Referenced by emitCmp().
|
static |
Definition at line 1093 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LT, llvm::SystemZ::CCMASK_CMP_NE, llvm::ISD::Constant, llvm::MemSDNode::getAlignment(), llvm::LoadSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::LoadSDNode::getExtensionType(), llvm::SelectionDAG::getExtLoad(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getOpcode(), llvm::MemSDNode::getPointerInfo(), llvm::ConstantSDNode::getSExtValue(), llvm::EVT::getStoreSizeInBits(), llvm::SDValue::getValueType(), llvm::ConstantSDNode::getZExtValue(), llvm::SDValue::hasOneUse(), llvm::MVT::i32, llvm::MemSDNode::isNonTemporal(), llvm::MemSDNode::isVolatile(), llvm::SPII::Load, llvm::ISD::LOAD, llvm::ISD::SEXTLOAD, and llvm::ISD::ZEXTLOAD.
Referenced by emitCmp().
|
static |
Definition at line 1071 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_LT, llvm::dyn_cast(), llvm::SelectionDAG::getConstant(), llvm::SDValue::getNode(), llvm::ConstantSDNode::getSExtValue(), and llvm::SDValue::getValueType().
Referenced by emitCmp().
|
static |
Definition at line 753 of file SystemZISelLowering.cpp.
References llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocReg(), I, llvm::CCValAssign::Indirect, llvm::CCValAssign::isRegLoc(), and llvm::SmallVectorTemplateCommon< T >::size().
Referenced by llvm::SystemZTargetLowering::LowerCall().
|
static |
Definition at line 978 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_CMP_O, llvm::SystemZ::CCMASK_CMP_UO, CONV, EQ, llvm::A64CC::GE, llvm::A64CC::GT, llvm::A64CC::LE, llvm_unreachable, llvm::A64CC::LT, llvm::A64CC::NE, llvm::ISD::SETO, and llvm::ISD::SETUO.
Referenced by emitCmp().
|
static |
Definition at line 594 of file SystemZISelLowering.cpp.
References llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::CCValAssign::Full, llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getValueType(), llvm::CCValAssign::getValVT(), llvm::CCValAssign::Indirect, llvm::CCValAssign::isExtInLoc(), llvm::CCValAssign::SExt, llvm::ISD::TRUNCATE, and llvm::CCValAssign::ZExt.
Referenced by llvm::SystemZTargetLowering::LowerCall(), and llvm::SystemZTargetLowering::LowerFormalArguments().
|
static |
Definition at line 619 of file SystemZISelLowering.cpp.
References llvm::CCValAssign::AExt, llvm::ISD::ANY_EXTEND, llvm::CCValAssign::Full, llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm_unreachable, llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.
Referenced by llvm::SystemZTargetLowering::LowerCall(), and llvm::SystemZTargetLowering::LowerReturn().
|
static |
Definition at line 57 of file SystemZISelLowering.cpp.
References llvm::MachineOperand::isReg(), and llvm::MachineOperand::setIsKill().
|
static |
Definition at line 2236 of file SystemZISelLowering.cpp.
References llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineBasicBlock::getBasicBlock(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::insert(), and llvm::next().
Referenced by splitBlockAfter(), and splitBlockBefore().
|
static |
Definition at line 1410 of file SystemZISelLowering.cpp.
References adjustForTestUnderMask(), adjustSubwordCmp(), adjustZeroCmp(), llvm::SystemZICMP::Any, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LT, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_CMP_UO, llvm::SystemZ::CCMASK_FCMP, llvm::SystemZ::CCMASK_ICMP, CCMaskForCondCode(), llvm::SystemZISD::FCMP, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getValueType(), llvm::MVT::Glue, llvm::MVT::i32, llvm::SystemZISD::ICMP, llvm::EVT::isFloatingPoint(), shouldSwapCmpOperands(), llvm::SelectionDAG::SignBitIsZero(), llvm::SystemZICMP::SignedOnly, std::swap(), llvm::SystemZISD::TM, and llvm::SystemZICMP::UnsignedOnly.
|
static |
Definition at line 2265 of file SystemZISelLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::isReg(), and MRI.
Definition at line 1004 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_0, llvm::SystemZ::CCMASK_1, llvm::SystemZ::CCMASK_2, llvm::SystemZ::CCMASK_3, llvm::SystemZ::IPM_CC, and llvm_unreachable.
|
static |
Definition at line 1254 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_ANY, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_LT, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_TM_ALL_0, llvm::SystemZ::CCMASK_TM_ALL_1, llvm::SystemZ::CCMASK_TM_MIXED_MSB_0, llvm::SystemZ::CCMASK_TM_MIXED_MSB_1, llvm::SystemZ::CCMASK_TM_MSB_0, llvm::SystemZ::CCMASK_TM_MSB_1, llvm::SystemZ::CCMASK_TM_SOME_0, llvm::SystemZ::CCMASK_TM_SOME_1, llvm::countLeadingZeros(), llvm::countTrailingZeros(), llvm::SystemZ::isImmHH(), llvm::SystemZ::isImmHL(), llvm::SystemZ::isImmLH(), llvm::SystemZ::isImmLL(), and llvm::SystemZICMP::SignedOnly.
Referenced by adjustForTestUnderMask().
Definition at line 44 of file SystemZISelLowering.cpp.
References llvm::EVT::getSimpleVT(), llvm::MVT::i32, llvm::MVT::i64, llvm_unreachable, and llvm::MVT::SimpleTy.
Referenced by lowerGR128Binary().
Definition at line 1169 of file SystemZISelLowering.cpp.
References llvm::dyn_cast(), llvm::LoadSDNode::getExtensionType(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::MVT::i8, llvm::SPII::Load, llvm::ISD::NON_EXTLOAD, llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by shouldSwapCmpOperands().
Definition at line 1235 of file SystemZISelLowering.cpp.
References llvm::dyn_cast(), llvm::SDValue::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueType(), and llvm::ConstantSDNode::getZExtValue().
Referenced by adjustForTestUnderMask().
|
static |
Definition at line 1477 of file SystemZISelLowering.cpp.
References llvm::SystemZ::even128(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), is32Bit(), llvm::SystemZ::odd128(), and llvm::MVT::Untyped.
|
static |
Definition at line 1461 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::MVT::i32, llvm::MVT::i64, llvm::ISD::MUL, llvm::ISD::SRL, and llvm::ISD::TRUNCATE.
|
static |
Definition at line 455 of file SystemZISelLowering.cpp.
References llvm::LibFunc::atoi, and llvm::LibFunc::isdigit.
Referenced by llvm::SystemZTargetLowering::getRegForInlineAsmConstraint().
Definition at line 1192 of file SystemZISelLowering.cpp.
References llvm::dyn_cast(), llvm::MVT::f128, llvm::ConstantSDNode::getSExtValue(), llvm::SDValue::getValueType(), llvm::ConstantSDNode::getZExtValue(), llvm::SDValue::hasOneUse(), llvm::isInt< 16 >(), isNaturalMemoryOperand(), llvm::isUInt< 16 >(), llvm::SystemZICMP::SignedOnly, and llvm::SystemZICMP::UnsignedOnly.
Referenced by emitCmp().
|
static |
Definition at line 2245 of file SystemZISelLowering.cpp.
References llvm::MachineBasicBlock::begin(), emitBlockAfter(), llvm::MachineBasicBlock::end(), llvm::next(), llvm::MachineBasicBlock::splice(), and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().
|
static |
Definition at line 2256 of file SystemZISelLowering.cpp.
References llvm::MachineBasicBlock::begin(), emitBlockAfter(), llvm::MachineBasicBlock::end(), llvm::A64CC::MI, llvm::MachineBasicBlock::splice(), and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().