14 #ifndef LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H 15 #define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H 32 class MCSubtargetInfo;
38 unsigned Slots, Weight;
88 void setLanes(
unsigned l) { Lanes = l; }
89 void setLoad(
bool f =
true) { Load = f; }
90 void setStore(
bool f =
true) { Store = f; }
94 unsigned s,
MCInst const *
id);
116 MCInst const *Extender,
unsigned s)
117 : ID(id), Extender(Extender), Core(s), CVI(T, MCII, s, id) {}
157 void applySlotRestrictions();
158 void restrictSlot1AOK();
159 void restrictNoSlot1Store();
192 #endif // LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H
static bool lessCore(const HexagonInstr &A, const HexagonInstr &B)
void setUnits(unsigned s)
This class represents lattice values for constants.
HexagonResource(unsigned s)
unsigned getLanes() const
unsigned setWeight(unsigned s)
static bool lessWeight(const HexagonResource &A, const HexagonResource &B)
void append(SmallVectorImpl< char > &path, const Twine &a, const Twine &b="", const Twine &c="", const Twine &d="")
Append to path.
HexagonInstr(HexagonCVIResource::TypeUnitsAndLanes *T, MCInstrInfo const &MCII, MCInst const *id, MCInst const *Extender, unsigned s)
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Context object for machine code objects.
HexagonPacket::iterator iterator
Instances of this class represent a single low-level machine instruction.
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
unsigned getWeight() const
MCSubtargetInfo const & STI
Interface to description of machine instruction set.
int64_t const memReorderDisabledMask
bool isMemReorderDisabled() const
unsigned countPopulation(T Value)
Count the number of set bits in a value.
static Error reportError(StringRef Message)
MCInst const * getExtender() const
typename SuperClass::iterator iterator
std::pair< unsigned, unsigned > UnitsAndLanes
static bool lessUnits(const HexagonResource &A, const HexagonResource &B)
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
Generic base class for all target subtargets.
unsigned getUnits() const
MCInst const & getDesc() const
#define HEXAGON_PACKET_SIZE
std::vector< std::pair< SMLoc, std::string > > AppliedRestrictions
static bool lessCVI(const HexagonInstr &A, const HexagonInstr &B)
StringRef - Represent a constant reference to a string, i.e.
Represents a location in source code.
bool operator<(const HexagonInstr &B) const