LLVM 20.0.0git
|
#include "ARM.h"
#include "ARMBaseInstrInfo.h"
#include "ARMSubtarget.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/InitializePasses.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/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/IRBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Transforms/Utils/Local.h"
#include <algorithm>
#include <cassert>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "arm-mve-gather-scatter-lowering" |
Functions | |
INITIALIZE_PASS (MVEGatherScatterLowering, DEBUG_TYPE, "MVE gather/scattering lowering pass", false, false) Pass *llvm | |
static bool | checkOffsetSize (Value *Offsets, unsigned TargetElemCount) |
static bool | isAddLikeOr (Instruction *I, const DataLayout &DL) |
static bool | hasAllGatScatUsers (Instruction *I, const DataLayout &DL) |
static Value * | CheckAndCreateOffsetAdd (Value *X, unsigned ScaleX, Value *Y, unsigned ScaleY, IRBuilder<> &Builder) |
Variables | |
cl::opt< bool > | EnableMaskedGatherScatters ("enable-arm-maskedgatscat", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked gathers and scatters")) |
#define DEBUG_TYPE "arm-mve-gather-scatter-lowering" |
Definition at line 48 of file MVEGatherScatterLowering.cpp.
|
static |
Definition at line 1113 of file MVEGatherScatterLowering.cpp.
References llvm::Add, assert(), checkOffsetSize(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateMul(), llvm::IRBuilderBase::CreateVectorSplat(), llvm::dbgs(), llvm::Constant::getAggregateElement(), llvm::VectorType::getElementType(), llvm::IRBuilderBase::getIntN(), llvm::FixedVectorType::getNumElements(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::ConstantInt::getZExtValue(), LLVM_DEBUG, N, X, and Y.
Definition at line 185 of file MVEGatherScatterLowering.cpp.
References llvm::Constant::getAggregateElement(), llvm::ConstantInt::getSExtValue(), and llvm::Value::getType().
Referenced by CheckAndCreateOffsetAdd().
|
static |
Definition at line 947 of file MVEGatherScatterLowering.cpp.
References DL, hasAllGatScatUsers(), I, isAddLikeOr(), and llvm::isGatherScatter().
Referenced by hasAllGatScatUsers().
INITIALIZE_PASS | ( | MVEGatherScatterLowering | , |
DEBUG_TYPE | , | ||
"MVE gather/scattering lowering pass" | , | ||
false | , | ||
false | |||
) |
Definition at line 164 of file MVEGatherScatterLowering.cpp.
|
static |
Definition at line 367 of file MVEGatherScatterLowering.cpp.
References DL, llvm::haveNoCommonBitsSet(), and I.
Referenced by hasAllGatScatUsers().
cl::opt< bool > EnableMaskedGatherScatters("enable-arm-maskedgatscat", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked gathers and scatters")) | ( | "enable-arm-maskedgatscat" | , |
cl::Hidden | , | ||
cl::init(true) | , | ||
cl::desc("Enable the generation of masked gathers and scatters") | |||
) |