15 #ifndef LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H 16 #define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H 33 class MCSubtargetInfo;
39 unsigned Slots, Weight;
89 void setLanes(
unsigned l) { Lanes = l; }
90 void setLoad(
bool f =
true) { Load = f; }
91 void setStore(
bool f =
true) { Store = f; }
95 unsigned s,
MCInst const *
id);
117 MCInst const *Extender,
unsigned s)
118 : ID(id), Extender(Extender), Core(s), CVI(T, MCII, s, id) {}
158 void applySlotRestrictions();
159 void restrictSlot1AOK();
160 void restrictNoSlot1Store();
193 #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
LLVM_ATTRIBUTE_ALWAYS_INLINE iterator begin()
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.
MCInst const * getExtender() const
typename SuperClass::iterator iterator
static int reportError(const char *ProgName, Twine Msg)
std::pair< unsigned, unsigned > UnitsAndLanes
LLVM_ATTRIBUTE_ALWAYS_INLINE iterator end()
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