Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/Hexagon/Hexagon.td
Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | def FeatureNoreturnStackElim: SubtargetFeature<"noreturn-stack-elim", | ||||
"Eliminate stack allocation in a noreturn function when possible">; | "Eliminate stack allocation in a noreturn function when possible">; | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// Hexagon Instruction Predicate Definitions. | // Hexagon Instruction Predicate Definitions. | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
def UseMEMOPS : Predicate<"HST->useMemops()">; | def UseMEMOPS : Predicate<"HST->useMemops()">; | ||||
def UseHVX64B : Predicate<"HST->useHVX64BOps()">, | def UseHVX64B : Predicate<"HST->useHVX64BOps()">, | ||||
AssemblerPredicate<"ExtensionHVX64B">; | AssemblerPredicate<(all_of ExtensionHVX64B)>; | ||||
def UseHVX128B : Predicate<"HST->useHVX128BOps()">, | def UseHVX128B : Predicate<"HST->useHVX128BOps()">, | ||||
AssemblerPredicate<"ExtensionHVX128B">; | AssemblerPredicate<(all_of ExtensionHVX128B)>; | ||||
def UseHVX : Predicate<"HST->useHVXOps()">, | def UseHVX : Predicate<"HST->useHVXOps()">, | ||||
AssemblerPredicate<"ExtensionHVXV60">; | AssemblerPredicate<(all_of ExtensionHVXV60)>; | ||||
def UseHVXV60 : Predicate<"HST->useHVXV60Ops()">, | def UseHVXV60 : Predicate<"HST->useHVXV60Ops()">, | ||||
AssemblerPredicate<"ExtensionHVXV60">; | AssemblerPredicate<(all_of ExtensionHVXV60)>; | ||||
def UseHVXV62 : Predicate<"HST->useHVXV62Ops()">, | def UseHVXV62 : Predicate<"HST->useHVXV62Ops()">, | ||||
AssemblerPredicate<"ExtensionHVXV62">; | AssemblerPredicate<(all_of ExtensionHVXV62)>; | ||||
def UseHVXV65 : Predicate<"HST->useHVXV65Ops()">, | def UseHVXV65 : Predicate<"HST->useHVXV65Ops()">, | ||||
AssemblerPredicate<"ExtensionHVXV65">; | AssemblerPredicate<(all_of ExtensionHVXV65)>; | ||||
def UseHVXV66 : Predicate<"HST->useHVXV66Ops()">, | def UseHVXV66 : Predicate<"HST->useHVXV66Ops()">, | ||||
AssemblerPredicate<"ExtensionHVXV66">; | AssemblerPredicate<(all_of ExtensionHVXV66)>; | ||||
def UseHVXV67 : Predicate<"HST->useHVXV67Ops()">, | def UseHVXV67 : Predicate<"HST->useHVXV67Ops()">, | ||||
AssemblerPredicate<"ExtensionHVXV67">; | AssemblerPredicate<(all_of ExtensionHVXV67)>; | ||||
def UseAudio : Predicate<"HST->useAudioOps()">, | def UseAudio : Predicate<"HST->useAudioOps()">, | ||||
AssemblerPredicate<"ExtensionAudio">; | AssemblerPredicate<(all_of ExtensionAudio)>; | ||||
def UseZReg : Predicate<"HST->useZRegOps()">, | def UseZReg : Predicate<"HST->useZRegOps()">, | ||||
AssemblerPredicate<"ExtensionZReg">; | AssemblerPredicate<(all_of ExtensionZReg)>; | ||||
def UseCompound : Predicate<"HST->useCompound()">; | def UseCompound : Predicate<"HST->useCompound()">; | ||||
def HasPreV65 : Predicate<"HST->hasPreV65()">, | def HasPreV65 : Predicate<"HST->hasPreV65()">, | ||||
AssemblerPredicate<"FeaturePreV65">; | AssemblerPredicate<(all_of FeaturePreV65)>; | ||||
def HasMemNoShuf : Predicate<"HST->hasMemNoShuf()">, | def HasMemNoShuf : Predicate<"HST->hasMemNoShuf()">, | ||||
AssemblerPredicate<"FeatureMemNoShuf">; | AssemblerPredicate<(all_of FeatureMemNoShuf)>; | ||||
def UseUnsafeMath : Predicate<"HST->useUnsafeMath()">; | def UseUnsafeMath : Predicate<"HST->useUnsafeMath()">; | ||||
def NotOptTinyCore : Predicate<"!HST->isTinyCore() ||" | def NotOptTinyCore : Predicate<"!HST->isTinyCore() ||" | ||||
"MF->getFunction().hasOptSize()"> { | "MF->getFunction().hasOptSize()"> { | ||||
let RecomputePerFunction = 1; | let RecomputePerFunction = 1; | ||||
} | } | ||||
def UseSmallData : Predicate<"HST->useSmallData()">; | def UseSmallData : Predicate<"HST->useSmallData()">; | ||||
def Hvx64: HwMode<"+hvx-length64b">; | def Hvx64: HwMode<"+hvx-length64b">; | ||||
▲ Show 20 Lines • Show All 306 Lines • Show Last 20 Lines |