|
LLVM 22.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/Analysis.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/PassManager.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 "x86-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 Value * | getRowFromCol (Instruction *II, Value *V, unsigned Granularity) |
| 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 "x86-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::BasicBlock::getParent(), llvm::Type::getX86_AMXTy(), and llvm::AllocaInst::setAlignment().
|
static |
Definition at line 498 of file X86LowerAMXType.cpp.
References assert(), llvm::cast(), 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 483 of file X86LowerAMXType.cpp.
References DL, F, llvm::VectorType::get(), llvm::ilist_node_impl< OptionsT >::getIterator(), and llvm::BasicBlock::getParent().
|
static |
Definition at line 117 of file X86LowerAMXType.cpp.
References F, I, llvm::isa(), and llvm_unreachable.
Referenced by getRowFromCol().
|
static |
Definition at line 124 of file X86LowerAMXType.cpp.
References llvm::cast(), llvm::IRBuilderBase::CreateUDiv(), getFirstNonAllocaInTheEntryBlock(), llvm::IRBuilderBase::getInt16(), II, and llvm::isa().
Referenced by getShape().
| 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().
Definition at line 223 of file X86LowerAMXType.cpp.
References llvm::cast(), llvm::dyn_cast(), llvm::Use::getOperandNo(), getShape(), llvm::Use::getUser(), llvm::isa(), isAMXCast(), and isAMXIntrinsic().
| INITIALIZE_PASS_BEGIN | ( | X86LowerAMXTypeLegacyPass | , |
| DEBUG_TYPE | , | ||
| PassName | , | ||
| false | , | ||
| false | ) |
References DEBUG_TYPE, INITIALIZE_PASS_DEPENDENCY, and PassName.
|
static |
Definition at line 71 of file X86LowerAMXType.cpp.
References II, llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by getShape(), and isAMXIntrinsic().
Definition at line 77 of file X86LowerAMXType.cpp.
References llvm::dyn_cast(), I, II, and isAMXCast().
Referenced by getShape().
|
static |
Definition at line 542 of file X86LowerAMXType.cpp.
References I, and llvm::isa().
Definition at line 517 of file X86LowerAMXType.cpp.
References assert(), llvm::cast(), II, Ptr, and llvm::User::replaceUsesOfWith().
| DEBUG_TYPE |
Definition at line 1368 of file X86LowerAMXType.cpp.
| false |
Definition at line 1368 of file X86LowerAMXType.cpp.
Definition at line 1362 of file X86LowerAMXType.cpp.