LLVM 20.0.0git
Macros | Functions | Variables
MVEGatherScatterLowering.cpp File Reference
#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 ValueCheckAndCreateOffsetAdd (Value *X, unsigned ScaleX, Value *Y, unsigned ScaleY, IRBuilder<> &Builder)
 

Variables

cl::opt< boolEnableMaskedGatherScatters ("enable-arm-maskedgatscat", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked gathers and scatters"))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "arm-mve-gather-scatter-lowering"

Definition at line 48 of file MVEGatherScatterLowering.cpp.

Function Documentation

◆ CheckAndCreateOffsetAdd()

static Value * CheckAndCreateOffsetAdd ( Value X,
unsigned  ScaleX,
Value Y,
unsigned  ScaleY,
IRBuilder<> &  Builder 
)
static

◆ checkOffsetSize()

static bool checkOffsetSize ( Value Offsets,
unsigned  TargetElemCount 
)
static

◆ hasAllGatScatUsers()

static bool hasAllGatScatUsers ( Instruction I,
const DataLayout DL 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( MVEGatherScatterLowering  ,
DEBUG_TYPE  ,
"MVE gather/scattering lowering pass"  ,
false  ,
false   
)

Definition at line 164 of file MVEGatherScatterLowering.cpp.

◆ isAddLikeOr()

static bool isAddLikeOr ( Instruction I,
const DataLayout DL 
)
static

Definition at line 367 of file MVEGatherScatterLowering.cpp.

References DL, llvm::haveNoCommonBitsSet(), and I.

Referenced by hasAllGatScatUsers().

Variable Documentation

◆ EnableMaskedGatherScatters

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")   
)