LLVM API Documentation

PPCISelDAGToDAG.cpp File Reference

#include "PPC.h"
#include "PPCPredicates.h"
#include "PPCTargetMachine.h"
#include "PPCISelLowering.h"
#include "PPCHazardRecognizers.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Constants.h"
#include "llvm/GlobalValue.h"
#include "llvm/Intrinsics.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Compiler.h"
#include "PPCGenDAGISel.inc"

Include dependency graph for PPCISelDAGToDAG.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "ppc-codegen"

Functions

static bool isIntS16Immediate (SDNode *N, short &Imm)
static bool isIntS16Immediate (SDValue Op, short &Imm)
static bool isInt32Immediate (SDNode *N, unsigned &Imm)
static bool isInt64Immediate (SDNode *N, uint64_t &Imm)
static bool isInt32Immediate (SDValue N, unsigned &Imm)
static bool isOpcWithIntImmediate (SDNode *N, unsigned Opc, unsigned &Imm)
static PPC::Predicate getPredicateForSetCC (ISD::CondCode CC)
static unsigned getCRIdxForSetCC (ISD::CondCode CC, bool &Invert, int &Other)
FunctionPass * llvm::createPPCISelDag (PPCTargetMachine &TM)


Define Documentation

#define DEBUG_TYPE   "ppc-codegen"

Definition at line 15 of file PPCISelDAGToDAG.cpp.


Function Documentation

static unsigned getCRIdxForSetCC ( ISD::CondCode  CC,
bool &  Invert,
int &  Other 
) [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.

If this returns with Other != -1, then the returned comparison is an or of two simpler comparisons. In this case, Invert is guaranteed to be false.

Definition at line 622 of file PPCISelDAGToDAG.cpp.

References 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 PPC::Predicate getPredicateForSetCC ( ISD::CondCode  CC  )  [static]

static bool isInt32Immediate ( SDValue  N,
unsigned &  Imm 
) [static]

Definition at line 340 of file PPCISelDAGToDAG.cpp.

References llvm::SDValue::getNode(), and isInt32Immediate().

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

isInt32Immediate - This method tests to see if the node is a 32-bit constant operand. If so Imm will receive the 32-bit value.

Definition at line 320 of file PPCISelDAGToDAG.cpp.

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

Referenced by isInt32Immediate(), and isOpcWithIntImmediate().

static bool isInt64Immediate ( SDNode *  N,
uint64_t &  Imm 
) [static]

isInt64Immediate - This method tests to see if the node is a 64-bit constant operand. If so Imm will receive the 64-bit value.

Definition at line 330 of file PPCISelDAGToDAG.cpp.

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

static bool isIntS16Immediate ( SDValue  Op,
short &  Imm 
) [static]

Definition at line 313 of file PPCISelDAGToDAG.cpp.

References llvm::SDValue::getNode(), and isIntS16Immediate().

static bool isIntS16Immediate ( SDNode *  N,
short &  Imm 
) [static]

isIntS16Immediate - This method tests to see if the node is either a 32-bit or 64-bit immediate, and if the value can be accurately represented as a sign extension from a 16-bit value. If so, this returns true and the immediate.

Definition at line 302 of file PPCISelDAGToDAG.cpp.

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

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


Variable Documentation

Definition at line 44 of file PPCISelDAGToDAG.cpp.

SelectionDAG::allnodes_iterator& ISelPosition

ISelPosition - Node iterator marking the current position of instruction selection as it procedes through the topologically-sorted node list.

Definition at line 232 of file PPCISelDAGToDAG.cpp.

Definition at line 42 of file PPCISelDAGToDAG.cpp.

Definition at line 43 of file PPCISelDAGToDAG.cpp.

Definition at line 41 of file PPCISelDAGToDAG.cpp.