LLVM 22.0.0git
X86LowerAMXType.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "x86-lower-amx-type"

Functions

static bool isAMXCast (Instruction *II)
static bool isAMXIntrinsic (Value *I)
static bool containsAMXCode (Function &F)
static AllocaInstcreateAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty)
static InstructiongetFirstNonAllocaInTheEntryBlock (Function &F)
static ValuegetRowFromCol (Instruction *II, Value *V, unsigned Granularity)
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   "x86-lower-amx-type"

Definition at line 69 of file X86LowerAMXType.cpp.

Function Documentation

◆ containsAMXCode()

bool containsAMXCode ( Function & F)
static

Definition at line 95 of file X86LowerAMXType.cpp.

References F, and I.

◆ createAllocaInstAtEntry()

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

◆ createTileStore()

◆ getAllocaPos()

◆ getFirstNonAllocaInTheEntryBlock()

Instruction * getFirstNonAllocaInTheEntryBlock ( Function & F)
static

Definition at line 117 of file X86LowerAMXType.cpp.

References F, I, llvm::isa(), and llvm_unreachable.

Referenced by getRowFromCol().

◆ getRowFromCol()

Value * getRowFromCol ( Instruction * II,
Value * V,
unsigned Granularity )
static

◆ getShape() [1/2]

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

Definition at line 157 of file X86LowerAMXType.cpp.

References assert(), getRowFromCol(), II, and llvm_unreachable.

Referenced by getShape().

◆ getShape() [2/2]

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

◆ INITIALIZE_PASS_BEGIN()

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

◆ isAMXCast()

bool isAMXCast ( Instruction * II)
static

◆ isAMXIntrinsic()

bool isAMXIntrinsic ( Value * I)
static

Definition at line 77 of file X86LowerAMXType.cpp.

References llvm::dyn_cast(), I, II, and isAMXCast().

Referenced by getShape().

◆ isIncomingOfPHI()

bool isIncomingOfPHI ( Instruction * I)
static

Definition at line 542 of file X86LowerAMXType.cpp.

References I, and llvm::isa().

◆ replaceWithTileLoad()

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

Definition at line 517 of file X86LowerAMXType.cpp.

References assert(), llvm::cast(), II, Ptr, and llvm::User::replaceUsesOfWith().

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1368 of file X86LowerAMXType.cpp.

◆ false

false

Definition at line 1368 of file X86LowerAMXType.cpp.

◆ PassName

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

Definition at line 1362 of file X86LowerAMXType.cpp.