14#ifndef LLVM_IR_DEBUGLOC_H
15#define LLVM_IR_DEBUGLOC_H
66 explicit operator bool()
const {
return Loc; }
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
void setImplicitCode(bool ImplicitCode)
DILocation & operator*() const
bool operator==(const DebugLoc &DL) const
DebugLoc getFnDebugLoc() const
Find the debug info location for the start of the function.
DILocation * get() const
Get the underlying DILocation.
MDNode * getScope() const
static DebugLoc appendInlinedAt(const DebugLoc &DL, DILocation *InlinedAt, LLVMContext &Ctx, DenseMap< const MDNode *, MDNode * > &Cache)
Rebuild the entire inlined-at chain for this instruction so that the top of the chain now is inlined-...
DILocation * operator->() const
bool hasTrivialDestructor() const
Check whether this has a trivial destructor.
void print(raw_ostream &OS) const
prints source location /path/to/file.exe:line:col @[inlined at]
MDNode * getAsMDNode() const
Return this as a bar MDNode.
static DebugLoc replaceInlinedAtSubprogram(const DebugLoc &DL, DISubprogram &NewSP, LLVMContext &Ctx, DenseMap< const MDNode *, MDNode * > &Cache)
Rebuild the entire inline-at chain by replacing the subprogram at the end of the chain with NewSP.
bool isImplicitCode() const
Check if the DebugLoc corresponds to an implicit code.
DILocation * getInlinedAt() const
bool operator!=(const DebugLoc &DL) const
MDNode * getInlinedAtScope() const
Get the fully inlined-at scope for a DebugLoc.
This is an important class for using LLVM in a threaded context.
bool hasTrivialDestructor() const
Check whether this has a trivial destructor.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.