LLVM API Documentation

SPUISelDAGToDAG.cpp File Reference

#include "SPU.h"
#include "SPUTargetMachine.h"
#include "SPUISelLowering.h"
#include "SPUHazardRecognizers.h"
#include "SPUFrameInfo.h"
#include "SPURegisterNames.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineFunction.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 "llvm/Support/Compiler.h"
#include "SPUGenDAGISel.inc"

Include dependency graph for SPUISelDAGToDAG.cpp:

Go to the source code of this file.

Functions

bool isI64IntS10Immediate (ConstantSDNode *CN)
 ConstantSDNode predicate for i32 sign-extended, 10-bit immediates.
bool isI32IntS10Immediate (ConstantSDNode *CN)
 ConstantSDNode predicate for i32 sign-extended, 10-bit immediates.
bool isI32IntU10Immediate (ConstantSDNode *CN)
 ConstantSDNode predicate for i32 unsigned 10-bit immediate values.
bool isI16IntS10Immediate (ConstantSDNode *CN)
 ConstantSDNode predicate for i16 sign-extended, 10-bit immediate values.
bool isI16IntS10Immediate (SDNode *N)
 SDNode predicate for i16 sign-extended, 10-bit immediate values.
bool isI16IntU10Immediate (ConstantSDNode *CN)
 ConstantSDNode predicate for i16 unsigned 10-bit immediate values.
bool isI16IntU10Immediate (SDNode *N)
 SDNode predicate for i16 sign-extended, 10-bit immediate values.
bool isIntS16Immediate (ConstantSDNode *CN, short &Imm)
 ConstantSDNode predicate for signed 16-bit values.
bool isIntS16Immediate (SDNode *N, short &Imm)
 SDNode predicate for signed 16-bit values.
static bool isFPS16Immediate (ConstantFPSDNode *FPN, short &Imm)
 ConstantFPSDNode predicate for representing floats as 16-bit sign ext.
bool isHighLow (const SDValue &Op)
const valtype_map_s * getValueTypeMapEntry (MVT VT)
FunctionPassllvm::createSPUISelDag (SPUTargetMachine &TM)

Variables

const valtype_map_s valtype_map []
const size_t n_valtype_map = sizeof(valtype_map) / sizeof(valtype_map[0])


Function Documentation

const valtype_map_s* @590::getValueTypeMapEntry ( MVT  VT  )  [static]

Definition at line 189 of file SPUISelDAGToDAG.cpp.

References llvm::cerr(), and llvm::MVT::getMVTString().

Referenced by LowerLOAD().

static bool @590::isFPS16Immediate ( ConstantFPSDNode FPN,
short &  Imm 
) [static]

ConstantFPSDNode predicate for representing floats as 16-bit sign ext.

Definition at line 138 of file SPUISelDAGToDAG.cpp.

