Make the LegalizeType method naming scheme more regular.
[oota-llvm.git] / lib / CodeGen / DwarfWriter.cpp
index 784bf930b584db7690734a66ba13d83a43c8323b..a5862c9e872b9d2c39428c605adccb28dfa659bb 100644 (file)
@@ -140,7 +140,7 @@ private:
 
   /// Data - Raw data bytes for abbreviation.
   ///
-  std::vector<DIEAbbrevData> Data;
+  SmallVector<DIEAbbrevData, 8> Data;
 
 public:
 
@@ -155,7 +155,7 @@ public:
   unsigned getTag()                           const { return Tag; }
   unsigned getNumber()                        const { return Number; }
   unsigned getChildrenFlag()                  const { return ChildrenFlag; }
-  const std::vector<DIEAbbrevData> &getData() const { return Data; }
+  const SmallVector<DIEAbbrevData, 8> &getData() const { return Data; }
   void setTag(unsigned T)                           { Tag = T; }
   void setChildrenFlag(unsigned CF)                 { ChildrenFlag = CF; }
   void setNumber(unsigned N)                        { Number = N; }
@@ -219,7 +219,7 @@ protected:
   
   /// Attributes values.
   ///
-  std::vector<DIEValue *> Values;
+  SmallVector<DIEValue*, 32> Values;
   
 public:
   explicit DIE(unsigned Tag)
@@ -240,7 +240,7 @@ public:
   unsigned getOffset()                       const { return Offset; }
   unsigned getSize()                         const { return Size; }
   const std::vector<DIE *> &getChildren()    const { return Children; }
-  std::vector<DIEValue *> &getValues()       { return Values; }
+  SmallVector<DIEValue*, 32> &getValues()       { return Values; }
   void setTag(unsigned Tag)                  { Abbrev.setTag(Tag); }
   void setOffset(unsigned O)                 { Offset = O; }
   void setSize(unsigned S)                   { Size = S; }
@@ -826,7 +826,7 @@ protected:
   ///
   AsmPrinter *Asm;
   
-  /// TAI - Target Asm Printer.
+  /// TAI - Target asm information.
   const TargetAsmInfo *TAI;
   
   /// TD - Target data.
