From eb43b170740e57faf615ffab5008b52582a7efd8 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 6 Oct 2009 03:04:58 +0000 Subject: [PATCH] Update processDebugLoc() to handle requests to process debug info, before and after emitting instructions. llvm-svn: 83364 --- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp b/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp index 85483564eb5c..e8314a1d8660 100644 --- a/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp +++ b/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp @@ -597,7 +597,7 @@ namespace { /// MachineRelocations that reference external functions by name. const StringMap &getExternalFnStubs() const { return ExtFnStubs; } - virtual void processDebugLoc(DebugLoc DL); + virtual void processDebugLoc(DebugLoc DL, bool BeforePrintingInsn); virtual void emitLabel(uint64_t LabelID) { if (LabelLocations.size() <= LabelID) @@ -708,18 +708,20 @@ void JITEmitter::AddStubToCurrentFunction(void *StubAddr) { FnRefs.insert(CurFn); } -void JITEmitter::processDebugLoc(DebugLoc DL) { +void JITEmitter::processDebugLoc(DebugLoc DL, bool BeforePrintingInsn) { if (!DL.isUnknown()) { DebugLocTuple CurDLT = EmissionDetails.MF->getDebugLocTuple(DL); - if (CurDLT.CompileUnit != 0 && PrevDLT != CurDLT) { - JITEvent_EmittedFunctionDetails::LineStart NextLine; - NextLine.Address = getCurrentPCValue(); - NextLine.Loc = DL; - EmissionDetails.LineStarts.push_back(NextLine); + if (BeforePrintingInsn) { + if (CurDLT.CompileUnit != 0 && PrevDLT != CurDLT) { + JITEvent_EmittedFunctionDetails::LineStart NextLine; + NextLine.Address = getCurrentPCValue(); + NextLine.Loc = DL; + EmissionDetails.LineStarts.push_back(NextLine); + } + + PrevDLT = CurDLT; } - - PrevDLT = CurDLT; } }