LLVM  14.0.0git
Macros | Functions | Variables
AArch64TargetTransformInfo.cpp File Reference
#include "AArch64TargetTransformInfo.h"
#include "AArch64ExpandImm.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "llvm/Analysis/IVDescriptors.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/BasicTTIImpl.h"
#include "llvm/CodeGen/CostTable.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/InstCombine/InstCombiner.h"
#include <algorithm>
Include dependency graph for AArch64TargetTransformInfo.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "aarch64tti"
 

Functions

static Optional< Instruction * > processPhiNode (InstCombiner &IC, IntrinsicInst &II)
 The function will remove redundant reinterprets casting in the presence of the control flow. More...
 
static Optional< Instruction * > instCombineConvertFromSVBool (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVEDup (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVEDupX (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVECmpNE (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVELast (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineRDFFR (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVECntElts (InstCombiner &IC, IntrinsicInst &II, unsigned NumElts)
 
static Optional< Instruction * > instCombineSVEPTest (InstCombiner &IC, IntrinsicInst &II)
 
static Instruction::BinaryOps intrinsicIDToBinOpCode (unsigned Intrinsic)
 
static Optional< Instruction * > instCombineSVEVectorBinOp (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVEVectorMul (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVEUnpack (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVETBL (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVETupleGet (InstCombiner &IC, IntrinsicInst &II)
 
static Optional< Instruction * > instCombineSVEZip (InstCombiner &IC, IntrinsicInst &II)
 
static void getFalkorUnrollingPreferences (Loop *L, ScalarEvolution &SE, TargetTransformInfo::UnrollingPreferences &UP)
 

Variables

static cl::opt< bool > EnableFalkorHWPFUnrollFix ("enable-falkor-hwpf-unroll-fix", cl::init(true), cl::Hidden)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64tti"

Definition at line 28 of file AArch64TargetTransformInfo.cpp.

Function Documentation

◆ getFalkorUnrollingPreferences()

static void getFalkorUnrollingPreferences ( Loop L,
ScalarEvolution SE,
TargetTransformInfo::UnrollingPreferences UP 
)
static

◆ instCombineConvertFromSVBool()

static Optional<Instruction *> instCombineConvertFromSVBool ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineRDFFR()

static Optional<Instruction *> instCombineRDFFR ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVECmpNE()

static Optional<Instruction *> instCombineSVECmpNE ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVECntElts()

static Optional<Instruction *> instCombineSVECntElts ( InstCombiner IC,
IntrinsicInst II,
unsigned  NumElts 
)
static

◆ instCombineSVEDup()

static Optional<Instruction *> instCombineSVEDup ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEDupX()

static Optional<Instruction *> instCombineSVEDupX ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVELast()

static Optional<Instruction *> instCombineSVELast ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEPTest()

static Optional<Instruction *> instCombineSVEPTest ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVETBL()

static Optional<Instruction *> instCombineSVETBL ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVETupleGet()

static Optional<Instruction *> instCombineSVETupleGet ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEUnpack()

static Optional<Instruction *> instCombineSVEUnpack ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEVectorBinOp()

static Optional<Instruction *> instCombineSVEVectorBinOp ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEVectorMul()

static Optional<Instruction *> instCombineSVEVectorMul ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ instCombineSVEZip()

static Optional<Instruction *> instCombineSVEZip ( InstCombiner IC,
IntrinsicInst II 
)
static

◆ intrinsicIDToBinOpCode()

static Instruction::BinaryOps intrinsicIDToBinOpCode ( unsigned  Intrinsic)
static

Definition at line 698 of file AArch64TargetTransformInfo.cpp.

Referenced by instCombineSVEVectorBinOp().

◆ processPhiNode()

static Optional<Instruction *> processPhiNode ( InstCombiner IC,
IntrinsicInst II 
)
static

The function will remove redundant reinterprets casting in the presence of the control flow.

Definition at line 336 of file AArch64TargetTransformInfo.cpp.

References llvm::PHINode::addIncoming(), assert(), Builder, llvm::CallBase::getArgOperand(), llvm::Value::getType(), I, llvm::None, and llvm::InstCombiner::replaceInstUsesWith().

Referenced by instCombineConvertFromSVBool().

Variable Documentation

◆ EnableFalkorHWPFUnrollFix

cl::opt<bool> EnableFalkorHWPFUnrollFix("enable-falkor-hwpf-unroll-fix", cl::init(true), cl::Hidden)
static