mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-20 14:29:27 +00:00
Print InlinedAt location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107208 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7645f14ee8
commit
da0e89f4c4
@ -1211,6 +1211,28 @@ void MachineInstr::dump() const {
|
||||
dbgs() << " " << *this;
|
||||
}
|
||||
|
||||
static void printDebugLoc(DebugLoc DL, const MachineFunction *MF,
|
||||
raw_ostream &CommentOS) {
|
||||
const LLVMContext &Ctx = MF->getFunction()->getContext();
|
||||
if (!DL.isUnknown()) { // Print source line info.
|
||||
DIScope Scope(DL.getScope(Ctx));
|
||||
// Omit the directory, because it's likely to be long and uninteresting.
|
||||
if (Scope.Verify())
|
||||
CommentOS << Scope.getFilename();
|
||||
else
|
||||
CommentOS << "<unknown>";
|
||||
CommentOS << ':' << DL.getLine();
|
||||
if (DL.getCol() != 0)
|
||||
CommentOS << ':' << DL.getCol();
|
||||
DebugLoc InlinedAtDL = DebugLoc::getFromDILocation(DL.getInlinedAt(Ctx));
|
||||
if (!InlinedAtDL.isUnknown()) {
|
||||
CommentOS << " @[ ";
|
||||
printDebugLoc(InlinedAtDL, MF, CommentOS);
|
||||
CommentOS << " ]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MachineInstr::print(raw_ostream &OS, const TargetMachine *TM) const {
|
||||
// We can be a bit tidier if we know the TargetMachine and/or MachineFunction.
|
||||
const MachineFunction *MF = 0;
|
||||
@ -1308,19 +1330,8 @@ void MachineInstr::print(raw_ostream &OS, const TargetMachine *TM) const {
|
||||
|
||||
if (!debugLoc.isUnknown() && MF) {
|
||||
if (!HaveSemi) OS << ";";
|
||||
|
||||
// TODO: print InlinedAtLoc information
|
||||
|
||||
DIScope Scope(debugLoc.getScope(MF->getFunction()->getContext()));
|
||||
OS << " dbg:";
|
||||
// Omit the directory, since it's usually long and uninteresting.
|
||||
if (Scope.Verify())
|
||||
OS << Scope.getFilename();
|
||||
else
|
||||
OS << "<unknown>";
|
||||
OS << ':' << debugLoc.getLine();
|
||||
if (debugLoc.getCol() != 0)
|
||||
OS << ':' << debugLoc.getCol();
|
||||
printDebugLoc(debugLoc, MF, OS);
|
||||
}
|
||||
|
||||
OS << "\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user