aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2009-01-26 22:32:51 +0000
committerScott Michel <scottm@aero.org>2009-01-26 22:32:51 +0000
commit210de72cd7b139378f48dafbdac3d3379dd93c56 (patch)
tree9e6ad9f93a75de3661f2c7c48231c338b895c1ad
parent92f4f16a19c8d5edafad700a22e76eb2f22b4b31 (diff)
downloadexternal_llvm-210de72cd7b139378f48dafbdac3d3379dd93c56.zip
external_llvm-210de72cd7b139378f48dafbdac3d3379dd93c56.tar.gz
external_llvm-210de72cd7b139378f48dafbdac3d3379dd93c56.tar.bz2
Make the Dwarf macro information section optional; CellSPU's assembler
doesn't support it. The default is set to 'true', so this should not impact any other target backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63058 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Target/TargetAsmInfo.h17
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfWriter.cpp14
-rw-r--r--lib/Target/TargetAsmInfo.cpp1
3 files changed, 22 insertions, 10 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index 0de7410..bdfacf7 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -429,27 +429,31 @@ namespace llvm {
/// HasLEB128 - True if target asm supports leb128 directives.
///
bool HasLEB128; // Defaults to false.
-
+
/// hasDotLocAndDotFile - True if target asm supports .loc and .file
/// directives for emitting debugging information.
///
bool HasDotLocAndDotFile; // Defaults to false.
-
+
/// SupportsDebugInformation - True if target supports emission of debugging
/// information.
bool SupportsDebugInformation;
-
+
/// SupportsExceptionHandling - True if target supports
/// exception handling.
///
bool SupportsExceptionHandling; // Defaults to false.
-
+
/// RequiresFrameSection - true if the Dwarf2 output needs a frame section
///
bool DwarfRequiresFrameSection; // Defaults to true.
+ /// SupportsMacInfo - true if the Dwarf output supports macro information
+ ///
+ bool SupportsMacInfoSection; // Defaults to true
+
/// NonLocalEHFrameLabel - If set, the EH_frame label needs to be non-local.
- ///
+ ///
bool NonLocalEHFrameLabel; // Defaults to false.
/// GlobalEHDirective - This is the directive used to make exception frame
@@ -818,6 +822,9 @@ namespace llvm {
bool doesDwarfRequireFrameSection() const {
return DwarfRequiresFrameSection;
}
+ bool doesSupportMacInfoSection() const {
+ return SupportsMacInfoSection;
+ }
bool doesRequireNonLocalEHFrameLabel() const {
return NonLocalEHFrameLabel;
}
diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
index 4b19d06..c651cb6 100644
--- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
@@ -2167,8 +2167,10 @@ private:
EmitLabel("section_abbrev", 0);
Asm->SwitchToDataSection(TAI->getDwarfARangesSection());
EmitLabel("section_aranges", 0);
- Asm->SwitchToDataSection(TAI->getDwarfMacInfoSection());
- EmitLabel("section_macinfo", 0);
+ if (TAI->doesSupportMacInfoSection()) {
+ Asm->SwitchToDataSection(TAI->getDwarfMacInfoSection());
+ EmitLabel("section_macinfo", 0);
+ }
Asm->SwitchToDataSection(TAI->getDwarfLineSection());
EmitLabel("section_line", 0);
Asm->SwitchToDataSection(TAI->getDwarfLocSection());
@@ -2755,10 +2757,12 @@ private:
/// EmitDebugMacInfo - Emit visible names into a debug macinfo section.
///
void EmitDebugMacInfo() {
- // Start the dwarf macinfo section.
- Asm->SwitchToDataSection(TAI->getDwarfMacInfoSection());
+ if (TAI->doesSupportMacInfoSection()) {
+ // Start the dwarf macinfo section.
+ Asm->SwitchToDataSection(TAI->getDwarfMacInfoSection());
- Asm->EOL();
+ Asm->EOL();
+ }
}
/// ConstructCompileUnits - Create a compile unit DIEs.
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index 532b8b9..4666875 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -99,6 +99,7 @@ void TargetAsmInfo::fillDefaultValues() {
SupportsDebugInformation = false;
SupportsExceptionHandling = false;
DwarfRequiresFrameSection = true;
+ SupportsMacInfoSection = true;
NonLocalEHFrameLabel = false;
GlobalEHDirective = 0;
SupportsWeakOmittedEHFrame = true;