LLVM  4.0.0
Macros | Functions | Variables
IRTranslator.cpp File Reference

This file implements the IRTranslator class. More...

#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/GlobalISel/CallLowering.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Target/TargetIntrinsicInfo.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/IR/Instruction.def"
Include dependency graph for IRTranslator.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "irtranslator"
 
#define HANDLE_INST(NUM, OPCODE, CLASS)   case Instruction::OPCODE: return translate##OPCODE(Inst, CurBuilder);
 
#define HANDLE_INST(NUM, OPCODE, CLASS)   case Instruction::OPCODE: return translate##OPCODE(*CE, EntryBuilder);
 

Functions

 INITIALIZE_PASS_BEGIN (IRTranslator, DEBUG_TYPE,"IRTranslator LLVM IR -> MI", false, false) INITIALIZE_PASS_END(IRTranslator
 
IRTranslator LLVM IR static
false void 
reportTranslationError (const Value &V, const Twine &Message)
 

Variables

 DEBUG_TYPE
 
IRTranslator LLVM IR MI
 
IRTranslator LLVM IR false
 

Detailed Description

This file implements the IRTranslator class.

Definition in file IRTranslator.cpp.

Macro Definition Documentation

#define DEBUG_TYPE   "irtranslator"

Definition at line 32 of file IRTranslator.cpp.

#define HANDLE_INST (   NUM,
  OPCODE,
  CLASS 
)    case Instruction::OPCODE: return translate##OPCODE(Inst, CurBuilder);
#define HANDLE_INST (   NUM,
  OPCODE,
  CLASS 
)    case Instruction::OPCODE: return translate##OPCODE(*CE, EntryBuilder);

Function Documentation

INITIALIZE_PASS_BEGIN ( IRTranslator  ,
DEBUG_TYPE  ,
"IRTranslator LLVM IR -> MI ,
false  ,
false   
)
IRTranslator LLVM IR static false void reportTranslationError ( const Value V,
const Twine Message 
)
static

Variable Documentation

DEBUG_TYPE

Definition at line 40 of file IRTranslator.cpp.

IRTranslator LLVM IR false

Definition at line 40 of file IRTranslator.cpp.

IRTranslator LLVM IR MI

Definition at line 40 of file IRTranslator.cpp.

