13#ifndef LLVM_LIB_TARGET_DIRECTX_DXILDEBUGINFO_H
14#define LLVM_LIB_TARGET_DIRECTX_DXILDEBUGINFO_H
28 struct InstructionDeleter {
35 std::unique_ptr<Instruction, InstructionDeleter>>;
57 return *It->second.get();
64 return *It->second.get();
This file defines the DenseMap class.
This file defines the DenseSet and SmallDenseSet classes.
A Module instance is used to store all the information related to an LLVM module.
const Instruction & getDXILInstruction(const Instruction &I) const
const Function & getDXILFunction(const Function &F) const
DXILDebugInfoMap(const DXILDebugInfoMap &)=delete
InstMap InstReplace
Completely replace one instruction with another in ValueEnumerator.
DenseMap< const Function *, std::unique_ptr< Function > > FuncMap
MDMap MDExtra
Enumerate extra metadata when Key is encountered in ValueEnumerator.
FuncMap FuncReplace
Completely replace one function with another in ValueEnumerator.
DXILDebugInfoMap(DXILDebugInfoMap &&)=default
const Metadata * getDXILMetadata(const Metadata *M) const
DXILDebugInfoMap()=default
MDMap MDReplace
Completely replace one metadata with another in ValueEnumerator.
DenseMap< const Metadata *, const Metadata * > MDMap
DenseMap< const Instruction *, std::unique_ptr< Instruction, InstructionDeleter > > InstMap
DXILDebugInfoMap run(Module &M)
This is an optimization pass for GlobalISel generic memory operations.