References llvm::APFloat::convertToFloat(), llvm::FloatToBits(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDNode::getValueType(), and val.

bool @590::isHighLow ( const SDValue Op  )  [static]

bool @590::isI16IntS10Immediate ( SDNode N  )  [static]

SDNode predicate for i16 sign-extended, 10-bit immediate values.

Definition at line 78 of file SPUISelDAGToDAG.cpp.

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

bool @590::isI16IntS10Immediate ( ConstantSDNode CN  )  [static]

ConstantSDNode predicate for i16 sign-extended, 10-bit immediate values.

Definition at line 71 of file SPUISelDAGToDAG.cpp.

References llvm::ConstantSDNode::getSExtValue(), and llvm::isS10Constant().

Referenced by isI16IntS10Immediate().

bool @590::isI16IntU10Immediate ( SDNode N  )  [static]

SDNode predicate for i16 sign-extended, 10-bit immediate values.

Definition at line 93 of file SPUISelDAGToDAG.cpp.

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

bool @590::isI16IntU10Immediate ( ConstantSDNode CN  )  [static]

ConstantSDNode predicate for i16 unsigned 10-bit immediate values.

Definition at line 86 of file SPUISelDAGToDAG.cpp.

References llvm::ConstantSDNode::getZExtValue(), and llvm::isU10Constant().

Referenced by isI16IntU10Immediate().

bool @590::isI32IntS10Immediate ( ConstantSDNode CN  )  [static]

ConstantSDNode predicate for i32 sign-extended, 10-bit immediates.

Definition at line 47 of file SPUISelDAGToDAG.cpp.

References llvm::ConstantSDNode::getSExtValue(), and llvm::isS10Constant().

bool @590::isI32IntU10Immediate ( ConstantSDNode CN  )  [static]

ConstantSDNode predicate for i32 unsigned 10-bit immediate values.

Definition at line 64 of file SPUISelDAGToDAG.cpp.

References llvm::ConstantSDNode::getSExtValue(), and llvm::isU10Constant().

bool @590::isI64IntS10Immediate ( ConstantSDNode CN  )  [static]

ConstantSDNode predicate for i32 sign-extended, 10-bit immediates.

Definition at line 40 of file SPUISelDAGToDAG.cpp.

References llvm::ConstantSDNode::getSExtValue(), and llvm::isS10Constant().

bool @590::isIntS16Immediate ( SDNode N,
short &  Imm 
) [static]

SDNode predicate for signed 16-bit values.

Definition at line 130 of file SPUISelDAGToDAG.cpp.

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

bool @590::isIntS16Immediate ( ConstantSDNode CN,
short &  Imm 
) [static]

ConstantSDNode predicate for signed 16-bit values.

  • CN The constant SelectionDAG node holding the value
  • Imm The returned 16-bit value, if returning true
This predicate tests the value in CN to see whether it can be represented as a 16-bit, sign-extended quantity. Returns true if this is the case.

Definition at line 109 of file SPUISelDAGToDAG.cpp.

References llvm::MVT::getSimpleVT(), llvm::SDNode::getValueType(), and llvm::ConstantSDNode::getZExtValue().

Referenced by isIntS16Immediate(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegImmShift(), and llvm::PPCTargetLowering::SelectAddressRegReg().


Variable Documentation

LDRESULT instruction (0 = undefined).

Definition at line 167 of file SPUISelDAGToDAG.cpp.

Definition at line 166 of file SPUISelDAGToDAG.cpp.

LDRESULT instruction requires immediate?

Definition at line 168 of file SPUISelDAGToDAG.cpp.

const size_t n_valtype_map = sizeof(valtype_map) / sizeof(valtype_map[0]) [static]

Definition at line 187 of file SPUISelDAGToDAG.cpp.

Definition at line 223 of file SPUISelDAGToDAG.cpp.

Definition at line 222 of file SPUISelDAGToDAG.cpp.

const valtype_map_s valtype_map[] [static]

Initial value:

 {
    { MVT::i8,    SPU::ORBIr8,  true,  SPU::LRr8 },
    { MVT::i16,   SPU::ORHIr16, true,  SPU::LRr16 },
    { MVT::i32,   SPU::ORIr32,  true,  SPU::LRr32 },
    { MVT::i64,   SPU::ORr64,   false, SPU::LRr64 },
    { MVT::f32,   SPU::ORf32,   false, SPU::LRf32 },
    { MVT::f64,   SPU::ORf64,   false, SPU::LRf64 },
    
    { MVT::v16i8, 0,            false, SPU::LRv16i8 },
    { MVT::v8i16, 0,            false, SPU::LRv8i16 },
    { MVT::v4i32, 0,            false, SPU::LRv4i32 },
    { MVT::v2i64, 0,            false, SPU::LRv2i64 },
    { MVT::v4f32, 0,            false, SPU::LRv4f32 },
    { MVT::v2f64, 0,            false, SPU::LRv2f64 }
  }

Definition at line 171 of file SPUISelDAGToDAG.cpp.

Definition at line 165 of file SPUISelDAGToDAG.cpp.

Referenced by llvm::CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeReturn(), llvm::SelectInst::areInvalidOperands(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), CheckDAGForTailCallsAndFixThem(), llvm::SPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::TargetLowering::computeRegisterProperties(), llvm::ConstantFoldCompareInstruction(), llvm::PIC16TargetLowering::ExpandLoad(), llvm::FunctionType::get(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeAttributes(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), llvm::FastISel::getRegForValue(), llvm::SelectionDAGLowering::getValue(), llvm::TargetLowering::getValueType(), llvm::Constant::getVectorElements(), llvm::TargetLowering::isConsecutiveLoad(), LowerBUILD_VECTOR(), LowerByteImmed(), LowerConstant(), LowerConstantFP(), LowerCTPOP(), LowerEXTRACT_VECTOR_ELT(), LowerFCOPYSIGN(), LowerI64Math(), LowerINSERT_VECTOR_ELT(), LowerINT_TO_FP(), llvm::SPUTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), LowerSCALAR_TO_VECTOR(), LowerSELECT_CC(), LowerSTORE(), LowerTRUNCATE(), LowerVAARG(), llvm::PPCTargetLowering::PPCTargetLowering(), llvm::X86IntelAsmPrinter::printOp(), llvm::X86ATTAsmPrinter::printOperand(), llvm::FunctionLoweringInfo::set(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SPUTargetLowering::SPUTargetLowering(), llvm::TargetLowering::TargetLowering(), llvm::X86InstrInfo::unfoldMemoryOperand(), UpgradeIntrinsicFunction1(), WriteTypeTable(), and llvm::X86TargetLowering::X86TargetLowering().




This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.