mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-20 02:28:23 +00:00
Refine DebugLoc per review comments.
llvm-svn: 63132
This commit is contained in:
parent
0400e83ed8
commit
3330206ff6
@ -33,16 +33,21 @@ namespace llvm {
|
||||
unsigned Idx;
|
||||
|
||||
public:
|
||||
DebugLoc() : Idx(~0U) {}
|
||||
DebugLoc() : Idx(~0U) {} // Defaults to invalid.
|
||||
|
||||
static DebugLoc getNoDebugLoc() { DebugLoc L; L.Idx = 0; return L; }
|
||||
static DebugLoc getUnknownLoc() { DebugLoc L; L.Idx = 0; return L; }
|
||||
static DebugLoc get(unsigned idx) { DebugLoc L; L.Idx = idx; return L; }
|
||||
|
||||
bool isInvalid() { return Idx == ~0U; }
|
||||
bool isUnknown() { return Idx == 0; }
|
||||
// isInvalid - Return true if the DebugLoc is invalid.
|
||||
bool isInvalid() const { return Idx == ~0U; }
|
||||
|
||||
// isUnknown - Return true if there is no debug info for the SDNode /
|
||||
// MachineInstr.
|
||||
bool isUnknown() const { return Idx == 0; }
|
||||
};
|
||||
|
||||
struct DebugLocTupleDenseMapInfo {
|
||||
// Partially specialize DenseMapInfo for DebugLocTyple.
|
||||
template<> struct DenseMapInfo<DebugLocTuple> {
|
||||
static inline DebugLocTuple getEmptyKey() {
|
||||
return DebugLocTuple(~0U, ~0U, ~0U);
|
||||
}
|
||||
@ -63,9 +68,6 @@ namespace llvm {
|
||||
static bool isPod() { return true; }
|
||||
};
|
||||
|
||||
typedef DenseMap<DebugLocTuple, unsigned, DebugLocTupleDenseMapInfo>
|
||||
DebugIdMapType;
|
||||
|
||||
/// DebugLocTracker - This class tracks debug location information.
|
||||
///
|
||||
struct DebugLocTracker {
|
||||
@ -75,7 +77,7 @@ namespace llvm {
|
||||
|
||||
// DebugIdsMap - This maps DebugLocTuple's to indices into
|
||||
// DebugLocations vector.
|
||||
DebugIdMapType DebugIdMap;
|
||||
DenseMap<DebugLocTuple, unsigned> DebugIdMap;
|
||||
|
||||
DebugLocTracker() {}
|
||||
|
||||
|
@ -311,10 +311,10 @@ public:
|
||||
// Debug location.
|
||||
//
|
||||
|
||||
/// lookUpDebugLocId - Look up the DebugLocTuple index with the given
|
||||
/// source file, line, and column. It may add a new filename and / or
|
||||
/// a new DebugLocTuple.
|
||||
unsigned lookUpDebugLocId(unsigned Src, unsigned Line, unsigned Col);
|
||||
/// getOrCreateDebugLocID - Look up the DebugLocTuple index with the given
|
||||
/// source file, line, and column. If none currently exists, create add a new
|
||||
/// new DebugLocTuple and insert it into the DebugIdMap.
|
||||
unsigned getOrCreateDebugLocID(unsigned Src, unsigned Line, unsigned Col);
|
||||
};
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
@ -378,13 +378,14 @@ MachineFunction& MachineFunction::get(const Function *F)
|
||||
return *mc;
|
||||
}
|
||||
|
||||
/// lookUpDebugLocId - Look up the DebugLocTuple index with the given
|
||||
/// source file, line, and column. It may add a new filename and / or
|
||||
/// a new DebugLocTuple.
|
||||
unsigned MachineFunction::lookUpDebugLocId(unsigned Src, unsigned Line,
|
||||
unsigned Col) {
|
||||
/// getOrCreateDebugLocID - Look up the DebugLocTuple index with the given
|
||||
/// source file, line, and column. If none currently exists, create add a new
|
||||
/// new DebugLocTuple and insert it into the DebugIdMap.
|
||||
unsigned MachineFunction::getOrCreateDebugLocID(unsigned Src, unsigned Line,
|
||||
unsigned Col) {
|
||||
struct DebugLocTuple Tuple(Src, Line, Col);
|
||||
DebugIdMapType::iterator II = DebugLocInfo.DebugIdMap.find(Tuple);
|
||||
DenseMap<DebugLocTuple, unsigned>::iterator II
|
||||
= DebugLocInfo.DebugIdMap.find(Tuple);
|
||||
if (II != DebugLocInfo.DebugIdMap.end())
|
||||
return II->second;
|
||||
// Add a new tuple.
|
||||
|
Loading…
Reference in New Issue
Block a user