LLVM 20.0.0git
Classes | Macros | Typedefs | Functions | Variables
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()

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

◆ makeAllBits()

static unsigned makeAllBits ( unsigned  startBit,
unsigned  Lanes 
)
static

Definition at line 141 of file HexagonShuffler.cpp.

Referenced by checkHVXPipes().

◆ SlotMaskToText()

static std::string SlotMaskToText ( unsigned  SlotMask)
static

Variable Documentation

◆ Slot0Mask

const unsigned Slot0Mask = 1 << 0
static

Definition at line 189 of file HexagonShuffler.cpp.

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

◆ Slot1Mask

const unsigned Slot1Mask = 1 << 1
static

◆ Slot3Mask

const unsigned Slot3Mask = 1 << 3
static

Definition at line 191 of file HexagonShuffler.cpp.

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

◆ slotSingleLoad

const unsigned slotSingleLoad = Slot0Mask
static

◆ slotSingleStore

const unsigned slotSingleStore = Slot0Mask
static