LLVM API Documentation
#include "SparcISelLowering.h"#include "SparcTargetMachine.h"#include "llvm/Function.h"#include "llvm/CodeGen/CallingConvLower.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/SelectionDAG.h"#include "llvm/ADT/VectorExtras.h"#include "SparcGenCallingConv.inc"
Go to the source code of this file.
Functions | |
| static SDValue | LowerRET (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerCALL (SDValue Op, SelectionDAG &DAG) |
| static SPCC::CondCodes | IntCondCCodeToICC (ISD::CondCode CC) |
| static SPCC::CondCodes | FPCondCCodeToFCC (ISD::CondCode CC) |
| static void | LookThroughSetCC (SDValue &LHS, SDValue &RHS, ISD::CondCode CC, unsigned &SPCC) |
| static SDValue | LowerGLOBALADDRESS (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerCONSTANTPOOL (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerFP_TO_SINT (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerSINT_TO_FP (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerBR_CC (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerSELECT_CC (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerVASTART (SDValue Op, SelectionDAG &DAG, SparcTargetLowering &TLI) |
| static SDValue | LowerVAARG (SDValue Op, SelectionDAG &DAG) |
| static SDValue | LowerDYNAMIC_STACKALLOC (SDValue Op, SelectionDAG &DAG) |
| static SPCC::CondCodes FPCondCCodeToFCC | ( | ISD::CondCode | CC | ) | [static] |
FPCondCCodeToFCC - Convert a DAG floatingp oint condition code to a SPARC FCC condition.
Definition at line 509 of file SparcISelLowering.cpp.
References llvm::SPCC::FCC_E, llvm::SPCC::FCC_G, llvm::SPCC::FCC_GE, llvm::SPCC::FCC_L, llvm::SPCC::FCC_LE, llvm::SPCC::FCC_LG, llvm::SPCC::FCC_NE, llvm::SPCC::FCC_O, llvm::SPCC::FCC_U, llvm::SPCC::FCC_UE, llvm::SPCC::FCC_UG, llvm::SPCC::FCC_UGE, llvm::SPCC::FCC_UL, llvm::SPCC::FCC_ULE, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, and llvm::ISD::SETUO.
| static SPCC::CondCodes IntCondCCodeToICC | ( | ISD::CondCode | CC | ) | [static] |
IntCondCCodeToICC - Convert a DAG integer condition code to a SPARC ICC condition.
Definition at line 491 of file SparcISelLowering.cpp.
References llvm::SPCC::ICC_CC, llvm::SPCC::ICC_CS, llvm::SPCC::ICC_E, llvm::SPCC::ICC_G, llvm::SPCC::ICC_GE, llvm::SPCC::ICC_GU, llvm::SPCC::ICC_L, llvm::SPCC::ICC_LE, llvm::SPCC::ICC_LEU, llvm::SPCC::ICC_NE, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
Referenced by LowerBR_CC(), and LowerSELECT_CC().
| static void LookThroughSetCC | ( | SDValue & | LHS, | |
| SDValue & | RHS, | |||
| ISD::CondCode | CC, | |||
| unsigned & | SPCC | |||
| ) | [static] |
Definition at line 711 of file SparcISelLowering.cpp.
References llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SPISD::SELECT_FCC, llvm::SPISD::SELECT_ICC, and llvm::ISD::SETNE.
| static SDValue LowerBR_CC | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 762 of file SparcISelLowering.cpp.
References llvm::SPISD::BRFCC, llvm::SPISD::BRICC, llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, Dest, llvm::MVT::Flag, FPCondCCodeToFCC(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), llvm::MVT::i32, IntCondCCodeToICC(), LHS, LookThroughSetCC(), llvm::MVT::Other, and RHS.
| static SDValue LowerCALL | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 228 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::CCValAssign::AExt, llvm::ISD::ANY_EXTEND, Arg, llvm::ISD::BIT_CONVERT, llvm::SPISD::CALL, llvm::SelectionDAG::CreateStackTemporary(), E, llvm::SmallVectorImpl< T >::empty(), llvm::ISD::EXTRACT_ELEMENT, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::Flag, llvm::CCValAssign::Full, G, llvm::CallSDNode::getArg(), llvm::CallSDNode::getCallee(), llvm::CallSDNode::getCallingConv(), llvm::SelectionDAG::getCALLSEQ_END(), llvm::SelectionDAG::getCALLSEQ_START(), llvm::CallSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm::SDValue::getNode(), llvm::CallSDNode::getNumArgs(), llvm::SelectionDAG::getRegister(), llvm::MVT::getSimpleVT(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTarget(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), llvm::SDNode::getVTList(), llvm::SPISD::Hi, llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::CCValAssign::isMemLoc(), llvm::CCValAssign::isRegLoc(), llvm::CallSDNode::isVarArg(), llvm::SPISD::Lo, llvm::ISD::MERGE_VALUES, llvm::MVT::Other, llvm::SmallVectorImpl< T >::push_back(), Reg, second, llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::SmallVectorImpl< T >::size(), llvm::SPII::Store, llvm::ISD::TokenFactor, Val, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.
| static SDValue LowerCONSTANTPOOL | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 739 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::CallingConv::C, CP, llvm::ConstantPoolSDNode::getAlignment(), llvm::ConstantPoolSDNode::getConstVal(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstantPool(), llvm::SPISD::Hi, llvm::MVT::i32, and llvm::SPISD::Lo.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerDYNAMIC_STACKALLOC | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 865 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getMergeValues(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValue(), llvm::MVT::i32, and llvm::ISD::SUB.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerFP_TO_SINT | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 748 of file SparcISelLowering.cpp.
References llvm::ISD::BIT_CONVERT, llvm::MVT::f32, llvm::SPISD::FTOI, llvm::SelectionDAG::getNode(), llvm::SDValue::getValueType(), and llvm::MVT::i32.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerGLOBALADDRESS | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 731 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetGlobalAddress(), GV, llvm::SPISD::Hi, llvm::MVT::i32, and llvm::SPISD::Lo.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerRET | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 34 of file SparcISelLowering.cpp.
References llvm::MachineRegisterInfo::addLiveOut(), llvm::Function::getCallingConv(), llvm::SelectionDAG::getCopyToReg(), llvm::MachineFunction::getFunction(), llvm::CCValAssign::getLocReg(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SDValue::getNode(), llvm::SDValue::getOperand(), llvm::MachineFunction::getRegInfo(), llvm::SelectionDAG::getTarget(), llvm::SDValue::getValue(), llvm::CCValAssign::isRegLoc(), llvm::Function::isVarArg(), llvm::MachineRegisterInfo::liveout_empty(), llvm::X86ISD::RET_FLAG, and llvm::SmallVectorImpl< T >::size().
| static SDValue LowerSELECT_CC | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 793 of file SparcISelLowering.cpp.
References llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::MVT::Flag, FPCondCCodeToFCC(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), llvm::MVT::i32, IntCondCCodeToICC(), LHS, LookThroughSetCC(), RHS, llvm::SPISD::SELECT_FCC, and llvm::SPISD::SELECT_ICC.
| static SDValue LowerSINT_TO_FP | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 755 of file SparcISelLowering.cpp.
References llvm::ISD::BIT_CONVERT, llvm::MVT::f32, llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::i32, and llvm::SPISD::ITOF.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerVAARG | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [static] |
Definition at line 835 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::ISD::BIT_CONVERT, llvm::MVT::f64, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMergeValues(), llvm::SelectionDAG::getNode(), llvm::SDValue::getNode(), llvm::SDNode::getOperand(), llvm::MVT::getSizeInBits(), llvm::SelectionDAG::getStore(), llvm::SDValue::getValue(), llvm::SDNode::getValueType(), llvm::MVT::i32, llvm::MVT::i64, NextPtr, Node, V, and VT.
Referenced by llvm::SparcTargetLowering::LowerOperation().
| static SDValue LowerVASTART | ( | SDValue | Op, | |
| SelectionDAG & | DAG, | |||
| SparcTargetLowering & | TLI | |||
| ) | [static] |
Definition at line 823 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SelectionDAG::getRegister(), llvm::SelectionDAG::getStore(), llvm::SparcTargetLowering::getVarArgsFrameOffset(), llvm::MVT::i32, and Offset.