|
LLVM 24.0.0git
|
#include "SPIRVNonSemanticDebugHandler.h"#include "MCTargetDesc/SPIRVMCTargetDesc.h"#include "SPIRVSubtarget.h"#include "SPIRVUtils.h"#include "llvm/ADT/SetVector.h"#include "llvm/ADT/SmallVectorExtras.h"#include "llvm/ADT/Twine.h"#include "llvm/BinaryFormat/Dwarf.h"#include "llvm/CodeGen/AsmPrinter.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/IR/DebugInfo.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/DebugProgramInstruction.h"#include "llvm/IR/GlobalVariable.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/Module.h"#include "llvm/MC/MCInst.h"#include "llvm/MC/MCStreamer.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/Path.h"#include <cassert>Go to the source code of this file.
Enumerations | |
| enum class | NonSemanticDebugOp : uint32_t { Deref = 0 , Plus = 1 , Minus = 2 , PlusUconst = 3 , BitPiece = 4 , Swap = 5 , Xderef = 6 , StackValue = 7 , Constu = 8 , Fragment = 9 } |
Functions | |
| static void | collectDebugLocationsAndLocalVariables (const Module &M, SetVector< const DILocation * > &Locations, SetVector< const DILocalVariable * > &LVs) |
| static void | collectLexicalBlockChain (const DIScope *S, SetVector< const DIScope * > &Out) |
| static std::optional< NonSemanticDebugOp > | mapDwarfOpToNonSemanticOp (uint64_t DwarfOp) |
| static std::optional< Register > | getDebugDeclareStorageReg (const MachineInstr &MI) |
| static bool | isMergeInstruction (unsigned Opcode) |
| static bool | isDebugLocTarget (const MachineInstr *MI, SPIRV::ModuleAnalysisInfo &MAI) |
| static const MachineInstr * | findAdjacentEmittedInstruction (const MachineInstr *MI, SPIRV::ModuleAnalysisInfo &MAI, bool Forward) |
|
strong |
| Enumerator | |
|---|---|
| Deref | |
| Plus | |
| Minus | |
| PlusUconst | |
| BitPiece | |
| Swap | |
| Xderef | |
| StackValue | |
| Constu | |
| Fragment | |
Definition at line 860 of file SPIRVNonSemanticDebugHandler.cpp.
|
static |
Definition at line 273 of file SPIRVNonSemanticDebugHandler.cpp.
References DL, llvm::dyn_cast(), llvm::dyn_cast_or_null(), F, I, llvm::SetVector< T, Vector, Set, N >::insert(), instructions, and N.
Referenced by llvm::SPIRVNonSemanticDebugHandler::beginModule().
Definition at line 300 of file SPIRVNonSemanticDebugHandler.cpp.
References llvm::DIScope::getScope(), llvm::isa(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::rbegin(), and llvm::SmallVectorTemplateCommon< T, typename >::rend().
Referenced by llvm::SPIRVNonSemanticDebugHandler::beginModule().
|
static |
Definition at line 1501 of file SPIRVNonSemanticDebugHandler.cpp.
References llvm::SPIRV::ModuleAnalysisInfo::getSkipEmission(), and MI.
|
static |
Definition at line 1423 of file SPIRVNonSemanticDebugHandler.cpp.
References llvm::Register::isVirtual(), and MI.
|
static |
Definition at line 1484 of file SPIRVNonSemanticDebugHandler.cpp.
References llvm::SPIRV::ModuleAnalysisInfo::getSkipEmission(), and MI.
Definition at line 1479 of file SPIRVNonSemanticDebugHandler.cpp.
|
static |
Definition at line 874 of file SPIRVNonSemanticDebugHandler.cpp.
References BitPiece, Constu, Deref, llvm::dwarf::DW_OP_LLVM_fragment, Fragment, Minus, Plus, PlusUconst, StackValue, Swap, uint64_t, and Xderef.