LLVM API Documentation

PPCISelDAGToDAG.cpp File Reference

#include "PPC.h"
#include "PPCTargetMachine.h"
#include "PPCISelLowering.h"
#include "PPCHazardRecognizers.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Constants.h"
#include "llvm/GlobalValue.h"
#include "llvm/Intrinsics.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include <iostream>
#include <set>
#include "PPCGenDAGISel.inc"

Include dependency graph for PPCISelDAGToDAG.cpp:

Go to the source code of this file.

Functions

static bool isIntImmediate (SDNode *N, unsigned &Imm)
static bool isRunOfOnes (unsigned Val, unsigned &MB, unsigned &ME)
static bool isRotateAndMask (SDNode *N, unsigned Mask, bool IsShiftMask, unsigned &SH, unsigned &MB, unsigned &ME)
static bool isOpcWithIntImmediate (SDNode *N, unsigned Opc, unsigned &Imm)
static bool isIntImmediate (SDOperand N, unsigned &Imm)
static unsigned getBCCForSetCC (ISD::CondCode CC)
static unsigned getCRIdxForSetCC (ISD::CondCode CC, bool &Inv)
static bool isCallCompatibleAddress (ConstantSDNode *C)
FunctionPassllvm::createPPCISelDag (PPCTargetMachine &TM)

Variables

Statistic FrameOff ("ppc-codegen","Number of frame idx offsets collapsed")
PPCTargetMachineTM
PPCTargetLowering PPCLowering
unsigned GlobalBaseReg
std::map< SDOperand, SDOperandCodeGenMap
std::map< SDOperand, SDOperandHandleMap
std::map< SDOperand, SDOperandReplaceMap


Function Documentation

static unsigned getBCCForSetCC ( ISD::CondCode  CC  )  [static]

getBCCForSetCC - Returns the PowerPC condition branch mnemonic corresponding to Condition.

Definition at line 743 of file PPCISelDAGToDAG.cpp.

References abort(), SETEQ, SETGE, SETGT, SETLE, SETLT, SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::ISD::SETUO.

static unsigned getCRIdxForSetCC ( ISD::CondCode  CC,
bool &  Inv 
) [static]

getCRIdxForSetCC - Return the index of the condition register field associated with the SetCC condition, and whether or not the field is treated as inverted. That is, lt = 0; ge = 0 inverted.

Definition at line 772 of file PPCISelDAGToDAG.cpp.

References abort(), SETEQ, SETGE, SETGT, SETLE, SETLT, SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::ISD::SETUO.

static bool isCallCompatibleAddress ( ConstantSDNode C  )  [static]

isCallCompatibleAddress - Return true if the specified 32-bit value is representable in the immediate field of a Bx instruction.

Definition at line 901 of file PPCISelDAGToDAG.cpp.

References llvm::CallingConv::C.

static bool isIntImmediate ( SDOperand  N,
unsigned &  Imm 
) [static]

Definition at line 384 of file PPCISelDAGToDAG.cpp.

static bool isIntImmediate ( SDNode N,
unsigned &  Imm 
) [static]

Definition at line 301 of file PPCISelDAGToDAG.cpp.

References llvm::ISD::Constant, and llvm::SDNode::getOpcode().

Referenced by isOpcWithIntImmediate(), and isRotateAndMask().

static bool isOpcWithIntImmediate ( SDNode N,
unsigned  Opc,
unsigned &  Imm 
) [static]

Definition at line 378 of file PPCISelDAGToDAG.cpp.

References llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), isIntImmediate(), and llvm::SDOperand::Val.

static bool isRotateAndMask ( SDNode N,
unsigned  Mask,
bool  IsShiftMask,
unsigned &  SH,
unsigned &  MB,
unsigned &  ME 
) [static]

Definition at line 336 of file PPCISelDAGToDAG.cpp.

References llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::MVT::i32, isIntImmediate(), isRunOfOnes(), SHL, llvm::ISD::SRL, and llvm::SDOperand::Val.

static bool isRunOfOnes ( unsigned  Val,
unsigned &  MB,
unsigned &  ME 
) [static]

Definition at line 313 of file PPCISelDAGToDAG.cpp.

References llvm::CountLeadingZeros_32(), and llvm::isShiftedMask_32().

Referenced by isRotateAndMask().


Variable Documentation

std::map<SDOperand, SDOperand> CodeGenMap

Definition at line 164 of file PPCISelDAGToDAG.cpp.

Statistic FrameOff("ppc-codegen","Number of frame idx offsets collapsed") [static]

unsigned GlobalBaseReg

Definition at line 45 of file PPCISelDAGToDAG.cpp.

std::map<SDOperand, SDOperand> HandleMap

Definition at line 167 of file PPCISelDAGToDAG.cpp.

PPCTargetLowering PPCLowering

Definition at line 44 of file PPCISelDAGToDAG.cpp.

std::map<SDOperand, SDOperand> ReplaceMap

Definition at line 170 of file PPCISelDAGToDAG.cpp.

PPCTargetMachine& TM

Definition at line 43 of file PPCISelDAGToDAG.cpp.