diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h')
| -rw-r--r-- | llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h index dbe85b434dc..59658999d24 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h @@ -1,4 +1,4 @@ -//=-- HexagonMCShuffler.h ---------------------------------------------------=// +//===- HexagonMCShuffler.h --------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -12,13 +12,20 @@ // //===----------------------------------------------------------------------===// -#ifndef HEXAGONMCSHUFFLER_H -#define HEXAGONMCSHUFFLER_H +#ifndef LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCSHUFFLER_H +#define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCSHUFFLER_H +#include "MCTargetDesc/HexagonMCInstrInfo.h" #include "MCTargetDesc/HexagonShuffler.h" +#include "llvm/ADT/SmallVector.h" namespace llvm { + +class MCContext; class MCInst; +class MCInstrInfo; +class MCSubtargetInfo; + // Insn bundle shuffler. class HexagonMCShuffler : public HexagonShuffler { public: @@ -26,16 +33,18 @@ public: MCSubtargetInfo const &STI, MCInst &MCB) : HexagonShuffler(Context, Fatal, MCII, STI) { init(MCB); - }; + } + HexagonMCShuffler(MCContext &Context, bool Fatal, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, MCInst const &AddMI, bool InsertAtFront) : HexagonShuffler(Context, Fatal, MCII, STI) { init(MCB, AddMI, InsertAtFront); - }; + } // Copy reordered bundle to another. void copyTo(MCInst &MCB); + // Reorder and copy result to another. bool reshuffleTo(MCInst &MCB); @@ -46,13 +55,14 @@ private: // Invocation of the shuffler. bool HexagonMCShuffle(MCContext &Context, bool Fatal, MCInstrInfo const &MCII, - MCSubtargetInfo const &STI, MCInst &); + MCSubtargetInfo const &STI, MCInst &MCB); bool HexagonMCShuffle(MCContext &Context, MCInstrInfo const &MCII, - MCSubtargetInfo const &STI, MCInst &, MCInst const &, - int); + MCSubtargetInfo const &STI, MCInst &MCB, + MCInst const &AddMI, int fixupCount); bool HexagonMCShuffle(MCContext &Context, MCInstrInfo const &MCII, - MCSubtargetInfo const &STI, MCInst &, - SmallVector<DuplexCandidate, 8>); -} // namespace llvm + MCSubtargetInfo const &STI, MCInst &MCB, + SmallVector<DuplexCandidate, 8> possibleDuplexes); + +} // end namespace llvm -#endif // HEXAGONMCSHUFFLER_H +#endif // LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONMCSHUFFLER_H |

