LLVM 20.0.0git
Classes | Macros | Functions | Variables
X86LowerAMXType.cpp File Reference
#include "X86.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SetVector.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.

Classes

class  ShapeCalculator
 

Macros

#define DEBUG_TYPE   "lower-amx-type"
 

Functions

static bool isAMXCast (Instruction *II)
 
static unsigned getNumDefTiles (IntrinsicInst *II)
 
static bool isAMXIntrinsic (Value *I)
 
static bool containsAMXCode (Function &F)
 
static AllocaInstcreateAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty)
 
static InstructiongetFirstNonAllocaInTheEntryBlock (Function &F)
 
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

◆ containsAMXCode()

static bool containsAMXCode ( Function F)
static

Definition at line 109 of file X86LowerAMXType.cpp.

References F, and I.

◆ 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 131 of file X86LowerAMXType.cpp.

References F, I, and llvm_unreachable.

Referenced by ShapeCalculator::getColFromRow(), and ShapeCalculator::getRowFromCol().

◆ getNumDefTiles()

static unsigned getNumDefTiles ( IntrinsicInst II)
static

◆ INITIALIZE_PASS_BEGIN()

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

◆ isAMXCast()

static bool isAMXCast ( Instruction II)
static

◆ isAMXIntrinsic()

static bool isAMXIntrinsic ( Value I)
static

Definition at line 91 of file X86LowerAMXType.cpp.

References getNumDefTiles(), I, II, and isAMXCast().

Referenced by ShapeCalculator::getShape().

◆ isIncomingOfPHI()

static bool isIncomingOfPHI ( Instruction I)
static

Definition at line 646 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 1470 of file X86LowerAMXType.cpp.

◆ false

false

Definition at line 1470 of file X86LowerAMXType.cpp.

◆ PassName

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

Definition at line 1464 of file X86LowerAMXType.cpp.