Go to the documentation of this file.
13 #ifndef LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCTARGETDESC_H
14 #define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCTARGETDESC_H
21 #define Hexagon_POINTER_SIZE 4
23 #define Hexagon_PointerSize (Hexagon_POINTER_SIZE)
24 #define Hexagon_PointerSize_Bits (Hexagon_POINTER_SIZE * 8)
25 #define Hexagon_WordSize Hexagon_PointerSize
26 #define Hexagon_WordSize_Bits Hexagon_PointerSize_Bits
30 #define HEXAGON_LRFP_SIZE 8
33 #define HEXAGON_INSTR_SIZE 4
36 #define HEXAGON_PACKET_SIZE 4
37 #define HEXAGON_MAX_PACKET_SIZE (HEXAGON_PACKET_SIZE * HEXAGON_INSTR_SIZE)
39 #define HEXAGON_PACKET_INNER_SIZE 2
40 #define HEXAGON_PACKET_OUTER_SIZE 3
43 #define HEXAGON_PRESHUFFLE_PACKET_SIZE (HEXAGON_PACKET_SIZE + 3)
46 #define HEXAGON_GOT_SYM_NAME "_GLOBAL_OFFSET_TABLE_"
56 class MCObjectTargetWriter;
58 class MCSubtargetInfo;
59 class MCTargetOptions;
71 namespace Hexagon_MC {
95 std::unique_ptr<MCObjectTargetWriter>
106 #define GET_REGINFO_ENUM
107 #include "HexagonGenRegisterInfo.inc"
111 #define GET_INSTRINFO_ENUM
112 #define GET_INSTRINFO_SCHED_ENUM
113 #include "HexagonGenInstrInfo.inc"
115 #define GET_SUBTARGETINFO_ENUM
116 #include "HexagonGenSubtargetInfo.inc"
118 #endif // LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCTARGETDESC_H
This is an optimization pass for GlobalISel generic memory operations.
unsigned HexagonConvertUnits(unsigned ItinUnits, unsigned *Lanes)
cl::opt< bool > HexagonDisableCompound
Context object for machine code objects.
Target - Wrapper for Target specific information.
unsigned GetELFFlags(const MCSubtargetInfo &STI)
Triple - Helper class for working with autoconf configuration names.
void addArchSubtarget(MCSubtargetInfo const *STI, StringRef FS)
Container class for subtarget features.
const MCSubtargetInfo * getArchSubtarget(MCSubtargetInfo const *STI)
Generic interface to target specific assembler backends.
cl::opt< bool > HexagonDisableDuplex
const char LLVMTargetMachineRef LLVMPassBuilderOptionsRef Options
llvm::ArrayRef< MCPhysReg > GetVectRegRev()
MCInstrInfo * createHexagonMCInstrInfo()
MCRegisterInfo * createHexagonMCRegisterInfo(StringRef TT)
unsigned HexagonGetLastSlot()
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
const InstrStage HexagonStages[]
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
unsigned const MachineRegisterInfo * MRI
Interface to description of machine instruction set.
MCCodeEmitter - Generic instruction encoding interface.
MCSubtargetInfo * createHexagonMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
Create a Hexagon MCSubtargetInfo instance.
MCCodeEmitter * createHexagonMCCodeEmitter(const MCInstrInfo &MCII, MCContext &MCT)
StringRef selectHexagonCPU(StringRef CPU)
FeatureBitset completeHVXFeatures(const FeatureBitset &FB)
MCAsmBackend * createHexagonAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
Generic base class for all target subtargets.
std::unique_ptr< MCObjectTargetWriter > createHexagonELFObjectWriter(uint8_t OSABI, StringRef CPU)