LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions
SystemZISelLowering.cpp File Reference
#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"
Include dependency graph for SystemZISelLowering.cpp:

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
 

Functions

static bool is32Bit (EVT VT)
 
static MachineOperand earlyUseOperand (MachineOperand Op)
 
static std::pair< unsigned,
const TargetRegisterClass * > 
parseRegisterNumber (const std::string &Constraint, const TargetRegisterClass *RC, const unsigned *Map)
 
static SDValue convertLocVTToValVT (SelectionDAG &DAG, SDLoc DL, CCValAssign &VA, SDValue Chain, SDValue Value)
 
static SDValue convertValVTToLocVT (SelectionDAG &DAG, SDLoc DL, CCValAssign &VA, SDValue Value)
 
static bool canUseSiblingCall (CCState ArgCCInfo, SmallVectorImpl< CCValAssign > &ArgLocs)
 
static unsigned CCMaskForCondCode (ISD::CondCode CC)
 
static IPMConversion getIPMConversion (unsigned CCValid, unsigned CCMask)
 
static void adjustZeroCmp (SelectionDAG &DAG, bool &IsUnsigned, SDValue &CmpOp0, SDValue &CmpOp1, unsigned &CCMask)
 
static void adjustSubwordCmp (SelectionDAG &DAG, bool &IsUnsigned, SDValue &CmpOp0, SDValue &CmpOp1, unsigned &CCMask)
 
static bool isNaturalMemoryOperand (SDValue Op, unsigned ICmpType)
 
static bool shouldSwapCmpOperands (SDValue Op0, SDValue Op1, unsigned ICmpType)
 
static bool isSimpleShift (SDValue N, unsigned &ShiftVal)
 
static unsigned getTestUnderMaskCond (unsigned BitSize, unsigned CCMask, uint64_t Mask, uint64_t CmpVal, unsigned ICmpType)
 
static void adjustForTestUnderMask (SelectionDAG &DAG, unsigned &Opcode, SDValue &CmpOp0, SDValue &CmpOp1, unsigned &CCValid, unsigned &CCMask, unsigned &ICmpType)
 
static SDValue emitCmp (const SystemZTargetMachine &TM, SelectionDAG &DAG, SDLoc DL, SDValue CmpOp0, SDValue CmpOp1, ISD::CondCode Cond, unsigned &CCValid, unsigned &CCMask)
 
static void lowerMUL_LOHI32 (SelectionDAG &DAG, SDLoc DL, unsigned Extend, SDValue Op0, SDValue Op1, SDValue &Hi, SDValue &Lo)
 
static void lowerGR128Binary (SelectionDAG &DAG, SDLoc DL, EVT VT, unsigned Extend, unsigned Opcode, SDValue Op0, SDValue Op1, SDValue &Even, SDValue &Odd)
 
static MachineBasicBlockemitBlockAfter (MachineBasicBlock *MBB)
 
static MachineBasicBlocksplitBlockAfter (MachineInstr *MI, MachineBasicBlock *MBB)
 
static MachineBasicBlocksplitBlockBefore (MachineInstr *MI, MachineBasicBlock *MBB)
 
static unsigned forceReg (MachineInstr *MI, MachineOperand &Base, const SystemZInstrInfo *TII)
 

Macro Definition Documentation

#define CONV (   X)
Value:
case ISD::SET##X: return SystemZ::CCMASK_CMP_##X; \
case ISD::SETO##X: return SystemZ::CCMASK_CMP_##X; \
case ISD::SETU##X: return SystemZ::CCMASK_CMP_UO | SystemZ::CCMASK_CMP_##X
#define SET(n)
Definition: MD5.cpp:64
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
const unsigned CCMASK_CMP_UO
Definition: SystemZ.h:43

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

Function Documentation

static void adjustForTestUnderMask ( SelectionDAG DAG,
unsigned Opcode,
SDValue CmpOp0,
SDValue CmpOp1,
unsigned CCValid,
unsigned CCMask,
unsigned ICmpType 
)
static
static void adjustSubwordCmp ( SelectionDAG DAG,
bool IsUnsigned,
SDValue CmpOp0,
SDValue CmpOp1,
unsigned CCMask 
)
static
static void adjustZeroCmp ( SelectionDAG DAG,
bool IsUnsigned,
SDValue CmpOp0,
SDValue CmpOp1,
unsigned CCMask 
)
static
static bool canUseSiblingCall ( CCState  ArgCCInfo,
SmallVectorImpl< CCValAssign > &  ArgLocs 
)
static
static unsigned CCMaskForCondCode ( ISD::CondCode  CC)
static
static SDValue convertLocVTToValVT ( SelectionDAG DAG,
SDLoc  DL,
CCValAssign VA,
SDValue  Chain,
SDValue  Value 
)
static
static SDValue convertValVTToLocVT ( SelectionDAG DAG,
SDLoc  DL,
CCValAssign VA,
SDValue  Value 
)
static
static MachineOperand earlyUseOperand ( MachineOperand  Op)
static
static MachineBasicBlock* emitBlockAfter ( MachineBasicBlock MBB)
static
static SDValue emitCmp ( const SystemZTargetMachine TM,
SelectionDAG DAG,
SDLoc  DL,
SDValue  CmpOp0,
SDValue  CmpOp1,
ISD::CondCode  Cond,
unsigned CCValid,
unsigned CCMask 
)
static
static unsigned forceReg ( MachineInstr MI,
MachineOperand Base,
const SystemZInstrInfo TII 
)
static
static IPMConversion getIPMConversion ( unsigned  CCValid,
unsigned  CCMask 
)
static
static unsigned getTestUnderMaskCond ( unsigned  BitSize,
unsigned  CCMask,
uint64_t  Mask,
uint64_t  CmpVal,
unsigned  ICmpType 
)
static
static bool is32Bit ( EVT  VT)
static
static bool isNaturalMemoryOperand ( SDValue  Op,
unsigned  ICmpType 
)
static
static bool isSimpleShift ( SDValue  N,
unsigned ShiftVal 
)
static
static void lowerGR128Binary ( SelectionDAG DAG,
SDLoc  DL,
EVT  VT,
unsigned  Extend,
unsigned  Opcode,
SDValue  Op0,
SDValue  Op1,
SDValue Even,
SDValue Odd 
)
static
static void lowerMUL_LOHI32 ( SelectionDAG DAG,
SDLoc  DL,
unsigned  Extend,
SDValue  Op0,
SDValue  Op1,
SDValue Hi,
SDValue Lo 
)
static
static std::pair<unsigned, const TargetRegisterClass *> parseRegisterNumber ( const std::string &  Constraint,
const TargetRegisterClass RC,
const unsigned Map 
)
static
static bool shouldSwapCmpOperands ( SDValue  Op0,
SDValue  Op1,
unsigned  ICmpType 
)
static
static MachineBasicBlock* splitBlockAfter ( MachineInstr MI,
MachineBasicBlock MBB 
)
static
static MachineBasicBlock* splitBlockBefore ( MachineInstr MI,
MachineBasicBlock MBB 
)
static