Referenced by false::Chain::add(), llvm::addFrameReference(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::VLIWPacketizerList::addToPacket(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::RegAllocBase::allocatePhysRegs(), llvm::WebAssemblyInstrInfo::analyzeBranch(), AnalyzeLoadFromClobberingMemInst(), llvm::A57ChainingConstraint::apply(), areCFlagsAccessedBetweenInstrs(), llvm::CodeViewDebug::beginFunction(), llvm::DebugHandlerBase::beginInstruction(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::BuildMI(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), llvm::calculateDbgValueHistory(), canCompareBeNewValueJump(), canFoldIntoMOVCC(), canFoldIntoSelect(), llvm::MachineOperand::ChangeToRegister(), llvm::X86InstrInfo::classifyLEAReg(), CleanupConstantGlobalUsers(), llvm::HexagonPacketizerList::cleanUpDotCur(), collectChangingRegs(), collectDebugValues(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::SystemZInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::EHStreamer::computeCallSiteTable(), llvm::computeLiveIns(), llvm::computeMinimumValueSizes(), computePointerICmp(), llvm::LiveInterval::computeSubRangeUndefs(), llvm::X86InstrInfo::convertToThreeAddress(), createDeadDef(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::doInitialization(), llvm::ScheduleDAGMI::dumpSchedule(), llvm::ARMBaseInstrInfo::duplicate(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::AVRFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::AsmPrinter::EmitFunctionBody(), emitIncrement(), llvm::ARMHazardRecognizer::EmitInstruction(), llvm::GCNHazardRecognizer::EmitInstruction(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::AVRFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::X86FrameLowering::emitSPUpdate(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::DbgValueHistoryMap::endInstrRange(), llvm::VLIWPacketizerList::endPacket(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvBefore(), llvm::rdf::DeadCodeElimination::erase(), llvm::MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval(), llvm::HexagonEvaluator::evaluate(), llvm::SparcInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::R600InstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), ExplicitlyBranchesTo(), llvm::LexicalScope::extendInsnRange(), findFirstPredicateSetterFrom(), findInsertLocation(), findPartitions(), findPrologueEndLoc(), FixEndsAtEndOfFunction(), llvm::ScheduleDAGInstrs::fixupKills(), flagsNeedToBePreservedBeforeTheTerminators(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), getBundledDefMI(), llvm::HexagonInstrInfo::getFirstNonDbgInst(), llvm::SlotTracker::getGlobalSlot(), llvm::ARMHazardRecognizer::getHazardType(), llvm::HexagonHazardRecognizer::getHazardType(), llvm::GCNHazardRecognizer::getHazardType(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::SlotIndexes::getIndexAfter(), llvm::SlotIndexes::getIndexBefore(), llvm::EquivalenceClasses< llvm::Instruction * >::getLeaderValue(), getLocForWrite(), llvm::RegPressureTracker::getMaxUpwardPressureDelta(), llvm::SlotIndexes::getMBBFromIndex(), llvm::SlotTracker::getMetadataSlot(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::EquivalenceClasses< llvm::Instruction * >::getOrInsertLeaderValue(), llvm::getRegsUsedByPHIs(), llvm::MachineTraceMetrics::getResources(), getStoredPointerOperand(), getStoreOffset(), llvm::MCSection::getSubsectionInsertionPoint(), handleADRP(), handleMiddleInst(), handleUse(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), llvm::HexagonPacketizerList::hasControlDependence(), llvm::HexagonMCInstrInfo::hasImmExt(), llvm::UniqueVector< const Comdat * >::idFor(), INITIALIZE_PASS(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::X86FrameLowering::inlineStackProbe(), llvm::MachineBasicBlock::insert(), llvm::MachineBasicBlock::insertAfter(), insertCopy(), InsertFPConstInst(), InsertFPImmInst(), InsertSPConstInst(), InsertSPImmInst(), InstructionDereferencesPointer(), isAllocSiteRemovable(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::IsCPSRDead< MachineInstr >(), isDefBetween(), llvm::SIInstrInfo::isInlineConstant(), isIntegerWideningViableForSlice(), isKilled(), isMulPowOf2(), isNoReturnDef(), isOnlyCopiedFromConstantGlobal(), isRematerializable(), llvm::ARMBaseInstrInfo::isSchedulingBoundary(), isSimple(), isSplitEdge(), isUnorderedLoadStore(), isVectorPromotionViableForSlice(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvBefore(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsSMRD(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MIBundleBuilder::MIBundleBuilder(), llvm::ScheduleDAGMI::moveInstruction(), moveInstsAfter(), needsStackFrame(), llvm::LexicalScope::openInsnRange(), llvm::rdf::operator<<(), llvm::EquivalenceClasses< llvm::Instruction * >::operator=(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::VLIWPacketizerList::PacketizeMIs(), PlaceMarkers(), llvm::PointerMayBeCaptured(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::MIPrinter::print(), llvm::AsmPrinter::PrintSpecial(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::MachineRegisterInfo::recomputeRegClass(), llvm::TargetInstrInfo::reMaterialize(), llvm::LiveRangeEdit::rematerializeAt(), llvm::ModuleSummaryIndex::removeEmptySummaryEntries(), RemoveKills(), RemoveVRSaveCode(), llvm::SlotIndexes::repairIndexesInRange(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), llvm::rdf::Liveness::resetKills(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::rewriteAArch64FrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), llvm::InstructionSelect::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::AVRFrameAnalyzer::runOnMachineFunction(), s10_0ImmDecoder(), s11_0ImmDecoder(), s11_2ImmDecoder(), s11_3ImmDecoder(), s12_0ImmDecoder(), s16_0ImmDecoder(), s3_6ImmDecoder(), s4_0ImmDecoder(), s4_1ImmDecoder(), s4_2ImmDecoder(), s4_3ImmDecoder(), s4_6ImmDecoder(), s6_0ImmDecoder(), s8_0ImmDecoder(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::HexagonMachineFunctionInfo::setEndPacket(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SUnit::setInstr(), llvm::MachineOperand::setIsDef(), false::Chain::setKill(), llvm::MachineOperand::setReg(), llvm::HexagonMachineFunctionInfo::setStartPacket(), llvm::MIRParserImpl::setupRegisterInfo(), skipAlignedDPRCS2Spills(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), splitBlockBefore(), swapFPIntParams(), swapRegAndNonRegOperand(), llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), tryOptimizeLEAtoMOV(), llvm::HexagonPacketizerList::unpacketizeSoloInstrs(), updateOperand(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), llvm::VerifyPHIs(), and llvm::MachineRegisterInfo::verifyUseList().