LLVM  14.0.0git
Macros | Functions | Variables
MVELaneInterleavingPass.cpp File Reference
#include "ARM.h"
#include "ARMBaseInstrInfo.h"
#include "ARMSubtarget.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsARM.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <cassert>
Include dependency graph for MVELaneInterleavingPass.cpp:

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)
 

Variables

cl::opt< bool > EnableInterleave ("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 76 of file MVELaneInterleavingPass.cpp.

Function Documentation

◆ INITIALIZE_PASS()

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

Definition at line 107 of file MVELaneInterleavingPass.cpp.

◆ isProfitableToInterleave()

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

Definition at line 114 of file MVELaneInterleavingPass.cpp.

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

◆ tryInterleave()

static bool tryInterleave ( Instruction Start,
SmallPtrSetImpl< Instruction * > &  Visited 
)
static

Definition at line 153 of file MVELaneInterleavingPass.cpp.

Variable Documentation

◆ EnableInterleave

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