LLVM
15.0.0git
|
#include "ARM.h"
#include "ARMBaseInstrInfo.h"
#include "ARMSubtarget.h"
#include "llvm/ADT/SetVector.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>
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")) |
#define DEBUG_TYPE "mve-laneinterleave" |
Definition at line 77 of file MVELaneInterleavingPass.cpp.
INITIALIZE_PASS | ( | MVELaneInterleaving | , |
DEBUG_TYPE | , | ||
"MVE lane interleaving" | , | ||
false | , | ||
false | |||
) |
Definition at line 108 of file MVELaneInterleavingPass.cpp.
|
static |
Definition at line 115 of file MVELaneInterleavingPass.cpp.
References llvm::dbgs(), E, LLVM_DEBUG, and Mul.
Referenced by tryInterleave().
|
static |
Definition at line 154 of file MVELaneInterleavingPass.cpp.
References llvm::abs(), llvm::MCID::Add, assert(), llvm::sampleprof::Base, Builder, llvm::MCID::Call, ceil, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::count(), llvm::dbgs(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::empty(), llvm::MipsISD::Ext, floor, llvm::IntrinsicInst::getIntrinsicID(), i, I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), isProfitableToInterleave(), LLVM_DEBUG, LLVM_FALLTHROUGH, llvm::maxnum(), llvm::minnum(), Mul, round(), llvm::MCID::Select, llvm::APIntOps::smax(), llvm::APIntOps::smin(), trunc, llvm::APIntOps::umax(), and llvm::APIntOps::umin().