@@ -1091,7 +1091,10 @@ public:
           Asm->EOL("Offset");
         } else if (Reg < 64) {
           Asm->EmitInt8(DW_CFA_offset + Reg);
-          Asm->EOL("DW_CFA_offset + Reg (" + utostr(Reg) + ")");
+          if (VerboseAsm)
+            Asm->EOL("DW_CFA_offset + Reg (" + utostr(Reg) + ")");
+          else
+            Asm->EOL();
           Asm->EmitULEB128Bytes(Offset);
           Asm->EOL("Offset");
         } else {
@@ -2075,14 +2078,18 @@ private:
 
     // Emit the code (index) for the abbreviation.
     Asm->EmitULEB128Bytes(AbbrevNumber);
-    Asm->EOL(std::string("Abbrev [" +
-             utostr(AbbrevNumber) +
-             "] 0x" + utohexstr(Die->getOffset()) +
-             ":0x" + utohexstr(Die->getSize()) + " " +
-             TagString(Abbrev->getTag())));
+
+    if (VerboseAsm)
+      Asm->EOL(std::string("Abbrev [" +
+                           utostr(AbbrevNumber) +
+                           "] 0x" + utohexstr(Die->getOffset()) +
+                           ":0x" + utohexstr(Die->getSize()) + " " +
+                           TagString(Abbrev->getTag())));
+    else
+      Asm->EOL();
     
-    std::vector<DIEValue *> &Values = Die->getValues();
-    const std::vector<DIEAbbrevData> &AbbrevData = Abbrev->getData();
+    SmallVector<DIEValue*, 32> &Values = Die->getValues();
+    const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev->getData();
     
     // Emit the DIE attribute values.
     for (unsigned i = 0, N = Values.size(); i < N; ++i) {
@@ -2139,8 +2146,8 @@ private:
     // Start the size with the size of abbreviation code.
     Offset += Asm->SizeULEB128(AbbrevNumber);
     
-    const std::vector<DIEValue *> &Values = Die->getValues();
-    const std::vector<DIEAbbrevData> &AbbrevData = Abbrev->getData();
+    const SmallVector<DIEValue*, 32> &Values = Die->getValues();
+    const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev->getData();
 
     // Size the DIE attribute values.
     for (unsigned i = 0, N = Values.size(); i < N; ++i) {
@@ -2296,8 +2303,7 @@ private:
     Asm->EmitInt8(1); Asm->EOL("DW_LNS_fixed_advance_pc arg count");
 
     const UniqueVector<std::string> &Directories = MMI->getDirectories();
-    const UniqueVector<SourceFileInfo>
-      &SourceFiles = MMI->getSourceFiles();
+    const UniqueVector<SourceFileInfo> &SourceFiles = MMI->getSourceFiles();
 
     // Emit directories.
     for (unsigned DirectoryID = 1, NDID = Directories.size();
@@ -2327,8 +2333,11 @@ private:
     for (unsigned j = 0, M = SectionSourceLines.size(); j < M; ++j) {
       // Isolate current sections line info.
       const std::vector<SourceLineInfo> &LineInfos = SectionSourceLines[j];
-      
-      Asm->EOL(std::string("Section ") + SectionMap[j + 1]);
+
+      if (VerboseAsm)
+        Asm->EOL(std::string("Section ") + SectionMap[j + 1]);
+      else
+        Asm->EOL();
 
       // Dwarf assumes we start with first line of first source file.
       unsigned Source = 1;
@@ -2343,10 +2352,13 @@ private:
         unsigned SourceID = LineInfo.getSourceID();
         const SourceFileInfo &SourceFile = SourceFiles[SourceID];
         unsigned DirectoryID = SourceFile.getDirectoryID();
-        Asm->EOL(Directories[DirectoryID]
-          + SourceFile.getName()
-          + ":"
-          + utostr_32(LineInfo.getLine()));
+        if (VerboseAsm)
+          Asm->EOL(Directories[DirectoryID]
+                   + SourceFile.getName()
+                   + ":"
+                   + utostr_32(LineInfo.getLine()));
+        else
+          Asm->EOL();
 
         // Define the line address.
         Asm->EmitInt8(0); Asm->EOL("Extended Op");
@@ -2621,8 +2633,8 @@ private:
   /// ConstructGlobalDIEs - Create DIEs for each of the externally visible
   /// global variables.
   void ConstructGlobalDIEs() {
-    std::vector<GlobalVariableDesc *> GlobalVariables =
-        MMI->getAnchoredDescriptors<GlobalVariableDesc>(*M);
+    std::vector<GlobalVariableDesc *> GlobalVariables;
+    MMI->getAnchoredDescriptors<GlobalVariableDesc>(*M, GlobalVariables);
     
     for (unsigned i = 0, N = GlobalVariables.size(); i < N; ++i) {
       GlobalVariableDesc *GVD = GlobalVariables[i];
@@ -2633,8 +2645,8 @@ private:
   /// ConstructSubprogramDIEs - Create DIEs for each of the externally visible
   /// subprograms.
   void ConstructSubprogramDIEs() {
-    std::vector<SubprogramDesc *> Subprograms =
-        MMI->getAnchoredDescriptors<SubprogramDesc>(*M);
+    std::vector<SubprogramDesc *> Subprograms;
+    MMI->getAnchoredDescriptors<SubprogramDesc>(*M, Subprograms);
     
     for (unsigned i = 0, N = Subprograms.size(); i < N; ++i) {
       SubprogramDesc *SPD = Subprograms[i];
@@ -2711,8 +2723,6 @@ public:
   /// content.
   void BeginModule(Module *M) {
     this->M = M;
-    
-    if (!ShouldEmitDwarf()) return;
   }
 
   /// EndModule - Emit all Dwarf sections that should come after the content.
@@ -3261,7 +3271,7 @@ private:
          I != E; ++I) {
       for (MachineBasicBlock::const_iterator MI = I->begin(), E = I->end();
            MI != E; ++MI) {
-        if (MI->getOpcode() != TargetInstrInfo::LABEL) {
+        if (!MI->isLabel()) {
           SawPotentiallyThrowing |= MI->getDesc().isCall();
           continue;
         }
@@ -3304,7 +3314,7 @@ private:
 
           // Try to merge with the previous call-site.
           if (PreviousIsInvoke) {
-            CallSiteEntry &Prev = CallSites[CallSites.size()-1];
+            CallSiteEntry &Prev = CallSites.back();
             if (Site.PadLabel == Prev.PadLabel && Site.Action == Prev.Action) {
               // Extend the range of the previous entry.
               Prev.EndLabel = Site.EndLabel;
@@ -3503,9 +3513,7 @@ public:
         shouldEmitTable = true;
 
       // See if we need frame move info.
-      if (MMI->hasDebugInfo() || 
-          !MF->getFunction()->doesNotThrow() ||
-          UnwindTablesMandatory)
+      if (!MF->getFunction()->doesNotThrow() || UnwindTablesMandatory)
         shouldEmitMoves = true;
 
       if (shouldEmitMoves || shouldEmitTable)
@@ -3726,7 +3734,7 @@ void DIEntry::EmitValue(DwarfDebug &DD, unsigned Form) {
 ///
 unsigned DIEBlock::ComputeSize(DwarfDebug &DD) {
   if (!Size) {
-    const std::vector<DIEAbbrevData> &AbbrevData = Abbrev.getData();
+    const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev.getData();
     
     for (unsigned i = 0, N = Values.size(); i < N; ++i) {
       Size += Values[i]->SizeOf(DD, AbbrevData[i].getForm());
@@ -3746,7 +3754,7 @@ void DIEBlock::EmitValue(DwarfDebug &DD, unsigned Form) {
   default: assert(0 && "Improper form for block");          break;
   }
   
-  const std::vector<DIEAbbrevData> &AbbrevData = Abbrev.getData();
+  const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev.getData();
 
   for (unsigned i = 0, N = Values.size(); i < N; ++i) {
     DD.getAsm()->EOL();
@@ -3819,7 +3827,7 @@ void DIE::print(std::ostream &O, unsigned IncIndent) {
   }
   O << "\n";
 
-  const std::vector<DIEAbbrevData> &Data = Abbrev.getData();
+  const SmallVector<DIEAbbrevData, 8> &Data = Abbrev.getData();
   
   IndentCount += 2;
   for (unsigned i = 0, N = Data.size(); i < N; ++i) {