mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
This is the matching change for the data structure name changes for the
functional change in r147860 to use DW_TAG_label's instead TAG_subprogram's. This only changes names and updates comments. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147877 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f1f16c832f
commit
11c2defa91
@ -111,9 +111,9 @@ namespace llvm {
|
||||
/// Symbols created for the start and end of this section.
|
||||
MCSymbol *GenDwarfSectionStartSym, *GenDwarfSectionEndSym;
|
||||
|
||||
/// The information gathered from labels that will have dwarf subprogram
|
||||
/// The information gathered from labels that will have dwarf label
|
||||
/// entries when generating dwarf assembly source files.
|
||||
std::vector<const MCGenDwarfSubprogramEntry *> MCGenDwarfSubprogramEntries;
|
||||
std::vector<const MCGenDwarfLabelEntry *> MCGenDwarfLabelEntries;
|
||||
|
||||
/// The string to embed in the debug information for the compile unit, if
|
||||
/// non-empty.
|
||||
@ -287,12 +287,12 @@ namespace llvm {
|
||||
void setGenDwarfSectionEndSym(MCSymbol *Sym) {
|
||||
GenDwarfSectionEndSym = Sym;
|
||||
}
|
||||
const std::vector<const MCGenDwarfSubprogramEntry *>
|
||||
&getMCGenDwarfSubprogramEntries() const {
|
||||
return MCGenDwarfSubprogramEntries;
|
||||
const std::vector<const MCGenDwarfLabelEntry *>
|
||||
&getMCGenDwarfLabelEntries() const {
|
||||
return MCGenDwarfLabelEntries;
|
||||
}
|
||||
void addMCGenDwarfSubprogramEntry(const MCGenDwarfSubprogramEntry *E) {
|
||||
MCGenDwarfSubprogramEntries.push_back(E);
|
||||
void addMCGenDwarfLabelEntry(const MCGenDwarfLabelEntry *E) {
|
||||
MCGenDwarfLabelEntries.push_back(E);
|
||||
}
|
||||
|
||||
void setDwarfDebugFlags(StringRef S) { DwarfDebugFlags = S; }
|
||||
|
@ -239,8 +239,8 @@ namespace llvm {
|
||||
};
|
||||
|
||||
// When generating dwarf for assembly source files this is the info that is
|
||||
// needed to be gathered for each symbol that will have a dwarf2_subprogram.
|
||||
class MCGenDwarfSubprogramEntry {
|
||||
// needed to be gathered for each symbol that will have a dwarf label.
|
||||
class MCGenDwarfLabelEntry {
|
||||
private:
|
||||
// Name of the symbol without a leading underbar, if any.
|
||||
StringRef Name;
|
||||
@ -248,14 +248,12 @@ namespace llvm {
|
||||
unsigned FileNumber;
|
||||
// The line number this symbol is at.
|
||||
unsigned LineNumber;
|
||||
// The low_pc for the dwarf2_subprogram is taken from this symbol. The
|
||||
// high_pc is taken from the next symbol's value or the end of the section
|
||||
// for the last symbol
|
||||
// The low_pc for the dwarf label is taken from this symbol.
|
||||
MCSymbol *Label;
|
||||
|
||||
public:
|
||||
MCGenDwarfSubprogramEntry(StringRef name, unsigned fileNumber,
|
||||
unsigned lineNumber, MCSymbol *label) :
|
||||
MCGenDwarfLabelEntry(StringRef name, unsigned fileNumber,
|
||||
unsigned lineNumber, MCSymbol *label) :
|
||||
Name(name), FileNumber(fileNumber), LineNumber(lineNumber), Label(label){}
|
||||
|
||||
StringRef getName() const { return Name; }
|
||||
|
@ -631,13 +631,13 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS) {
|
||||
|
||||
// Third part: the list of label DIEs.
|
||||
|
||||
// Loop on saved info for dwarf subprograms and create the DIEs for them.
|
||||
const std::vector<const MCGenDwarfSubprogramEntry *> &Entries =
|
||||
MCOS->getContext().getMCGenDwarfSubprogramEntries();
|
||||
for (std::vector<const MCGenDwarfSubprogramEntry *>::const_iterator it =
|
||||
// Loop on saved info for dwarf labels and create the DIEs for them.
|
||||
const std::vector<const MCGenDwarfLabelEntry *> &Entries =
|
||||
MCOS->getContext().getMCGenDwarfLabelEntries();
|
||||
for (std::vector<const MCGenDwarfLabelEntry *>::const_iterator it =
|
||||
Entries.begin(), ie = Entries.end(); it != ie;
|
||||
++it) {
|
||||
const MCGenDwarfSubprogramEntry *Entry = *it;
|
||||
const MCGenDwarfLabelEntry *Entry = *it;
|
||||
|
||||
// The DW_TAG_label DIE abbrev (2).
|
||||
MCOS->EmitULEB128IntValue(2);
|
||||
@ -666,12 +666,12 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS) {
|
||||
// Add the NULL DIE terminating the DW_TAG_unspecified_parameters DIE's.
|
||||
MCOS->EmitIntValue(0, 1);
|
||||
}
|
||||
// Deallocate the MCGenDwarfSubprogramEntry classes that saved away the info
|
||||
// for the dwarf subprograms.
|
||||
for (std::vector<const MCGenDwarfSubprogramEntry *>::const_iterator it =
|
||||
// Deallocate the MCGenDwarfLabelEntry classes that saved away the info
|
||||
// for the dwarf labels.
|
||||
for (std::vector<const MCGenDwarfLabelEntry *>::const_iterator it =
|
||||
Entries.begin(), ie = Entries.end(); it != ie;
|
||||
++it) {
|
||||
const MCGenDwarfSubprogramEntry *Entry = *it;
|
||||
const MCGenDwarfLabelEntry *Entry = *it;
|
||||
delete Entry;
|
||||
}
|
||||
|
||||
@ -711,11 +711,11 @@ void MCGenDwarfInfo::Emit(MCStreamer *MCOS) {
|
||||
// When generating dwarf for assembly source files this is called when symbol
|
||||
// for a label is created. If this symbol is not a temporary and is in the
|
||||
// section that dwarf is being generated for, save the needed info to create
|
||||
// a dwarf subprogram.
|
||||
// a dwarf label.
|
||||
//
|
||||
void MCGenDwarfSubprogramEntry::Make(MCSymbol *Symbol, MCStreamer *MCOS,
|
||||
void MCGenDwarfLabelEntry::Make(MCSymbol *Symbol, MCStreamer *MCOS,
|
||||
SourceMgr &SrcMgr, SMLoc &Loc) {
|
||||
// We won't create dwarf subprogram's for temporary symbols or symbols not in
|
||||
// We won't create dwarf label's for temporary symbols or symbols not in
|
||||
// the default text.
|
||||
if (Symbol->isTemporary())
|
||||
return;
|
||||
@ -723,17 +723,17 @@ void MCGenDwarfSubprogramEntry::Make(MCSymbol *Symbol, MCStreamer *MCOS,
|
||||
if (context.getGenDwarfSection() != MCOS->getCurrentSection())
|
||||
return;
|
||||
|
||||
// The dwarf subprogram's name does not have the symbol name's leading
|
||||
// The dwarf label's name does not have the symbol name's leading
|
||||
// underbar if any.
|
||||
StringRef Name = Symbol->getName();
|
||||
if (Name.startswith("_"))
|
||||
Name = Name.substr(1, Name.size()-1);
|
||||
|
||||
// Get the dwarf file number to be used for the dwarf subprogram.
|
||||
// Get the dwarf file number to be used for the dwarf label.
|
||||
unsigned FileNumber = context.getGenDwarfFileNumber();
|
||||
|
||||
// Finding the line number is the expensive part which is why we just don't
|
||||
// pass it in as for some symbols we won't create a dwarf subprogram.
|
||||
// pass it in as for some symbols we won't create a dwarf label.
|
||||
int CurBuffer = SrcMgr.FindBufferContainingLoc(Loc);
|
||||
unsigned LineNumber = SrcMgr.FindLineNumber(Loc, CurBuffer);
|
||||
|
||||
@ -745,9 +745,9 @@ void MCGenDwarfSubprogramEntry::Make(MCSymbol *Symbol, MCStreamer *MCOS,
|
||||
MCOS->EmitLabel(Label);
|
||||
|
||||
// Create and entry for the info and add it to the other entries.
|
||||
MCGenDwarfSubprogramEntry *Entry =
|
||||
new MCGenDwarfSubprogramEntry(Name, FileNumber, LineNumber, Label);
|
||||
MCOS->getContext().addMCGenDwarfSubprogramEntry(Entry);
|
||||
MCGenDwarfLabelEntry *Entry =
|
||||
new MCGenDwarfLabelEntry(Name, FileNumber, LineNumber, Label);
|
||||
MCOS->getContext().addMCGenDwarfLabelEntry(Entry);
|
||||
}
|
||||
|
||||
static int getDataAlignmentFactor(MCStreamer &streamer) {
|
||||
|
@ -1076,10 +1076,10 @@ bool AsmParser::ParseStatement() {
|
||||
Out.EmitLabel(Sym);
|
||||
|
||||
// If we are generating dwarf for assembly source files then gather the
|
||||
// info to make a dwarf subprogram entry for this label if needed.
|
||||
// info to make a dwarf label entry for this label if needed.
|
||||
if (getContext().getGenDwarfForAssembly())
|
||||
MCGenDwarfSubprogramEntry::Make(Sym, &getStreamer(), getSourceManager(),
|
||||
IDLoc);
|
||||
MCGenDwarfLabelEntry::Make(Sym, &getStreamer(), getSourceManager(),
|
||||
IDLoc);
|
||||
|
||||
// Consume any end of statement token, if present, to avoid spurious
|
||||
// AddBlankLine calls().
|
||||
|
Loading…
Reference in New Issue
Block a user