LLVM 22.0.0git
|
#include "MCTargetDesc/HexagonMCCodeEmitter.h"
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonFixupKinds.h"
#include "MCTargetDesc/HexagonMCExpr.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixup.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <map>
#include <string>
#include <vector>
#include "HexagonGenMCCodeEmitter.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "mccodeemitter" |
#define | _ fixup_Invalid |
#define | P(x) |
Functions | |
STATISTIC (MCNumEmitted, "Number of MC instructions emitted") | |
static void | addFixup (SmallVectorImpl< MCFixup > &Fixups, uint32_t Offset, const MCExpr *Value, uint16_t Kind) |
static bool | RegisterMatches (MCRegister Consumer, MCRegister Producer, MCRegister Producer2) |
static void | raise_relocation_error (unsigned Width, unsigned Kind) |
static bool | isPCRel (unsigned Kind) |
Variables | |
static const unsigned | fixup_Invalid = ~0u |
static const std::map< unsigned, std::vector< unsigned > > | ExtFixups |
static const std::map< unsigned, std::vector< unsigned > > | StdFixups |
#define _ fixup_Invalid |
Definition at line 46 of file HexagonMCCodeEmitter.cpp.
Referenced by canFoldStoreIntoLibCallOutputPointers(), llvm::CtxProfAnalysis::collectIndirectCallPromotionList(), llvm::VPRecipeBuilder::collectScaledReductions(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::raw_socket_stream::createConnectedUnix(), llvm::ir2vec::Vocabulary::createDummyVocabForTest(), llvm::ListeningSocket::createUnix(), llvm::MCExpr::evaluateAsRelocatableImpl(), llvm::ModuleSummaryIndex::exportToDot(), llvm::MachO::RecordsSlice::findObjCIVar(), llvm::PGOContextualProfile::flatten(), llvm::PGOContextualProfile::flattenVirtCalls(), llvm::PGOCtxProfContext::getContainedGuids(), llvm::BasicAAResult::getModRefInfoMask(), llvm::dwarf::RegisterLocations::getRegisters(), inferInitializes(), llvm::PGOCtxProfContext::ingestAllContexts(), INITIALIZE_PASS(), llvm::MCAssembler::layout(), llvm::orc::LLJIT::LLJIT(), LLTToBId(), LLTToId(), llvm::orc::ExecutionSession::lookup(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), llvm::CombinerHelper::matchConstantFoldFMA(), matchUniformityAndLLT(), llvm::operator<<(), llvm::GCNTargetMachine::parseMachineFunctionInfo(), preorderVisit(), preorderVisitOneRoot(), llvm::promoteCallWithIfThenElse(), llvm::CtxProfAnalysis::run(), llvm::GCNDPPCombinePass::run(), llvm::LiveDebugVariablesAnalysis::run(), llvm::MachineCopyPropagationPass::run(), llvm::MachineCSEPass::run(), llvm::MachineLateInstrsCleanupPass::run(), llvm::PatchableFunctionPass::run(), llvm::PeepholeOptimizerPass::run(), llvm::PostRAMachineSinkingPass::run(), llvm::PostRASchedulerPass::run(), llvm::ReachingDefPrinterPass::run(), llvm::RegAllocFastPass::run(), llvm::RegisterCoalescerPass::run(), llvm::RemoveLoadsIntoFakeUsesPass::run(), llvm::ShrinkWrapPass::run(), llvm::SIFoldOperandsPass::run(), llvm::SILoadStoreOptimizerPass::run(), llvm::SILowerSGPRSpillsPass::run(), llvm::SIOptimizeVGPRLiveRangePass::run(), llvm::SIWholeQuadModePass::run(), llvm::TailDuplicatePassBase< DerivedT, PreRegAlloc >::run(), llvm::TwoAddressInstructionPass::run(), llvm::VirtRegRewriterPass::run(), RAGreedyPass::run(), llvm::simplifyLoopIVs(), SRAGlobal(), llvm::RISCVISAInfo::toFeatures(), llvm::orc::StaticLibraryDefinitionGenerator::tryToGenerate(), llvm::VPRecipeBuilder::updateBlockMaskCache(), llvm::VirtRegAuxInfo::weightCalcHelper(), llvm::memprof::RawMemProfReader::~RawMemProfReader(), and llvm::orc::SimpleLazyReexportsSpeculator::~SimpleLazyReexportsSpeculator().
#define DEBUG_TYPE "mccodeemitter" |
Definition at line 36 of file HexagonMCCodeEmitter.cpp.
#define P | ( | x | ) |
Definition at line 47 of file HexagonMCCodeEmitter.cpp.
|
static |
Definition at line 339 of file HexagonMCCodeEmitter.cpp.
References llvm::MCFixup::create(), llvm::Hexagon::fixup_Hexagon_32_PCREL, llvm::Hexagon::fixup_Hexagon_6_PCREL_X, llvm::Hexagon::fixup_Hexagon_B13_PCREL, llvm::Hexagon::fixup_Hexagon_B13_PCREL_X, llvm::Hexagon::fixup_Hexagon_B15_PCREL, llvm::Hexagon::fixup_Hexagon_B15_PCREL_X, llvm::Hexagon::fixup_Hexagon_B22_PCREL, llvm::Hexagon::fixup_Hexagon_B22_PCREL_X, llvm::Hexagon::fixup_Hexagon_B32_PCREL_X, llvm::Hexagon::fixup_Hexagon_B7_PCREL, llvm::Hexagon::fixup_Hexagon_B7_PCREL_X, llvm::Hexagon::fixup_Hexagon_B9_PCREL, llvm::Hexagon::fixup_Hexagon_B9_PCREL_X, llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL, llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL_X, llvm::Hexagon::fixup_Hexagon_GD_PLT_B32_PCREL_X, llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL, llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL_X, llvm::Hexagon::fixup_Hexagon_LD_PLT_B32_PCREL_X, llvm::Hexagon::fixup_Hexagon_PLT_B22_PCREL, and llvm::Offset.
Definition at line 579 of file HexagonMCCodeEmitter.cpp.
References llvm::Hexagon::fixup_Hexagon_32_PCREL, llvm::Hexagon::fixup_Hexagon_6_PCREL_X, llvm::Hexagon::fixup_Hexagon_B13_PCREL, llvm::Hexagon::fixup_Hexagon_B13_PCREL_X, llvm::Hexagon::fixup_Hexagon_B15_PCREL, llvm::Hexagon::fixup_Hexagon_B15_PCREL_X, llvm::Hexagon::fixup_Hexagon_B22_PCREL, llvm::Hexagon::fixup_Hexagon_B22_PCREL_X, llvm::Hexagon::fixup_Hexagon_B32_PCREL_X, llvm::Hexagon::fixup_Hexagon_B7_PCREL, llvm::Hexagon::fixup_Hexagon_B7_PCREL_X, llvm::Hexagon::fixup_Hexagon_B9_PCREL, llvm::Hexagon::fixup_Hexagon_B9_PCREL_X, llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL, llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL_X, llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL, llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL_X, and llvm::Hexagon::fixup_Hexagon_PLT_B22_PCREL.
Definition at line 478 of file HexagonMCCodeEmitter.cpp.
References llvm::report_fatal_error(), and llvm::raw_string_ostream::str().
|
static |
Definition at line 419 of file HexagonMCCodeEmitter.cpp.
References llvm::HexagonMCInstrInfo::IsSingleConsumerRefPairProducer().
Referenced by llvm::HexagonMCCodeEmitter::getMachineOpValue().
STATISTIC | ( | MCNumEmitted | , |
"Number of MC instructions emitted" | ) |
Definition at line 48 of file HexagonMCCodeEmitter.cpp.
Definition at line 43 of file HexagonMCCodeEmitter.cpp.
Definition at line 172 of file HexagonMCCodeEmitter.cpp.