LLVM 20.0.0git
|
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "HexagonDepArch.h"
#include "HexagonTargetStreamer.h"
#include "MCTargetDesc/HexagonInstPrinter.h"
#include "MCTargetDesc/HexagonMCAsmInfo.h"
#include "MCTargetDesc/HexagonMCELFStreamer.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "TargetInfo/HexagonTargetInfo.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCELFStreamer.h"
#include "llvm/MC/MCInstrAnalysis.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/HexagonAttributes.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
#include <mutex>
#include <new>
#include <string>
#include <unordered_map>
#include "HexagonGenInstrInfo.inc"
#include "HexagonGenSubtargetInfo.inc"
#include "HexagonGenRegisterInfo.inc"
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::HexagonFUnits |
Macros | |
#define | GET_INSTRINFO_MC_DESC |
#define | ENABLE_INSTR_PREDICATE_VERIFIER |
#define | GET_SUBTARGETINFO_MC_DESC |
#define | GET_REGINFO_MC_DESC |
Variables | |
cl::opt< Hexagon::ArchEnum > | EnableHVX ("mhvx", cl::desc("Enable Hexagon Vector eXtensions"), cl::values(clEnumValN(Hexagon::ArchEnum::V60, "v60", "Build for HVX v60"), clEnumValN(Hexagon::ArchEnum::V62, "v62", "Build for HVX v62"), clEnumValN(Hexagon::ArchEnum::V65, "v65", "Build for HVX v65"), clEnumValN(Hexagon::ArchEnum::V66, "v66", "Build for HVX v66"), clEnumValN(Hexagon::ArchEnum::V67, "v67", "Build for HVX v67"), clEnumValN(Hexagon::ArchEnum::V68, "v68", "Build for HVX v68"), clEnumValN(Hexagon::ArchEnum::V69, "v69", "Build for HVX v69"), clEnumValN(Hexagon::ArchEnum::V71, "v71", "Build for HVX v71"), clEnumValN(Hexagon::ArchEnum::V73, "v73", "Build for HVX v73"), clEnumValN(Hexagon::ArchEnum::Generic, "", "")), cl::init(Hexagon::ArchEnum::NoArch), cl::ValueOptional) |
static cl::opt< bool > | DisableHVX ("mno-hvx", cl::Hidden, cl::desc("Disable Hexagon Vector eXtensions")) |
static cl::opt< bool > | EnableHvxIeeeFp ("mhvx-ieee-fp", cl::Hidden, cl::desc("Enable HVX IEEE floating point extensions")) |
static cl::opt< bool > | EnableHexagonCabac ("mcabac", cl::desc("tbd"), cl::init(false)) |
static StringRef | DefaultArch = "hexagonv60" |
#define ENABLE_INSTR_PREDICATE_VERIFIER |
Definition at line 50 of file HexagonMCTargetDesc.cpp.
#define GET_INSTRINFO_MC_DESC |
Definition at line 49 of file HexagonMCTargetDesc.cpp.
#define GET_REGINFO_MC_DESC |
Definition at line 56 of file HexagonMCTargetDesc.cpp.
#define GET_SUBTARGETINFO_MC_DESC |
Definition at line 53 of file HexagonMCTargetDesc.cpp.
|
static |
Definition at line 405 of file HexagonMCTargetDesc.cpp.
References F, and llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::Hexagon_MC::createHexagonMCSubtargetInfo().
|
static |
Definition at line 400 of file HexagonMCTargetDesc.cpp.
References F, llvm::MCSubtargetInfo::hasFeature(), and llvm::MCSubtargetInfo::ToggleFeature().
|
static |
Definition at line 352 of file HexagonMCTargetDesc.cpp.
References llvm::MCAsmInfo::addInitialFrameState(), llvm::MCCFIInstruction::cfiDefCfa(), and MRI.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 365 of file HexagonMCTargetDesc.cpp.
References MRI.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 708 of file HexagonMCTargetDesc.cpp.
References Info.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 345 of file HexagonMCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 396 of file HexagonMCTargetDesc.cpp.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 392 of file HexagonMCTargetDesc.cpp.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 377 of file HexagonMCTargetDesc.cpp.
References OS.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 383 of file HexagonMCTargetDesc.cpp.
References llvm::createHexagonELFStreamer(), and Emitter.
Referenced by LLVMInitializeHexagonTargetMC().
|
static |
Definition at line 124 of file HexagonMCTargetDesc.cpp.
Referenced by llvm::Hexagon_MC::selectHexagonCPU().
Definition at line 474 of file HexagonMCTargetDesc.cpp.
References llvm::Hexagon::getCpu().
Referenced by llvm::Hexagon_MC::createHexagonMCSubtargetInfo().
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeHexagonTargetMC | ( | ) |
Definition at line 713 of file HexagonMCTargetDesc.cpp.
References llvm::createHexagonAsmBackend(), createHexagonMCAsmInfo(), llvm::createHexagonMCCodeEmitter(), createHexagonMCInstPrinter(), createHexagonMCInstrAnalysis(), llvm::createHexagonMCInstrInfo(), createHexagonMCRegisterInfo(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), createHexagonNullTargetStreamer(), createHexagonObjectTargetStreamer(), createMCAsmTargetStreamer(), createMCStreamer(), llvm::getTheHexagonTarget(), llvm::TargetRegistry::RegisterAsmTargetStreamer(), llvm::TargetRegistry::RegisterELFStreamer(), llvm::TargetRegistry::RegisterMCAsmBackend(), llvm::TargetRegistry::RegisterMCCodeEmitter(), llvm::TargetRegistry::RegisterMCInstPrinter(), llvm::TargetRegistry::RegisterMCInstrAnalysis(), llvm::TargetRegistry::RegisterMCInstrInfo(), llvm::TargetRegistry::RegisterMCRegInfo(), llvm::TargetRegistry::RegisterMCSubtargetInfo(), llvm::TargetRegistry::RegisterNullTargetStreamer(), llvm::TargetRegistry::RegisterObjectTargetStreamer(), and X.
|
static |
Definition at line 122 of file HexagonMCTargetDesc.cpp.
Referenced by llvm::Hexagon_MC::selectHexagonCPU().
|
static |
|
static |
cl::opt< Hexagon::ArchEnum > EnableHVX("mhvx", cl::desc("Enable Hexagon Vector eXtensions"), cl::values(clEnumValN(Hexagon::ArchEnum::V60, "v60", "Build for HVX v60"), clEnumValN(Hexagon::ArchEnum::V62, "v62", "Build for HVX v62"), clEnumValN(Hexagon::ArchEnum::V65, "v65", "Build for HVX v65"), clEnumValN(Hexagon::ArchEnum::V66, "v66", "Build for HVX v66"), clEnumValN(Hexagon::ArchEnum::V67, "v67", "Build for HVX v67"), clEnumValN(Hexagon::ArchEnum::V68, "v68", "Build for HVX v68"), clEnumValN(Hexagon::ArchEnum::V69, "v69", "Build for HVX v69"), clEnumValN(Hexagon::ArchEnum::V71, "v71", "Build for HVX v71"), clEnumValN(Hexagon::ArchEnum::V73, "v73", "Build for HVX v73"), clEnumValN(Hexagon::ArchEnum::Generic, "", "")), cl::init(Hexagon::ArchEnum::NoArch), cl::ValueOptional) | ( | "mhvx" | , |
cl::desc("Enable Hexagon Vector eXtensions") | , | ||
cl::values(clEnumValN(Hexagon::ArchEnum::V60, "v60", "Build for HVX v60"), clEnumValN(Hexagon::ArchEnum::V62, "v62", "Build for HVX v62"), clEnumValN(Hexagon::ArchEnum::V65, "v65", "Build for HVX v65"), clEnumValN(Hexagon::ArchEnum::V66, "v66", "Build for HVX v66"), clEnumValN(Hexagon::ArchEnum::V67, "v67", "Build for HVX v67"), clEnumValN(Hexagon::ArchEnum::V68, "v68", "Build for HVX v68"), clEnumValN(Hexagon::ArchEnum::V69, "v69", "Build for HVX v69"), clEnumValN(Hexagon::ArchEnum::V71, "v71", "Build for HVX v71"), clEnumValN(Hexagon::ArchEnum::V73, "v73", "Build for HVX v73"), clEnumValN(Hexagon::ArchEnum::Generic, "", "")) | , | ||
cl::init(Hexagon::ArchEnum::NoArch) | , | ||
cl::ValueOptional | |||
) |