LLVM API Documentation

ARMISelDAGToDAG.cpp File Reference

#include "ARM.h"
#include "ARMTargetMachine.h"
#include "llvm/CallingConv.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Function.h"
#include "llvm/Intrinsics.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Support/Debug.h"
#include <iostream>
#include <set>
#include "ARMGenDAGISel.inc"

Include dependency graph for ARMISelDAGToDAG.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
namespace  llvm::ARMISD

Enumerations

enum  llvm::ARMISD::NodeType { llvm::ARMISD::FIRST_NUMBER = ISD::BUILTIN_OP_END+ARM::INSTRUCTION_LIST_END, llvm::ARMISD::CALL }

Functions

static SDOperand LowerCALL (SDOperand Op, SelectionDAG &DAG)
static SDOperand LowerRET (SDOperand Op, SelectionDAG &DAG)
static SDOperand LowerFORMAL_ARGUMENT (SDOperand Op, SelectionDAG &DAG, unsigned ArgNo)
static SDOperand LowerFORMAL_ARGUMENTS (SDOperand Op, SelectionDAG &DAG)
FunctionPassllvm::createARMISelDag (TargetMachine &TM)


Function Documentation

static SDOperand LowerCALL ( SDOperand  Op,
SelectionDAG DAG 
) [static]

Definition at line 68 of file ARMISelDAGToDAG.cpp.

References llvm::CallingConv::C, llvm::ARMISD::CALL, llvm::ISD::CALLSEQ_END, DAG, llvm::MVT::Flag, G, llvm::SelectionDAG::getCALLSEQ_START(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::SDOperand::getValue(), llvm::Value::getValueType(), llvm::MVT::i32, llvm::ISD::MERGE_VALUES, NumBytes, Op, Ops, llvm::MVT::Other, llvm::Use::Val, and llvm::SDOperand::Val.

Referenced by llvm::PPCTargetLowering::LowerOperation().

static SDOperand LowerFORMAL_ARGUMENT ( SDOperand  Op,
SelectionDAG DAG,
unsigned  ArgNo 
) [static]

Definition at line 185 of file ARMISelDAGToDAG.cpp.

References llvm::MachineFunction::addLiveIn(), llvm::MachineFrameInfo::CreateFixedObject(), DAG, llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::MVT::getSizeInBits(), llvm::SelectionDAG::getSrcValue(), llvm::MachineFunction::getSSARegMap(), llvm::MVT::i32, MF, Op, RegMap, Root, llvm::ISD::UNDEF, and llvm::Use::Val.

Referenced by LowerFORMAL_ARGUMENTS().

static SDOperand LowerFORMAL_ARGUMENTS ( SDOperand  Op,
SelectionDAG DAG 
) [static]

Definition at line 221 of file ARMISelDAGToDAG.cpp.

References DAG, llvm::SelectionDAG::getNode(), LowerFORMAL_ARGUMENT(), llvm::ISD::MERGE_VALUES, Op, Root, and llvm::Use::Val.

static SDOperand LowerRET ( SDOperand  Op,
SelectionDAG DAG 
) [static]

Definition at line 158 of file ARMISelDAGToDAG.cpp.

References llvm::MachineFunction::addLiveOut(), llvm::ISD::BRIND, DAG, llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getRegister(), llvm::MVT::i32, llvm::MachineFunction::liveout_empty(), Op, and llvm::MVT::Other.


Variable Documentation

std::map<SDOperand, SDOperand> CodeGenMap

Definition at line 300 of file ARMISelDAGToDAG.cpp.

std::map<SDOperand, SDOperand> HandleMap

Definition at line 303 of file ARMISelDAGToDAG.cpp.

std::set<SDNode*> InFlightSet

Definition at line 309 of file ARMISelDAGToDAG.cpp.

ARMTargetLowering Lowering

Definition at line 266 of file ARMISelDAGToDAG.cpp.

std::map<SDOperand, SDOperand> ReplaceMap

Definition at line 306 of file ARMISelDAGToDAG.cpp.