|
LLVM
4.0.0
|
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"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 |
This file implements the IRTranslator class.
Definition in file IRTranslator.cpp.
| #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); |
| INITIALIZE_PASS_BEGIN | ( | IRTranslator | , |
| DEBUG_TYPE | , | ||
| "IRTranslator LLVM IR -> MI" | , | ||
| false | , | ||
| false | |||
| ) |
|
static |
Definition at line 43 of file IRTranslator.cpp.
References llvm::report_fatal_error(), and llvm::raw_string_ostream::str().
Referenced by llvm::IRTranslator::runOnMachineFunction().
| 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().
1.8.6