LLVM  14.0.0git
Macros | Functions | Variables
X86LowerAMXType.cpp File Reference
#include "X86.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsX86.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Transforms/Utils/AssumeBundleBuilder.h"
#include "llvm/Transforms/Utils/Local.h"
Include dependency graph for X86LowerAMXType.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "lower-amx-type"
 

Functions

static bool isAMXCast (Instruction *II)
 
static AllocaInstcreateAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty)
 
static InstructiongetFirstNonAllocaInTheEntryBlock (Function &F)
 
static std::pair< Value *, Value * > getShape (IntrinsicInst *II, unsigned OpNo)
 
static ValuegetAllocaPos (BasicBlock *BB)
 
static InstructioncreateTileStore (Instruction *TileDef, Value *Ptr)
 
static void replaceWithTileLoad (Use &U, Value *Ptr, bool IsPHI=false)
 
static bool isIncomingOfPHI (Instruction *I)
 
 INITIALIZE_PASS_BEGIN (X86LowerAMXTypeLegacyPass, DEBUG_TYPE, PassName, false, false) INITIALIZE_PASS_END(X86LowerAMXTypeLegacyPass
 

Variables

static const char PassName [] = "Lower AMX type for load/store"
 
 DEBUG_TYPE
 
 false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "lower-amx-type"

Definition at line 67 of file X86LowerAMXType.cpp.

Function Documentation

◆ createAllocaInstAtEntry()

static AllocaInst* createAllocaInstAtEntry ( IRBuilder<> &  Builder,
BasicBlock BB,
Type Ty 
)
static

◆ createTileStore()

static Instruction* createTileStore ( Instruction TileDef,
Value Ptr 
)
static

◆ getAllocaPos()

static Value* getAllocaPos ( BasicBlock BB)
static

◆ getFirstNonAllocaInTheEntryBlock()

static Instruction* getFirstNonAllocaInTheEntryBlock ( Function F)
static

Definition at line 90 of file X86LowerAMXType.cpp.

References F, I, and llvm_unreachable.

Referenced by getShape().

◆ getShape()

static std::pair<Value *, Value *> getShape ( IntrinsicInst II,
unsigned  OpNo 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( X86LowerAMXTypeLegacyPass  ,
DEBUG_TYPE  ,
PassName  ,
false  ,
false   
)

◆ isAMXCast()

static bool isAMXCast ( Instruction II)
static

◆ isIncomingOfPHI()

static bool isIncomingOfPHI ( Instruction I)
static

Definition at line 454 of file X86LowerAMXType.cpp.

References llvm::Use::getUser(), and I.

◆ replaceWithTileLoad()

static void replaceWithTileLoad ( Use U,
Value Ptr,
bool  IsPHI = false 
)
static

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1065 of file X86LowerAMXType.cpp.

◆ false

false

Definition at line 1065 of file X86LowerAMXType.cpp.

◆ PassName

PassName = "Lower AMX type for load/store"
static

Definition at line 1059 of file X86LowerAMXType.cpp.