LLVM 20.0.0git
Macros | Functions | Variables
ARMParallelDSP.cpp File Reference

Armv6 introduced instructions to perform 32-bit SIMD operations. More...

#include "ARM.h"
#include "ARMSubtarget.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicsARM.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/NoFolder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Pass.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "arm-parallel-dsp"
 

Functions

 STATISTIC (NumSMLAD, "Number of smlad instructions generated")
 
 INITIALIZE_PASS_BEGIN (ARMParallelDSP, "arm-parallel-dsp", "Transform functions to use DSP intrinsics", false, false) INITIALIZE_PASS_END(ARMParallelDSP
 

Variables

static cl::opt< boolDisableParallelDSP ("disable-arm-parallel-dsp", cl::Hidden, cl::init(false), cl::desc("Disable the ARM Parallel DSP pass"))
 
static cl::opt< unsignedNumLoadLimit ("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16), cl::desc("Limit the number of loads analysed"))
 
arm parallel dsp
 
arm parallel Transform functions to use DSP intrinsics
 
arm parallel Transform functions to use DSP false
 

Detailed Description

Armv6 introduced instructions to perform 32-bit SIMD operations.

The purpose of this pass is do some IR pattern matching to create ACLE DSP intrinsics, which map on these 32-bit SIMD operations. This pass runs only when unaligned accesses is supported/enabled.

Definition in file ARMParallelDSP.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "arm-parallel-dsp"

Definition at line 42 of file ARMParallelDSP.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( ARMParallelDSP  ,
"arm-parallel-dsp"  ,
"Transform functions to use DSP intrinsics"  ,
false  ,
false   
)

◆ STATISTIC()

STATISTIC ( NumSMLAD  ,
"Number of smlad instructions generated"   
)

Variable Documentation

◆ DisableParallelDSP

cl::opt< bool > DisableParallelDSP("disable-arm-parallel-dsp", cl::Hidden, cl::init(false), cl::desc("Disable the ARM Parallel DSP pass")) ( "disable-arm-parallel-dsp"  ,
cl::Hidden  ,
cl::init(false)  ,
cl::desc("Disable the ARM Parallel DSP pass")   
)
static

◆ dsp

arm parallel dsp

Definition at line 811 of file ARMParallelDSP.cpp.

◆ false

arm parallel Transform functions to use DSP false

Definition at line 812 of file ARMParallelDSP.cpp.

◆ intrinsics

arm parallel Transform functions to use DSP intrinsics

Definition at line 812 of file ARMParallelDSP.cpp.

◆ NumLoadLimit

cl::opt< unsigned > NumLoadLimit("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16), cl::desc("Limit the number of loads analysed")) ( "arm-parallel-dsp-load-limit"  ,
cl::Hidden  ,
cl::init(16)  ,
cl::desc("Limit the number of loads analysed")   
)
static