LLVM: lib/CodeGen/TargetInstrInfo.cpp File Reference (original) (raw)
Go to the source code of this file.
| Functions | |
|---|---|
| static bool | isAsmComment (const char *Str, const MCAsmInfo &MAI) |
| static const TargetRegisterClass * | canFoldCopy (const MachineInstr &MI, const TargetInstrInfo &TII, unsigned FoldIdx) |
| static MachineInstr * | foldPatchpoint (MachineFunction &MF, MachineInstr &MI, ArrayRef< unsigned > Ops, int FrameIndex, const TargetInstrInfo &TII) |
| static void | foldInlineAsmMemOperand (MachineInstr *MI, unsigned OpNo, int FI, const TargetInstrInfo &TII) |
| static MachineInstr * | foldInlineAsmMemOperand (MachineInstr &MI, ArrayRef< unsigned > Ops, int FI, const TargetInstrInfo &TII) |
| static void | transferImplicitOperands (MachineInstr *MI, const TargetRegisterInfo *TRI) |
| transferImplicitOperands - MI is a pseudo-instruction, and the lowered replacement instructions immediately precede it. | |
| static bool | canCombine (MachineBasicBlock &MBB, MachineOperand &MO, unsigned CombineOpc=0) |
| static std::pair< bool, bool > | mustSwapOperands (unsigned Pattern) |
| Variables | |
|---|---|
| static cl::opt< bool > | DisableHazardRecognizer ("disable-sched-hazard", cl::Hidden, cl::init(false), cl::desc("Disable hazard detection during preRA scheduling")) |
| static cl::opt< bool > | EnableAccReassociation ("acc-reassoc", cl::Hidden, cl::init(true), cl::desc("Enable reassociation of accumulation chains")) |
| static cl::opt< unsigned int > | MinAccumulatorDepth ("acc-min-depth", cl::Hidden, cl::init(8), cl::desc("Minimum length of accumulator chains " "required for the optimization to kick in")) |
| static cl::opt< unsigned int > | MaxAccumulatorWidth ("acc-max-width", cl::Hidden, cl::init(3), cl::desc("Maximum number of branches in the accumulator tree")) |
◆ canCombine()
Definition at line 979 of file TargetInstrInfo.cpp.
References llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), llvm::Register::isVirtual(), MBB, MI, and MRI.
Referenced by canCombineShiftIntoShXAdd(), canCombineWithFMUL(), canCombineWithMUL(), llvm::TargetInstrInfo::getAccumulatorChain(), getMaddPatterns(), getMiscPatterns(), and getSHXADDPatterns().
◆ canFoldCopy()
◆ foldInlineAsmMemOperand() [1/2]
Definition at line 662 of file TargetInstrInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::MachineInstr::addMemOperand(), llvm::AnalyzeVirtRegInBundle(), assert(), llvm::InlineAsm::Extra_MayLoad, llvm::InlineAsm::Extra_MayStore, foldInlineAsmMemOperand(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineInstr::getMF(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineInstr::getOperand(), MI, llvm::InlineAsm::MIOp_ExtraInfo, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, llvm::MachineMemOperand::MOStore, llvm::VirtRegInfo::Reads, llvm::MachineOperand::setImm(), TII, and llvm::VirtRegInfo::Writes.
◆ foldInlineAsmMemOperand() [2/2]
Definition at line 636 of file TargetInstrInfo.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, foldInlineAsmMemOperand(), llvm::InlineAsm::m, llvm::InlineAsm::Mem, MI, llvm::MachineOperand::setImm(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and TII.
Referenced by foldInlineAsmMemOperand(), foldInlineAsmMemOperand(), llvm::TargetInstrInfo::foldMemoryOperand(), and llvm::TargetInstrInfo::foldMemoryOperand().
◆ foldPatchpoint()
Definition at line 571 of file TargetInstrInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), assert(), llvm::MachineInstr::getNumOperands(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::getSubReg(), llvm::is_contained(), MI, llvm::report_fatal_error(), llvm::MachineInstr::tieOperands(), and TII.
Referenced by llvm::TargetInstrInfo::foldMemoryOperand(), and llvm::TargetInstrInfo::foldMemoryOperand().
◆ isAsmComment()
◆ mustSwapOperands()
◆ transferImplicitOperands()
transferImplicitOperands - MI is a pseudo-instruction, and the lowered replacement instructions immediately precede it.
Copy any implicit operands from MI to the replacement instruction.
Definition at line 855 of file TargetInstrInfo.cpp.
Referenced by llvm::TargetInstrInfo::lowerCopy().
◆ DisableHazardRecognizer
| cl::opt< bool > DisableHazardRecognizer("disable-sched-hazard", cl::Hidden, cl::init(false), cl::desc("Disable hazard detection during preRA scheduling")) ( "disable-sched-hazard" , cl::Hidden , cl::init(false) , cl::desc("Disable hazard detection during preRA scheduling") ) | static |
|---|
◆ EnableAccReassociation
◆ MaxAccumulatorWidth
◆ MinAccumulatorDepth
| cl::opt< unsigned int > MinAccumulatorDepth("acc-min-depth", cl::Hidden, cl::init(8), cl::desc("Minimum length of accumulator chains " "required for the optimization to kick in")) ( "acc-min-depth" , cl::Hidden , cl::init(8) , cl::desc("Minimum length of accumulator chains " "required for the optimization to kick in") ) | static |
|---|