mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-15 07:33:18 +00:00
Provide a way to extract location info from DILocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82064 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cea188aa5f
commit
1b75f44bd9
@ -669,6 +669,11 @@ namespace llvm {
|
||||
DebugLoc ExtractDebugLocation(DbgStopPointInst &SPI,
|
||||
DebugLocTracker &DebugLocInfo);
|
||||
|
||||
/// ExtractDebugLocation - Extract debug location information
|
||||
/// from DILocation.
|
||||
DebugLoc ExtractDebugLocation(DILocation &Loc,
|
||||
DebugLocTracker &DebugLocInfo);
|
||||
|
||||
/// ExtractDebugLocation - Extract debug location information
|
||||
/// from llvm.dbg.func_start intrinsic.
|
||||
DebugLoc ExtractDebugLocation(DbgFuncStartInst &FSI,
|
||||
|
@ -1209,6 +1209,29 @@ namespace llvm {
|
||||
return DebugLoc::get(Id);
|
||||
}
|
||||
|
||||
/// ExtractDebugLocation - Extract debug location information
|
||||
/// from DILocation.
|
||||
DebugLoc ExtractDebugLocation(DILocation &Loc,
|
||||
DebugLocTracker &DebugLocInfo) {
|
||||
DebugLoc DL;
|
||||
MDNode *Context = Loc.getScope().getNode();
|
||||
|
||||
// If this location is already tracked then use it.
|
||||
DebugLocTuple Tuple(Context, Loc.getLineNumber(),
|
||||
Loc.getColumnNumber());
|
||||
DenseMap<DebugLocTuple, unsigned>::iterator II
|
||||
= DebugLocInfo.DebugIdMap.find(Tuple);
|
||||
if (II != DebugLocInfo.DebugIdMap.end())
|
||||
return DebugLoc::get(II->second);
|
||||
|
||||
// Add a new location entry.
|
||||
unsigned Id = DebugLocInfo.DebugLocations.size();
|
||||
DebugLocInfo.DebugLocations.push_back(Tuple);
|
||||
DebugLocInfo.DebugIdMap[Tuple] = Id;
|
||||
|
||||
return DebugLoc::get(Id);
|
||||
}
|
||||
|
||||
/// ExtractDebugLocation - Extract debug location information
|
||||
/// from llvm.dbg.func_start intrinsic.
|
||||
DebugLoc ExtractDebugLocation(DbgFuncStartInst &FSI,
|
||||
|
Loading…
x
Reference in New Issue
Block a user