LLVM 22.0.0git
|
#include "DXILForwardHandleAccesses.h"
#include "DXILShaderFlags.h"
#include "DirectX.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/DXILResource.h"
#include "llvm/Analysis/Loads.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsDirectX.h"
#include "llvm/IR/Module.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/Local.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "dxil-forward-handle-accesses" |
Functions | |
static void | diagnoseAmbiguousHandle (IntrinsicInst *NewII, IntrinsicInst *PrevII) |
static void | diagnoseHandleNotFound (LoadInst *LI) |
static void | diagnoseUndominatedLoad (LoadInst *LI, IntrinsicInst *Handle) |
static void | processHandle (IntrinsicInst *II, DenseMap< GlobalVariable *, IntrinsicInst * > &HandleMap) |
static bool | forwardHandleAccesses (Function &F, DominatorTree &DT) |
INITIALIZE_PASS_BEGIN (DXILForwardHandleAccessesLegacy, DEBUG_TYPE, "DXIL Forward Handle Accesses", false, false) INITIALIZE_PASS_END(DXILForwardHandleAccessesLegacy | |
Variables | |
DEBUG_TYPE | |
DXIL Forward Handle | Accesses |
DXIL Forward Handle | false |
#define DEBUG_TYPE "dxil-forward-handle-accesses" |
Definition at line 27 of file DXILForwardHandleAccesses.cpp.
|
static |
Definition at line 31 of file DXILForwardHandleAccesses.cpp.
References Context, F, llvm::Instruction::getFunction(), and llvm::Value::getName().
Referenced by processHandle().
|
static |
Definition at line 40 of file DXILForwardHandleAccesses.cpp.
References Context, F, llvm::Instruction::getFunction(), llvm::Value::getName(), and llvm::LoadInst::getPointerOperand().
Referenced by forwardHandleAccesses().
|
static |
Definition at line 48 of file DXILForwardHandleAccesses.cpp.
References Context, F, llvm::Instruction::getFunction(), and llvm::Value::getName().
Referenced by forwardHandleAccesses().
|
static |
Definition at line 71 of file DXILForwardHandleAccesses.cpp.
References llvm::dbgs(), diagnoseHandleNotFound(), diagnoseUndominatedLoad(), llvm::DominatorTree::dominates(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::FindAvailableLoadedValue(), llvm::for_each(), II, LLVM_DEBUG, processHandle(), Ptr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::users().
Referenced by llvm::DXILForwardHandleAccesses::run().
INITIALIZE_PASS_BEGIN | ( | DXILForwardHandleAccessesLegacy | , |
DEBUG_TYPE | , | ||
"DXIL Forward Handle Accesses" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 58 of file DXILForwardHandleAccesses.cpp.
References llvm::dbgs(), diagnoseAmbiguousHandle(), II, LLVM_DEBUG, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace().
Referenced by forwardHandleAccesses().
DXIL Forward Handle Accesses |
Definition at line 215 of file DXILForwardHandleAccesses.cpp.
Referenced by llvm::MemoryDepChecker::areDepsSafe(), foreachMemoryAccess(), llvm::MachineInstr::getFoldedRestoreSize(), llvm::MachineInstr::getFoldedSpillSize(), llvm::MemoryDepChecker::getInstructionsForAccess(), getSpillSlotSize(), llvm::TargetInstrInfo::hasLoadFromStackSlot(), llvm::HexagonInstrInfo::hasLoadFromStackSlot(), llvm::TargetInstrInfo::hasStoreToStackSlot(), llvm::HexagonInstrInfo::hasStoreToStackSlot(), llvm::MemorySSA::insertIntoListsBefore(), llvm::MemorySSA::insertIntoListsForBlock(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), llvm::LanaiInstrInfo::isLoadFromStackSlotPostFE(), llvm::SystemZInstrInfo::isLoadFromStackSlotPostFE(), llvm::X86InstrInfo::isLoadFromStackSlotPostFE(), llvm::ARMBaseInstrInfo::isStoreToStackSlotPostFE(), llvm::SystemZInstrInfo::isStoreToStackSlotPostFE(), llvm::X86InstrInfo::isStoreToStackSlotPostFE(), noConflictingReadWrites(), pointerInvalidatedByBlock(), llvm::MemorySSA::removeFromLists(), llvm::SinkAndHoistLICMFlags::SinkAndHoistLICMFlags(), and llvm::MemorySSA::verifyDominationNumbers().
DEBUG_TYPE |
Definition at line 214 of file DXILForwardHandleAccesses.cpp.
DXIL Forward Handle false |
Definition at line 215 of file DXILForwardHandleAccesses.cpp.