LLVM 20.0.0git
|
#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 AllocaInst * | createAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty) |
static Instruction * | getFirstNonAllocaInTheEntryBlock (Function &F) |
static Value * | getAllocaPos (BasicBlock *BB) |
static Instruction * | createTileStore (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 | |
#define DEBUG_TYPE "lower-amx-type" |
Definition at line 67 of file X86LowerAMXType.cpp.
Definition at line 109 of file X86LowerAMXType.cpp.
|
static |
Definition at line 117 of file X86LowerAMXType.cpp.
References DL, F, llvm::IRBuilderBase::getContext(), llvm::BasicBlock::getParent(), llvm::Type::getX86_AMXTy(), and llvm::AllocaInst::setAlignment().
|
static |
Definition at line 589 of file X86LowerAMXType.cpp.
References assert(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::getInt64(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), Idx, II, llvm::Type::isX86_AMXTy(), and Ptr.
|
static |
Definition at line 574 of file X86LowerAMXType.cpp.
References llvm::IRBuilderBase::CreateBitCast(), DL, F, llvm::IRBuilderBase::getInt32Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getParent(), llvm::IRBuilderBase::getPtrTy(), and llvm::IRBuilderBase::SetInsertPoint().
|
static |
Definition at line 131 of file X86LowerAMXType.cpp.
References F, I, and llvm_unreachable.
Referenced by ShapeCalculator::getColFromRow(), and ShapeCalculator::getRowFromCol().
|
static |
Definition at line 77 of file X86LowerAMXType.cpp.
References llvm::Type::getContainedType(), llvm::Type::getNumContainedTypes(), II, and llvm::Type::isX86_AMXTy().
Referenced by isAMXIntrinsic().
INITIALIZE_PASS_BEGIN | ( | X86LowerAMXTypeLegacyPass | , |
DEBUG_TYPE | , | ||
PassName | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 69 of file X86LowerAMXType.cpp.
References II, llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by ShapeCalculator::getShape(), and isAMXIntrinsic().
Definition at line 91 of file X86LowerAMXType.cpp.
References getNumDefTiles(), I, II, and isAMXCast().
Referenced by ShapeCalculator::getShape().
|
static |
Definition at line 646 of file X86LowerAMXType.cpp.
References I.
Definition at line 615 of file X86LowerAMXType.cpp.
References assert(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::getInt64(), Idx, II, Ptr, and llvm::User::replaceUsesOfWith().
DEBUG_TYPE |
Definition at line 1470 of file X86LowerAMXType.cpp.
false |
Definition at line 1470 of file X86LowerAMXType.cpp.
Definition at line 1464 of file X86LowerAMXType.cpp.