[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp

Chris Lattner lattner at cs.uiuc.edu
Mon May 8 22:23:25 PDT 2006



Changes in directory llvm/lib/CodeGen:

AsmPrinter.cpp updated: 1.72 -> 1.73
---
Log message:

Setting SwitchToSectionDirective properly in the MASM backend permits a bunch
of code to be unified.



---
Diffs of the changes:  (+15 -22)

 AsmPrinter.cpp |   37 +++++++++++++++----------------------
 1 files changed, 15 insertions(+), 22 deletions(-)


Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.72 llvm/lib/CodeGen/AsmPrinter.cpp:1.73
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.72	Tue May  9 00:19:59 2006
+++ llvm/lib/CodeGen/AsmPrinter.cpp	Tue May  9 00:23:12 2006
@@ -102,34 +102,27 @@
 void AsmPrinter::SwitchToDataSection(const char *NewSection,
                                      const GlobalValue *GV) {
   std::string NS;
+  if (GV && GV->hasSection())
+    NS = SwitchToSectionDirective + GV->getSection();
+  else
+    NS = NewSection;
   
+  // If we're already in this section, we're done.
+  if (CurrentSection == NS) return;
+
   // Microsoft ML/MASM has a fundamentally different approach to handling
   // sections.
   
   if (MLSections) {
-    if (GV && GV->hasSection())
-      NS = GV->getSection();
-    else
-      NS = NewSection;
-    
-    if (CurrentSection != NS) {
-      if (!CurrentSection.empty())
-        O << CurrentSection << "\tends\n\n";
-      CurrentSection = NS;
-      if (!CurrentSection.empty())
-        O << CurrentSection << "\tsegment 'DATA'\n";
-    }
+    if (!CurrentSection.empty())
+      O << CurrentSection << "\tends\n\n";
+    CurrentSection = NS;
+    if (!CurrentSection.empty())
+      O << CurrentSection << "\tsegment 'DATA'\n";
   } else {
-    if (GV && GV->hasSection())
-      NS = SwitchToSectionDirective + GV->getSection();
-    else
-      NS = NewSection;
-    
-    if (CurrentSection != NS) {
-      CurrentSection = NS;
-      if (!CurrentSection.empty())
-        O << CurrentSection << '\n';
-    }
+    CurrentSection = NS;
+    if (!CurrentSection.empty())
+      O << CurrentSection << '\n';
   }
 }
 






More information about the llvm-commits mailing list