LLVM 22.0.0git
HexagonShuffler.cpp File Reference
#include "MCTargetDesc/HexagonShuffler.h"
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <optional>
#include <utility>

Go to the source code of this file.

Classes

struct  CVIUnits

Macros

#define DEBUG_TYPE   "hexagon-shuffle"

Typedefs

using HVXInstsT = SmallVector<struct CVIUnits, 8>

Functions

static unsigned makeAllBits (unsigned startBit, unsigned Lanes)
static bool checkHVXPipes (const HVXInstsT &hvxInsts, unsigned startIdx, unsigned usedUnits)
static std::string SlotMaskToText (unsigned SlotMask)

Variables

static const unsigned Slot0Mask = 1 << 0
static const unsigned Slot1Mask = 1 << 1
static const unsigned Slot3Mask = 1 << 3
static const unsigned slotSingleLoad = Slot0Mask
static const unsigned slotSingleStore = Slot0Mask

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hexagon-shuffle"

Definition at line 34 of file HexagonShuffler.cpp.

Typedef Documentation

◆ HVXInstsT

using HVXInstsT = SmallVector<struct CVIUnits, 8>

Definition at line 139 of file HexagonShuffler.cpp.

Function Documentation

◆ checkHVXPipes()

bool checkHVXPipes ( const HVXInstsT & hvxInsts,
unsigned startIdx,
unsigned usedUnits )
static

◆ makeAllBits()

unsigned makeAllBits ( unsigned startBit,
unsigned Lanes )
static

Definition at line 141 of file HexagonShuffler.cpp.

Referenced by checkHVXPipes().

◆ SlotMaskToText()

Variable Documentation

◆ Slot0Mask

const unsigned Slot0Mask = 1 << 0
static

Definition at line 189 of file HexagonShuffler.cpp.

Referenced by llvm::HexagonShuffler::restrictStoreLoadOrder().

◆ Slot1Mask

◆ Slot3Mask

const unsigned Slot3Mask = 1 << 3
static

Definition at line 191 of file HexagonShuffler.cpp.

Referenced by llvm::HexagonShuffler::restrictPreferSlot3().

◆ slotSingleLoad

◆ slotSingleStore