LLVM 22.0.0git
MVELaneInterleavingPass.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mve-laneinterleave"

Functions

 INITIALIZE_PASS (MVELaneInterleaving, DEBUG_TYPE, "MVE lane interleaving", false, false) Pass *llvm
static bool isProfitableToInterleave (SmallSetVector< Instruction *, 4 > &Exts, SmallSetVector< Instruction *, 4 > &Truncs)
static bool tryInterleave (Instruction *Start, SmallPtrSetImpl< Instruction * > &Visited)
static bool isAddReduction (Instruction &I)

Variables

static cl::opt< boolEnableInterleave ("enable-mve-interleave", cl::Hidden, cl::init(true), cl::desc("Enable interleave MVE vector operation lowering"))

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mve-laneinterleave"

Definition at line 71 of file MVELaneInterleavingPass.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( MVELaneInterleaving ,
DEBUG_TYPE ,
"MVE lane interleaving" ,
false ,
false  )

◆ isAddReduction()

bool isAddReduction ( Instruction & I)
static

Definition at line 392 of file MVELaneInterleavingPass.cpp.

References llvm::dyn_cast(), I, and II.

◆ isProfitableToInterleave()

bool isProfitableToInterleave ( SmallSetVector< Instruction *, 4 > & Exts,
SmallSetVector< Instruction *, 4 > & Truncs )
static

Definition at line 109 of file MVELaneInterleavingPass.cpp.

References llvm::cast(), llvm::dbgs(), E(), llvm::isa(), LLVM_DEBUG, and T.

Referenced by tryInterleave().

◆ tryInterleave()

Variable Documentation

◆ EnableInterleave

cl::opt< bool > EnableInterleave("enable-mve-interleave", cl::Hidden, cl::init(true), cl::desc("Enable interleave MVE vector operation lowering")) ( "enable-mve-interleave" ,
cl::Hidden ,
cl::init(true) ,
cl::desc("Enable interleave MVE vector operation lowering")  )
static