|
LLVM 22.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/IR/BasicBlock.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/Type.h"#include "llvm/IR/Value.h"#include "llvm/InitializePasses.h"#include "llvm/Pass.h"#include "llvm/Support/Casting.h"#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) |
| static bool | isAddReduction (Instruction &I) |
Variables | |
| static 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 71 of file MVELaneInterleavingPass.cpp.
| INITIALIZE_PASS | ( | MVELaneInterleaving | , |
| DEBUG_TYPE | , | ||
| "MVE lane interleaving" | , | ||
| false | , | ||
| false | ) |
Definition at line 102 of file MVELaneInterleavingPass.cpp.
References llvm::createMVELaneInterleavingPass(), and DEBUG_TYPE.
|
static |
Definition at line 392 of file MVELaneInterleavingPass.cpp.
References llvm::dyn_cast(), I, and II.
|
static |
Definition at line 109 of file MVELaneInterleavingPass.cpp.
References llvm::cast(), llvm::dbgs(), E(), llvm::isa(), LLVM_DEBUG, and T.
Referenced by tryInterleave().
|
static |
Definition at line 148 of file MVELaneInterleavingPass.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::all_of(), assert(), llvm::sampleprof::Base, llvm::cast(), llvm::SetVector< T, Vector, Set, N >::count(), llvm::dbgs(), llvm::dyn_cast(), llvm::SetVector< T, Vector, Set, N >::empty(), getType(), I, II, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isa(), isProfitableToInterleave(), LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().