21 #define DEBUG_TYPE "hexagon-subtarget"
23 #define GET_SUBTARGETINFO_CTOR
24 #define GET_SUBTARGETINFO_TARGET_DESC
25 #include "HexagonGenSubtargetInfo.inc"
29 cl::desc(
"Enable Hexagon V3 instructions."));
33 "enable-hexagon-memops",
36 "Generate V4 MEMOP in code generation for Hexagon target"));
40 "disable-hexagon-memops",
43 "Do not generate V4 MEMOP in code generation for Hexagon target"));
47 "enable-hexagon-ieee-rnd-near",
49 cl::desc(
"Generate non-chopped conversion from fp to int."));
53 cl::desc(
"Disable Hexagon MI Scheduling"));
58 if (CPUString.empty())
59 CPUString =
"hexagonv4";
61 if (CPUString ==
"hexagonv4") {
63 }
else if (CPUString ==
"hexagonv5") {
76 InstrInfo(initializeSubtargetDependencies(CPU, FS)), TLInfo(TM, *this),
80 InstrItins = getInstrItineraryForCPU(CPUString);
91 ModeIEEERndNear =
true;
93 ModeIEEERndNear =
false;
97 void HexagonSubtarget::anchor() {}
static cl::opt< bool > EnableV3("enable-hexagon-v3", cl::Hidden, cl::desc("Enable Hexagon V3 instructions."))
static cl::opt< bool > EnableIEEERndNear("enable-hexagon-ieee-rnd-near", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Generate non-chopped conversion from fp to int."))
HexagonSubtarget & initializeSubtargetDependencies(StringRef CPU, StringRef FS)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
HexagonSubtarget(const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
static cl::opt< bool > DisableMemOps("disable-hexagon-memops", cl::Hidden, cl::ZeroOrMore, cl::ValueDisallowed, cl::init(false), cl::desc("Do not generate V4 MEMOP in code generation for Hexagon target"))
static cl::opt< bool > EnableMemOps("enable-hexagon-memops", cl::Hidden, cl::ZeroOrMore, cl::ValueDisallowed, cl::init(true), cl::desc("Generate V4 MEMOP in code generation for Hexagon target"))
initializer< Ty > init(const Ty &Val)
HexagonArchEnum HexagonArchVersion
Triple - Helper class for working with autoconf configuration names.
bool enableMachineScheduler() const override
void ParseSubtargetFeatures(StringRef CPU, StringRef FS)
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
static cl::opt< bool > DisableHexagonMISched("disable-hexagon-misched", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Disable Hexagon MI Scheduling"))