LLVM 20.0.0git
|
#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 bool | containsAMXCode (Function &F) |
static AllocaInst * | createAllocaInstAtEntry (IRBuilder<> &Builder, BasicBlock *BB, Type *Ty) |
static Instruction * | getFirstNonAllocaInTheEntryBlock (Function &F) |
static std::pair< Value *, Value * > | getShape (IntrinsicInst *II, unsigned OpNo) |
static std::pair< Value *, Value * > | getShape (PHINode *Phi) |
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 69 of file X86LowerAMXType.cpp.
Definition at line 95 of file X86LowerAMXType.cpp.
|
static |
Definition at line 103 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 470 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(), II, llvm::Type::isX86_AMXTy(), and Ptr.
|
static |
Definition at line 455 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 117 of file X86LowerAMXType.cpp.
References F, I, and llvm_unreachable.
Referenced by getShape().
|
static |
Definition at line 124 of file X86LowerAMXType.cpp.
References llvm::IRBuilderBase::CreateUDiv(), getFirstNonAllocaInTheEntryBlock(), llvm::IRBuilderBase::getInt16(), II, llvm_unreachable, and llvm::IRBuilderBase::SetInsertPoint().
Referenced by getShape().
Definition at line 193 of file X86LowerAMXType.cpp.
References getShape(), isAMXCast(), and isAMXIntrinsic().
INITIALIZE_PASS_BEGIN | ( | X86LowerAMXTypeLegacyPass | , |
DEBUG_TYPE | , | ||
PassName | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 71 of file X86LowerAMXType.cpp.
References II, llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by getShape(), and isAMXIntrinsic().
Definition at line 77 of file X86LowerAMXType.cpp.
References I, II, and isAMXCast().
Referenced by getShape().
|
static |
Definition at line 513 of file X86LowerAMXType.cpp.
References I.
Definition at line 488 of file X86LowerAMXType.cpp.
References assert(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::getInt64(), II, Ptr, and llvm::User::replaceUsesOfWith().
DEBUG_TYPE |
Definition at line 1293 of file X86LowerAMXType.cpp.
false |
Definition at line 1293 of file X86LowerAMXType.cpp.
Definition at line 1287 of file X86LowerAMXType.cpp.