LLVM API Documentation

Defines | Functions
XCoreISelLowering.cpp File Reference
#include "XCoreISelLowering.h"
#include "XCore.h"
#include "XCoreMachineFunctionInfo.h"
#include "XCoreSubtarget.h"
#include "XCoreTargetMachine.h"
#include "XCoreTargetObjectFile.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include "XCoreGenCallingConv.inc"
Include dependency graph for XCoreISelLowering.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "xcore-lower"

Functions

static bool IsSmallObject (const GlobalValue *GV, const XCoreTargetLowering &XTL)
static bool isWordAligned (SDValue Value, SelectionDAG &DAG)
static bool isADDADDMUL (SDValue Op, SDValue &Mul0, SDValue &Mul1, SDValue &Addend0, SDValue &Addend1, bool requireIntermediatesHaveOneUse)
static SDValue LowerCallResult (SDValue Chain, SDValue InFlag, const SmallVectorImpl< CCValAssign > &RVLocs, SDLoc dl, SelectionDAG &DAG, SmallVectorImpl< SDValue > &InVals)
static bool isImmUs (int64_t val)
static bool isImmUs2 (int64_t val)
static bool isImmUs4 (int64_t val)

Define Documentation

#define DEBUG_TYPE   "xcore-lower"

Definition at line 42 of file XCoreISelLowering.cpp.


Function Documentation

static bool isADDADDMUL ( SDValue  Op,
SDValue Mul0,
SDValue Mul1,
SDValue Addend0,
SDValue Addend1,
bool  requireIntermediatesHaveOneUse 
) [static]

isADDADDMUL - Return whether Op is in a form that is equivalent to add(add(mul(x,y),a),b). If requireIntermediatesHaveOneUse is true then each intermediate result in the calculation must also have a single use. If the Op is in the correct form the constituent parts are written to Mul0, Mul1, Addend0 and Addend1.

Definition at line 605 of file XCoreISelLowering.cpp.

References llvm::ISD::ADD, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::hasOneUse(), and llvm::ISD::MUL.

static bool isImmUs ( int64_t  val) [inline, static]
static bool isImmUs2 ( int64_t  val) [inline, static]

Definition at line 1907 of file XCoreISelLowering.cpp.

References isImmUs().

Referenced by llvm::XCoreTargetLowering::isLegalAddressingMode().

static bool isImmUs4 ( int64_t  val) [inline, static]

Definition at line 1912 of file XCoreISelLowering.cpp.

References isImmUs().

Referenced by llvm::XCoreTargetLowering::isLegalAddressingMode().

static bool IsSmallObject ( const GlobalValue GV,
const XCoreTargetLowering XTL 
) [static]
static bool isWordAligned ( SDValue  Value,
SelectionDAG DAG 
) [static]
static SDValue LowerCallResult ( SDValue  Chain,
SDValue  InFlag,
const SmallVectorImpl< CCValAssign > &  RVLocs,
SDLoc  dl,
SelectionDAG DAG,
SmallVectorImpl< SDValue > &  InVals 
) [static]