mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
Continue to hoist uses of getCompileUnit() up. The goal is to get rid of uses of getCompileUnit().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137683 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e17a14e2de
commit
3655a21b15
@ -539,28 +539,22 @@ CompileUnit *DwarfDebug::getCompileUnit(const MDNode *N) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// constructGlobalVariableDIE - Construct global variable DIE.
|
/// constructGlobalVariableDIE - Construct global variable DIE.
|
||||||
void DwarfDebug::constructGlobalVariableDIE(const MDNode *N) {
|
void DwarfDebug::constructGlobalVariableDIE(CompileUnit *TheCU,
|
||||||
|
const MDNode *N) {
|
||||||
DIGlobalVariable GV(N);
|
DIGlobalVariable GV(N);
|
||||||
|
|
||||||
// If debug information is malformed then ignore it.
|
// If debug information is malformed then ignore it.
|
||||||
if (GV.Verify() == false)
|
if (GV.Verify() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Check for pre-existence.
|
|
||||||
CompileUnit *TheCU = getCompileUnit(N);
|
|
||||||
TheCU->createGlobalVariableDIE(N);
|
TheCU->createGlobalVariableDIE(N);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// construct SubprogramDIE - Construct subprogram DIE.
|
/// construct SubprogramDIE - Construct subprogram DIE.
|
||||||
void DwarfDebug::constructSubprogramDIE(const MDNode *N) {
|
void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU,
|
||||||
|
const MDNode *N) {
|
||||||
DISubprogram SP(N);
|
DISubprogram SP(N);
|
||||||
|
|
||||||
// Check for pre-existence.
|
|
||||||
CompileUnit *TheCU = getCompileUnit(N);
|
|
||||||
if (TheCU->getDIE(N))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!SP.isDefinition())
|
if (!SP.isDefinition())
|
||||||
// This is a method declaration which will be handled while constructing
|
// This is a method declaration which will be handled while constructing
|
||||||
// class type.
|
// class type.
|
||||||
@ -603,12 +597,16 @@ void DwarfDebug::beginModule(Module *M) {
|
|||||||
constructCompileUnit(CU_Nodes->getOperand(i));
|
constructCompileUnit(CU_Nodes->getOperand(i));
|
||||||
|
|
||||||
if (GV_Nodes)
|
if (GV_Nodes)
|
||||||
for (unsigned i = 0, e = GV_Nodes->getNumOperands(); i != e; ++i)
|
for (unsigned i = 0, e = GV_Nodes->getNumOperands(); i != e; ++i) {
|
||||||
constructGlobalVariableDIE(GV_Nodes->getOperand(i));
|
const MDNode *N = GV_Nodes->getOperand(i);
|
||||||
|
constructGlobalVariableDIE(getCompileUnit(N), N);
|
||||||
|
}
|
||||||
|
|
||||||
if (SP_Nodes)
|
if (SP_Nodes)
|
||||||
for (unsigned i = 0, e = SP_Nodes->getNumOperands(); i != e; ++i)
|
for (unsigned i = 0, e = SP_Nodes->getNumOperands(); i != e; ++i) {
|
||||||
constructSubprogramDIE(SP_Nodes->getOperand(i));
|
const MDNode *N = SP_Nodes->getOperand(i);
|
||||||
|
constructSubprogramDIE(getCompileUnit(N), N);
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -634,13 +632,18 @@ void DwarfDebug::beginModule(Module *M) {
|
|||||||
|
|
||||||
// Create DIEs for each global variable.
|
// Create DIEs for each global variable.
|
||||||
for (DebugInfoFinder::iterator I = DbgFinder.global_variable_begin(),
|
for (DebugInfoFinder::iterator I = DbgFinder.global_variable_begin(),
|
||||||
E = DbgFinder.global_variable_end(); I != E; ++I)
|
E = DbgFinder.global_variable_end(); I != E; ++I) {
|
||||||
constructGlobalVariableDIE(*I);
|
const MDNode *N = *I;
|
||||||
|
if (DIGlobalVariable(N).getVersion() <= LLVMDebugVersion9)
|
||||||
|
constructGlobalVariableDIE(getCompileUnit(N), N);
|
||||||
|
}
|
||||||
|
|
||||||
// Create DIEs for each subprogram.
|
// Create DIEs for each subprogram.
|
||||||
for (DebugInfoFinder::iterator I = DbgFinder.subprogram_begin(),
|
for (DebugInfoFinder::iterator I = DbgFinder.subprogram_begin(),
|
||||||
E = DbgFinder.subprogram_end(); I != E; ++I)
|
E = DbgFinder.subprogram_end(); I != E; ++I) {
|
||||||
constructSubprogramDIE(*I);
|
const MDNode *N = *I;
|
||||||
|
constructSubprogramDIE(getCompileUnit(N), N);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tell MMI that we have debug info.
|
// Tell MMI that we have debug info.
|
||||||
@ -698,8 +701,8 @@ void DwarfDebug::endModule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Construct subprogram DIE and add variables DIEs.
|
// Construct subprogram DIE and add variables DIEs.
|
||||||
constructSubprogramDIE(SP);
|
|
||||||
CompileUnit *SPCU = getCompileUnit(SP);
|
CompileUnit *SPCU = getCompileUnit(SP);
|
||||||
|
constructSubprogramDIE(SPCU, SP);
|
||||||
DIE *ScopeDIE = SPCU->getDIE(SP);
|
DIE *ScopeDIE = SPCU->getDIE(SP);
|
||||||
for (unsigned i = 0, N = Variables.size(); i < N; ++i) {
|
for (unsigned i = 0, N = Variables.size(); i < N; ++i) {
|
||||||
if (DIE *VariableDIE =
|
if (DIE *VariableDIE =
|
||||||
|
@ -416,10 +416,10 @@ private:
|
|||||||
CompileUnit *getCompileUnit(const MDNode *N) const;
|
CompileUnit *getCompileUnit(const MDNode *N) const;
|
||||||
|
|
||||||
/// constructGlobalVariableDIE - Construct global variable DIE.
|
/// constructGlobalVariableDIE - Construct global variable DIE.
|
||||||
void constructGlobalVariableDIE(const MDNode *N);
|
void constructGlobalVariableDIE(CompileUnit *TheCU, const MDNode *N);
|
||||||
|
|
||||||
/// construct SubprogramDIE - Construct subprogram DIE.
|
/// construct SubprogramDIE - Construct subprogram DIE.
|
||||||
void constructSubprogramDIE(const MDNode *N);
|
void constructSubprogramDIE(CompileUnit *TheCU, const MDNode *N);
|
||||||
|
|
||||||
/// recordSourceLine - Register a source line with debug info. Returns the
|
/// recordSourceLine - Register a source line with debug info. Returns the
|
||||||
/// unique label that was emitted and which provides correspondence to
|
/// unique label that was emitted and which provides correspondence to
|
||||||
|
Loading…
Reference in New Issue
Block a user