forked from OSchip/llvm-project
Don't use DILocation when processing a DebugLoc.
llvm-svn: 101294
This commit is contained in:
parent
9aaaf4d5fa
commit
99bfbca6ec
|
@ -369,7 +369,7 @@ namespace {
|
|||
ValueMap<const Function *, EmittedCode,
|
||||
EmittedFunctionConfig> EmittedFunctions;
|
||||
|
||||
DILocation PrevDLT;
|
||||
DebugLoc PrevDL;
|
||||
|
||||
/// Instance of the JIT
|
||||
JIT *TheJIT;
|
||||
|
@ -377,7 +377,7 @@ namespace {
|
|||
public:
|
||||
JITEmitter(JIT &jit, JITMemoryManager *JMM, TargetMachine &TM)
|
||||
: SizeEstimate(0), Resolver(jit, *this), MMI(0), CurFn(0),
|
||||
EmittedFunctions(this), PrevDLT(NULL), TheJIT(&jit) {
|
||||
EmittedFunctions(this), TheJIT(&jit) {
|
||||
MemMgr = JMM ? JMM : JITMemoryManager::CreateDefaultMemManager();
|
||||
if (jit.getJITInfo().needsGOT()) {
|
||||
MemMgr->AllocateGOT();
|
||||
|
@ -823,19 +823,17 @@ void *JITEmitter::getPointerToGVIndirectSym(GlobalValue *V, void *Reference) {
|
|||
void JITEmitter::processDebugLoc(DebugLoc DL, bool BeforePrintingInsn) {
|
||||
if (DL.isUnknown()) return;
|
||||
if (!BeforePrintingInsn) return;
|
||||
|
||||
// FIXME: This is horribly inefficient.
|
||||
DILocation CurDLT(DL.getAsMDNode(
|
||||
EmissionDetails.MF->getFunction()->getContext()));
|
||||
|
||||
if (CurDLT.getScope().getNode() != 0 && PrevDLT.getNode() !=CurDLT.getNode()){
|
||||
const LLVMContext& Context = EmissionDetails.MF->getFunction()->getContext();
|
||||
|
||||
if (DL.getScope(Context) != 0 && PrevDL != DL) {
|
||||
JITEvent_EmittedFunctionDetails::LineStart NextLine;
|
||||
NextLine.Address = getCurrentPCValue();
|
||||
NextLine.Loc = DL;
|
||||
EmissionDetails.LineStarts.push_back(NextLine);
|
||||
}
|
||||
|
||||
PrevDLT = CurDLT;
|
||||
PrevDL = DL;
|
||||
}
|
||||
|
||||
static unsigned GetConstantPoolSizeInBytes(MachineConstantPool *MCP,
|
||||
|
@ -1212,6 +1210,9 @@ bool JITEmitter::finishFunction(MachineFunction &F) {
|
|||
TheJIT->NotifyFunctionEmitted(*F.getFunction(), FnStart, FnEnd-FnStart,
|
||||
EmissionDetails);
|
||||
|
||||
// Reset the previous debug location.
|
||||
PrevDL = DebugLoc();
|
||||
|
||||
DEBUG(dbgs() << "JIT: Finished CodeGen of [" << (void*)FnStart
|
||||
<< "] Function: " << F.getFunction()->getName()
|
||||
<< ": " << (FnEnd-FnStart) << " bytes of text, "
|
||||
|
|
Loading…
Reference in New Issue