mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Use a better name for compile unit labels.
They mark the start of a compile unit, so name them .Lcu_*. Using Section->getLabelBeginName() makes it looks like they mark the start of the section. While at it, switch to createTempSymbol to avoid collisions with labels created in inline assembly. Not sure if a "don't crash" test is worth it. With this getLabelBeginName is dead, delete it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231750 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ec53c65238
commit
44292e80ac
@ -52,10 +52,6 @@ namespace llvm {
|
|||||||
raw_ostream &OS,
|
raw_ostream &OS,
|
||||||
const MCExpr *Subsection) const = 0;
|
const MCExpr *Subsection) const = 0;
|
||||||
|
|
||||||
// Convenience routines to get label names for the beginning/end of a
|
|
||||||
// section.
|
|
||||||
virtual std::string getLabelBeginName() const = 0;
|
|
||||||
|
|
||||||
/// isBaseAddressKnownZero - Return true if we know that this section will
|
/// isBaseAddressKnownZero - Return true if we know that this section will
|
||||||
/// get a base address of zero. In cases where we know that this is true we
|
/// get a base address of zero. In cases where we know that this is true we
|
||||||
/// can emit section offsets as direct references to avoid a subtraction
|
/// can emit section offsets as direct references to avoid a subtraction
|
||||||
|
@ -60,9 +60,6 @@ class MCSymbol;
|
|||||||
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
||||||
|
|
||||||
StringRef getSectionName() const { return SectionName; }
|
StringRef getSectionName() const { return SectionName; }
|
||||||
std::string getLabelBeginName() const override {
|
|
||||||
return SectionName.str() + "_begin";
|
|
||||||
}
|
|
||||||
unsigned getCharacteristics() const { return Characteristics; }
|
unsigned getCharacteristics() const { return Characteristics; }
|
||||||
MCSymbol *getCOMDATSymbol() const { return COMDATSymbol; }
|
MCSymbol *getCOMDATSymbol() const { return COMDATSymbol; }
|
||||||
int getSelection() const { return Selection; }
|
int getSelection() const { return Selection; }
|
||||||
|
@ -65,11 +65,6 @@ public:
|
|||||||
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
||||||
|
|
||||||
StringRef getSectionName() const { return SectionName; }
|
StringRef getSectionName() const { return SectionName; }
|
||||||
std::string getLabelBeginName() const override {
|
|
||||||
if (Group)
|
|
||||||
return (SectionName.str() + '_' + Group->getName() + "_begin").str();
|
|
||||||
return SectionName.str() + "_begin";
|
|
||||||
}
|
|
||||||
unsigned getType() const { return Type; }
|
unsigned getType() const { return Type; }
|
||||||
unsigned getFlags() const { return Flags; }
|
unsigned getFlags() const { return Flags; }
|
||||||
unsigned getEntrySize() const { return EntrySize; }
|
unsigned getEntrySize() const { return EntrySize; }
|
||||||
|
@ -53,10 +53,6 @@ public:
|
|||||||
return StringRef(SectionName);
|
return StringRef(SectionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string getLabelBeginName() const override {
|
|
||||||
return StringRef(getSegmentName().str() + getSectionName().str() + "_begin");
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned getTypeAndAttributes() const { return TypeAndAttributes; }
|
unsigned getTypeAndAttributes() const { return TypeAndAttributes; }
|
||||||
unsigned getStubSize() const { return Reserved2; }
|
unsigned getStubSize() const { return Reserved2; }
|
||||||
|
|
||||||
|
@ -714,8 +714,7 @@ void DwarfCompileUnit::collectDeadVariables(DISubprogram SP) {
|
|||||||
void DwarfCompileUnit::emitHeader(const MCSymbol *ASectionSym) {
|
void DwarfCompileUnit::emitHeader(const MCSymbol *ASectionSym) {
|
||||||
// Don't bother labeling the .dwo unit, as its offset isn't used.
|
// Don't bother labeling the .dwo unit, as its offset isn't used.
|
||||||
if (!Skeleton) {
|
if (!Skeleton) {
|
||||||
LabelBegin =
|
LabelBegin = Asm->createTempSymbol("cu_begin", getUniqueID());
|
||||||
Asm->GetTempSymbol(Section->getLabelBeginName(), getUniqueID());
|
|
||||||
Asm->OutStreamer.EmitLabel(LabelBegin);
|
Asm->OutStreamer.EmitLabel(LabelBegin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,6 @@ public:
|
|||||||
bool isBaseAddressKnownZero() const override { return true; }
|
bool isBaseAddressKnownZero() const override { return true; }
|
||||||
bool UseCodeAlign() const override { return false; }
|
bool UseCodeAlign() const override { return false; }
|
||||||
bool isVirtualSection() const override { return false; }
|
bool isVirtualSection() const override { return false; }
|
||||||
std::string getLabelBeginName() const override { return ""; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
; -- header --
|
; -- header --
|
||||||
; CHECK: .short 2 # DWARF Arange version number
|
; CHECK: .short 2 # DWARF Arange version number
|
||||||
; CHECK-NEXT: .long .L.debug_info_begin0
|
; CHECK-NEXT: .long .Lcu_begin0
|
||||||
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
||||||
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
||||||
; -- alignment --
|
; -- alignment --
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
; CHECK: .LpubTypes_begin0:
|
; CHECK: .LpubTypes_begin0:
|
||||||
; CHECK-NEXT: .short 2 # DWARF Version
|
; CHECK-NEXT: .short 2 # DWARF Version
|
||||||
; CHECK-NEXT: .long .L.debug_info_begin0 # Offset of Compilation Unit Info
|
; CHECK-NEXT: .long .Lcu_begin0 # Offset of Compilation Unit Info
|
||||||
|
|
||||||
; Function Attrs: nounwind uwtable
|
; Function Attrs: nounwind uwtable
|
||||||
define i32 @main() #0 {
|
define i32 @main() #0 {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
; First CU
|
; First CU
|
||||||
; CHECK-NEXT: .long 44 # Length of ARange Set
|
; CHECK-NEXT: .long 44 # Length of ARange Set
|
||||||
; CHECK-NEXT: .short 2 # DWARF Arange version number
|
; CHECK-NEXT: .short 2 # DWARF Arange version number
|
||||||
; CHECK-NEXT: .long .L.debug_info_begin0 # Offset Into Debug Info Section
|
; CHECK-NEXT: .long .Lcu_begin0 # Offset Into Debug Info Section
|
||||||
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
||||||
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
||||||
; CHECK-NEXT: .zero 4,255
|
; CHECK-NEXT: .zero 4,255
|
||||||
@ -18,7 +18,7 @@
|
|||||||
; Second CU
|
; Second CU
|
||||||
; CHECK-NEXT: .long 44 # Length of ARange Set
|
; CHECK-NEXT: .long 44 # Length of ARange Set
|
||||||
; CHECK-NEXT: .short 2 # DWARF Arange version number
|
; CHECK-NEXT: .short 2 # DWARF Arange version number
|
||||||
; CHECK-NEXT: .long .L.debug_info_begin1 # Offset Into Debug Info Section
|
; CHECK-NEXT: .long .Lcu_begin1 # Offset Into Debug Info Section
|
||||||
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
; CHECK-NEXT: .byte 8 # Address Size (in bytes)
|
||||||
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
|
||||||
; CHECK-NEXT: .zero 4,255
|
; CHECK-NEXT: .zero 4,255
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
; CHECK: DW_TAG_variable
|
; CHECK: DW_TAG_variable
|
||||||
; CHECK: .long [[TYPE:.*]] # DW_AT_type
|
; CHECK: .long [[TYPE:.*]] # DW_AT_type
|
||||||
; CHECK: DW_TAG_structure_type
|
; CHECK: DW_TAG_structure_type
|
||||||
; CHECK: debug_info_begin1
|
; CHECK: cu_begin1
|
||||||
; CHECK: DW_TAG_compile_unit
|
; CHECK: DW_TAG_compile_unit
|
||||||
; CHECK-NOT: DW_TAG_structure_type
|
; CHECK-NOT: DW_TAG_structure_type
|
||||||
; This variable's type is in the 1st CU.
|
; This variable's type is in the 1st CU.
|
||||||
|
@ -50,10 +50,10 @@
|
|||||||
; DWARF3-NOT: file_names
|
; DWARF3-NOT: file_names
|
||||||
|
|
||||||
; PR15408
|
; PR15408
|
||||||
; ASM: L__DWARF__debug_info_begin0:
|
; ASM: Lcu_begin0:
|
||||||
; ASM: Lset3 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
|
; ASM: Lset3 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
|
||||||
; ASM-NEXT: .long Lset3
|
; ASM-NEXT: .long Lset3
|
||||||
; ASM: L__DWARF__debug_info_begin1:
|
; ASM: Lcu_begin1:
|
||||||
; ASM: Lset13 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
|
; ASM: Lset13 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
|
||||||
; ASM-NEXT: .long Lset13
|
; ASM-NEXT: .long Lset13
|
||||||
define i32 @test(i32 %a) nounwind uwtable ssp {
|
define i32 @test(i32 %a) nounwind uwtable ssp {
|
||||||
|
Loading…
Reference in New Issue
Block a user