LLVM API Documentation

Functions
SparcISelLowering.cpp File Reference
#include "SparcISelLowering.h"
#include "MCTargetDesc/SparcMCExpr.h"
#include "SparcMachineFunctionInfo.h"
#include "SparcRegisterInfo.h"
#include "SparcTargetMachine.h"
#include "SparcTargetObjectFile.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/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/ErrorHandling.h"
#include "SparcGenCallingConv.inc"
Include dependency graph for SparcISelLowering.cpp:

Go to the source code of this file.

Functions

static bool CC_Sparc_Assign_SRet (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc_Assign_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc64_Full (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc64_Half (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static unsigned toCallerWindow (unsigned Reg)
static bool hasReturnsTwiceAttr (SelectionDAG &DAG, SDValue Callee, ImmutableCallSite *CS)
static bool isFP128ABICall (const char *CalleeName)
static void fixupVariableFloatArgs (SmallVectorImpl< CCValAssign > &ArgLocs, ArrayRef< ISD::OutputArg > Outs)
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 LowerF128_FPEXTEND (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerF128_FPROUND (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerFP_TO_SINT (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerSINT_TO_FP (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerFP_TO_UINT (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerUINT_TO_FP (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerBR_CC (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerSELECT_CC (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerVASTART (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerVAARG (SDValue Op, SelectionDAG &DAG)
static SDValue LowerDYNAMIC_STACKALLOC (SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
static SDValue getFLUSHW (SDValue Op, SelectionDAG &DAG)
static SDValue getFRAMEADDR (uint64_t depth, SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
static SDValue LowerFRAMEADDR (SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
static SDValue LowerRETURNADDR (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, const SparcSubtarget *Subtarget)
static SDValue LowerF64Op (SDValue Op, SelectionDAG &DAG, unsigned opcode)
static SDValue LowerF128Load (SDValue Op, SelectionDAG &DAG)
static SDValue LowerF128Store (SDValue Op, SelectionDAG &DAG)
static SDValue LowerFNEGorFABS (SDValue Op, SelectionDAG &DAG, bool isV9)
static SDValue LowerADDC_ADDE_SUBC_SUBE (SDValue Op, SelectionDAG &DAG)
static SDValue LowerUMULO_SMULO (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerATOMIC_LOAD_STORE (SDValue Op, SelectionDAG &DAG)

Function Documentation

static bool CC_Sparc64_Full ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
) [static]
static bool CC_Sparc64_Half ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
) [static]
static bool CC_Sparc_Assign_f64 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
) [static]
static bool CC_Sparc_Assign_SRet ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
) [static]
static void fixupVariableFloatArgs ( SmallVectorImpl< CCValAssign > &  ArgLocs,
ArrayRef< ISD::OutputArg Outs 
) [static]
static SDValue getFLUSHW ( SDValue  Op,
SelectionDAG DAG 
) [static]
static SDValue getFRAMEADDR ( uint64_t  depth,
SDValue  Op,
SelectionDAG DAG,
const SparcSubtarget Subtarget 
) [static]
static bool hasReturnsTwiceAttr ( SelectionDAG DAG,
SDValue  Callee,
ImmutableCallSite CS 
) [static]
static bool isFP128ABICall ( const char *  CalleeName) [static]

Definition at line 955 of file SparcISelLowering.cpp.

References I, and llvm::LibFunc::strcmp.

Referenced by llvm::SparcTargetLowering::getSRetArgSize().

static void LookThroughSetCC ( SDValue LHS,
SDValue RHS,
ISD::CondCode  CC,
unsigned SPCC 
) [static]
static SDValue LowerADDC_ADDE_SUBC_SUBE ( SDValue  Op,
SelectionDAG DAG 
) [static]
static SDValue LowerATOMIC_LOAD_STORE ( SDValue  Op,
SelectionDAG DAG 
) [static]

Definition at line 2768 of file SparcISelLowering.cpp.

References llvm::Monotonic.

Referenced by llvm::SparcTargetLowering::LowerOperation().

static SDValue LowerBR_CC ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerDYNAMIC_STACKALLOC ( SDValue  Op,
SelectionDAG DAG,
const SparcSubtarget Subtarget 
) [static]
static SDValue LowerF128_FPEXTEND ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI 
) [static]
static SDValue LowerF128_FPROUND ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI 
) [static]
static SDValue LowerF128Load ( SDValue  Op,
SelectionDAG DAG 
) [static]
static SDValue LowerF128Store ( SDValue  Op,
SelectionDAG DAG 
) [static]
static SDValue LowerF64Op ( SDValue  Op,
SelectionDAG DAG,
unsigned  opcode 
) [static]
static SDValue LowerFNEGorFABS ( SDValue  Op,
SelectionDAG DAG,
bool  isV9 
) [static]
static SDValue LowerFP_TO_SINT ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerFP_TO_UINT ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerFRAMEADDR ( SDValue  Op,
SelectionDAG DAG,
const SparcSubtarget Subtarget 
) [static]
static SDValue LowerRETURNADDR ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
const SparcSubtarget Subtarget 
) [static]
static SDValue LowerSELECT_CC ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerSINT_TO_FP ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerUINT_TO_FP ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI,
bool  hasHardQuad 
) [static]
static SDValue LowerUMULO_SMULO ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI 
) [static]
static SDValue LowerVAARG ( SDValue  Op,
SelectionDAG DAG 
) [static]
static SDValue LowerVASTART ( SDValue  Op,
SelectionDAG DAG,
const SparcTargetLowering TLI 
) [static]
static unsigned toCallerWindow ( unsigned  Reg) [static]