LLVM 19.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 <map>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "lower-amx-type"
 

Functions

static bool isAMXCast (Instruction *II)
 
static bool isAMXIntrinsic (Value *I)
 
static AllocaInstcreateAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty)
 
static InstructiongetFirstNonAllocaInTheEntryBlock (Function &F)
 
static std::pair< Value *, Value * > getShape (IntrinsicInst *II, unsigned OpNo)
 
static std::pair< Value *, Value * > getShape (PHINode *Phi)
 
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 69 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 110 of file X86LowerAMXType.cpp.

References F, I, and llvm_unreachable.

Referenced by getShape().

◆ getShape() [1/2]

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

◆ getShape() [2/2]

static std::pair< Value *, Value * > getShape ( PHINode Phi)
static

Definition at line 186 of file X86LowerAMXType.cpp.

References getShape(), isAMXCast(), and isAMXIntrinsic().

◆ INITIALIZE_PASS_BEGIN()

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

◆ isAMXCast()

static bool isAMXCast ( Instruction II)
static

Definition at line 71 of file X86LowerAMXType.cpp.

References llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().

Referenced by getShape(), and isAMXIntrinsic().

◆ isAMXIntrinsic()

static bool isAMXIntrinsic ( Value I)
static

Definition at line 77 of file X86LowerAMXType.cpp.

References I, and isAMXCast().

Referenced by getShape().

◆ isIncomingOfPHI()

static bool isIncomingOfPHI ( Instruction I)
static

Definition at line 507 of file X86LowerAMXType.cpp.

References I.

◆ replaceWithTileLoad()

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

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1279 of file X86LowerAMXType.cpp.

◆ false

false

Definition at line 1279 of file X86LowerAMXType.cpp.

◆ PassName

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

Definition at line 1273 of file X86LowerAMXType.cpp.