LLVM  8.0.1
Macros | Functions | Variables
HexagonMCTargetDesc.cpp File Reference
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "Hexagon.h"
#include "HexagonDepArch.h"
#include "HexagonTargetStreamer.h"
#include "MCTargetDesc/HexagonInstPrinter.h"
#include "MCTargetDesc/HexagonMCAsmInfo.h"
#include "MCTargetDesc/HexagonMCELFStreamer.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/MC/MCELFStreamer.h"
#include "llvm/MC/MCInstrAnalysis.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
#include <new>
#include <string>
#include "HexagonGenInstrInfo.inc"
#include "HexagonGenSubtargetInfo.inc"
#include "HexagonGenRegisterInfo.inc"
Include dependency graph for HexagonMCTargetDesc.cpp:

Go to the source code of this file.

Macros

#define GET_INSTRINFO_MC_DESC
 
#define GET_SUBTARGETINFO_MC_DESC
 
#define GET_REGINFO_MC_DESC
 

Functions

static StringRef HexagonGetArchVariant ()
 
static MCRegisterInfocreateHexagonMCRegisterInfo (const Triple &TT)
 
static MCAsmInfocreateHexagonMCAsmInfo (const MCRegisterInfo &MRI, const Triple &TT)
 
static MCInstPrintercreateHexagonMCInstPrinter (const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
 
static MCTargetStreamercreateMCAsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *IP, bool IsVerboseAsm)
 
static MCStreamercreateMCStreamer (Triple const &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll)
 
static MCTargetStreamercreateHexagonObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
 
static void LLVM_ATTRIBUTE_UNUSED clearFeature (MCSubtargetInfo *STI, uint64_t F)
 
static bool LLVM_ATTRIBUTE_UNUSED checkFeature (MCSubtargetInfo *STI, uint64_t F)
 
static bool isCPUValid (std::string CPU)
 
static MCInstrAnalysiscreateHexagonMCInstrAnalysis (const MCInstrInfo *Info)
 
void LLVMInitializeHexagonTargetMC ()
 

Variables

cl::opt< Hexagon::ArchEnumEnableHVX ("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::Generic, "", "")), cl::init(Hexagon::ArchEnum::NoArch), cl::ValueOptional)
 
static cl::opt< boolDisableHVX ("mno-hvx", cl::Hidden, cl::desc("Disable Hexagon Vector eXtensions"))
 
static StringRef DefaultArch = "hexagonv60"
 

Macro Definition Documentation

◆ GET_INSTRINFO_MC_DESC

#define GET_INSTRINFO_MC_DESC

Definition at line 46 of file HexagonMCTargetDesc.cpp.

◆ GET_REGINFO_MC_DESC

#define GET_REGINFO_MC_DESC

Definition at line 52 of file HexagonMCTargetDesc.cpp.

◆ GET_SUBTARGETINFO_MC_DESC

#define GET_SUBTARGETINFO_MC_DESC

Definition at line 49 of file HexagonMCTargetDesc.cpp.

Function Documentation

◆ checkFeature()

static bool LLVM_ATTRIBUTE_UNUSED checkFeature ( MCSubtargetInfo STI,
uint64_t  F 
)
static

◆ clearFeature()

static void LLVM_ATTRIBUTE_UNUSED clearFeature ( MCSubtargetInfo STI,
uint64_t  F 
)
static

◆ createHexagonMCAsmInfo()

static MCAsmInfo* createHexagonMCAsmInfo ( const MCRegisterInfo MRI,
const Triple TT 
)
static

◆ createHexagonMCInstPrinter()

static MCInstPrinter* createHexagonMCInstPrinter ( const Triple T,
unsigned  SyntaxVariant,
const MCAsmInfo MAI,
const MCInstrInfo MII,
const MCRegisterInfo MRI 
)
static

Definition at line 235 of file HexagonMCTargetDesc.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createHexagonMCInstrAnalysis()

static MCInstrAnalysis* createHexagonMCInstrAnalysis ( const MCInstrInfo Info)
static

Definition at line 455 of file HexagonMCTargetDesc.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createHexagonMCRegisterInfo()

static MCRegisterInfo* createHexagonMCRegisterInfo ( const Triple TT)
static

Definition at line 216 of file HexagonMCTargetDesc.cpp.

References X.

◆ createHexagonObjectTargetStreamer()

static MCTargetStreamer* createHexagonObjectTargetStreamer ( MCStreamer S,
const MCSubtargetInfo STI 
)
static

Definition at line 263 of file HexagonMCTargetDesc.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createMCAsmTargetStreamer()

static MCTargetStreamer* createMCAsmTargetStreamer ( MCStreamer S,
formatted_raw_ostream OS,
MCInstPrinter IP,
bool  IsVerboseAsm 
)
static

Definition at line 248 of file HexagonMCTargetDesc.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createMCStreamer()

static MCStreamer* createMCStreamer ( Triple const T,
MCContext Context,
std::unique_ptr< MCAsmBackend > &&  MAB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  Emitter,
bool  RelaxAll 
)
static

Definition at line 253 of file HexagonMCTargetDesc.cpp.

References llvm::createHexagonELFStreamer().

Referenced by LLVMInitializeHexagonTargetMC().

◆ HexagonGetArchVariant()

static StringRef HexagonGetArchVariant ( )
static

Definition at line 98 of file HexagonMCTargetDesc.cpp.

Referenced by llvm::Hexagon_MC::selectHexagonCPU().

◆ isCPUValid()

static bool isCPUValid ( std::string  CPU)
static

◆ LLVMInitializeHexagonTargetMC()

void LLVMInitializeHexagonTargetMC ( )

Variable Documentation

◆ DefaultArch

StringRef DefaultArch = "hexagonv60"
static

Definition at line 96 of file HexagonMCTargetDesc.cpp.

◆ DisableHVX

cl::opt<bool> DisableHVX("mno-hvx", cl::Hidden, cl::desc("Disable Hexagon Vector eXtensions"))
static

◆ EnableHVX

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::Generic, "", "")), cl::init(Hexagon::ArchEnum::NoArch), cl::ValueOptional)

Referenced by checkFeature().