LLVM 20.0.0git
|
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/CodeGen/MachineCombinerPattern.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineScheduler.h"
#include "llvm/CodeGen/MachineTraceMetrics.h"
#include "llvm/CodeGen/PseudoSourceValue.h"
#include "llvm/CodeGen/ScoreboardHazardRecognizer.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSchedule.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCInstrItineraries.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
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 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 |
Definition at line 451 of file TargetInstrInfo.cpp.
References assert(), llvm::TargetRegisterClass::contains(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::TargetRegisterClass::hasSubClassEq(), llvm::Register::isPhysical(), llvm::Register::isVirtual(), MI, MRI, and TII.
Referenced by llvm::TargetInstrInfo::foldMemoryOperand().
|
static |
Definition at line 594 of file TargetInstrInfo.cpp.
References 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(), llvm::ArrayRef< T >::size(), TII, and llvm::VirtRegInfo::Writes.
|
static |
Definition at line 568 of file TargetInstrInfo.cpp.
References assert(), llvm::SmallVectorBase< Size_T >::empty(), F, foldInlineAsmMemOperand(), llvm::InlineAsm::m, llvm::InlineAsm::Mem, MI, llvm::MachineOperand::setImm(), llvm::SmallVectorBase< Size_T >::size(), and TII.
Referenced by foldInlineAsmMemOperand(), and llvm::TargetInstrInfo::foldMemoryOperand().
|
static |
Definition at line 503 of file TargetInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), assert(), llvm::MachineFunction::CreateMachineInstr(), 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().
Definition at line 82 of file TargetInstrInfo.cpp.
References llvm::StringRef::data(), llvm::MCAsmInfo::getCommentString(), and llvm::StringRef::size().
Referenced by llvm::TargetInstrInfo::getInlineAsmLength().
Definition at line 1045 of file TargetInstrInfo.cpp.
References llvm_unreachable, llvm::REASSOC_AX_BY, llvm::REASSOC_AX_YB, llvm::REASSOC_XA_BY, and llvm::REASSOC_XA_YB.
Referenced by llvm::TargetInstrInfo::reassociateOps().
|
static |
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 782 of file TargetInstrInfo.cpp.
Referenced by llvm::TargetInstrInfo::lowerCopy().
|
static |
Referenced by llvm::TargetInstrInfo::usePreRAHazardRecognizer().