[llvm-commits] [llvm] r79358 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h include/llvm/Support/IOManip.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Chris Lattner clattner at apple.com
Tue Aug 18 23:42:54 PDT 2009


On Aug 18, 2009, at 12:22 PM, David Greene wrote:

> Author: greened
> Date: Tue Aug 18 14:22:55 2009
> New Revision: 79358
>
> URL: http://llvm.org/viewvc/llvm-project?rev=79358&view=rev
> Log:
>
> Make various changes suggested by Chris.

Thanks David,

Why did you add all the forward declarations and #include to  
AsmPrinter.h?

-Chris

>
> Removed:
>    llvm/trunk/include/llvm/Support/IOManip.h
> Modified:
>    llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>    llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=79358&r1=79357&r2=79358&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Tue Aug 18 14:22:55  
> 2009
> @@ -17,6 +17,7 @@
> #define LLVM_CODEGEN_ASMPRINTER_H
>
> #include "llvm/CodeGen/MachineFunctionPass.h"
> +#include "llvm/Support/DebugLoc.h"
> #include "llvm/Target/TargetMachine.h"
> #include "llvm/ADT/DenseMap.h"
>
> @@ -24,15 +25,22 @@
>   class GCStrategy;
>   class Constant;
>   class ConstantArray;
> +  class ConstantFP;
>   class ConstantInt;
>   class ConstantStruct;
>   class ConstantVector;
>   class GCMetadataPrinter;
> +  class GlobalValue;
>   class GlobalVariable;
> +  class MachineBasicBlock;
> +  class MachineFunction;
> +  class MachineInstr;
>   class MachineLoopInfo;
>   class MachineLoop;
> +  class MachineConstantPool;
>   class MachineConstantPoolEntry;
>   class MachineConstantPoolValue;
> +  class MachineJumpTableInfo;
>   class MachineModuleInfo;
>   class MCInst;
>   class MCContext;
> @@ -67,11 +75,6 @@
>     ///
>     MachineLoopInfo *LI;
>
> -    /// PrintChildLoopComment - Print comments about child loops
> -    /// within the loop for this basic block, with nesting.
> -    ///
> -    void PrintChildLoopComment(const MachineLoop *loop) const;
> -
>   protected:
>     /// MMI - If available, this is a pointer to the current  
> MachineModuleInfo.
>     MachineModuleInfo *MMI;
>
> Removed: llvm/trunk/include/llvm/Support/IOManip.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/IOManip.h?rev=79357&view=auto
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/Support/IOManip.h (original)
> +++ llvm/trunk/include/llvm/Support/IOManip.h (removed)
> @@ -1,43 +0,0 @@
> -//===----------------- IOManip.h - iostream manipulators --------- 
> *- C++ -*===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open  
> Source
> -// License. See LICENSE.TXT for details.
> -//
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -//
> -// Manipulators to do special-purpose formatting.
> -//
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -namespace llvm {
> -  /// Indent - Insert spaces into the character output stream.  The
> -  /// "level" is multiplied by the "scale" to calculate the number of
> -  /// spaces to insert.  "level" can represent something like loop
> -  /// nesting level, for example.
> -  ///
> -  class Indent {
> -  public:
> -    explicit Indent(int lvl, int amt = 2)
> -        : level(lvl), scale(amt) {}
> -
> -    template<typename OStream>
> -    OStream &operator()(OStream &out) const {
> -      for(int i = 0; i < level*scale; ++i) {
> -        out << " ";
> -      }
> -      return out;
> -    }
> -
> -  private:
> -    int level;
> -    int scale;
> -  };
> -
> -  template<typename OStream>
> -  OStream &operator<<(OStream &out, const Indent &indent)
> -  {
> -    return(indent(out));
> -  }
> -}
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=79358&r1=79357&r2=79358&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Tue Aug 18  
> 14:22:55 2009
> @@ -18,6 +18,7 @@
> #include "llvm/Module.h"
> #include "llvm/CodeGen/GCMetadataPrinter.h"
> #include "llvm/CodeGen/MachineConstantPool.h"
> +#include "llvm/CodeGen/MachineFunction.h"
> #include "llvm/CodeGen/MachineJumpTableInfo.h"
> #include "llvm/CodeGen/MachineLoopInfo.h"
> #include "llvm/CodeGen/MachineModuleInfo.h"
> @@ -30,7 +31,6 @@
> #include "llvm/Support/CommandLine.h"
> #include "llvm/Support/ErrorHandling.h"
> #include "llvm/Support/FormattedStream.h"
> -#include "llvm/Support/IOManip.h"
> #include "llvm/Support/Mangler.h"
> #include "llvm/Target/TargetAsmInfo.h"
> #include "llvm/Target/TargetData.h"
> @@ -48,10 +48,6 @@
> AsmVerbose("asm-verbose", cl::desc("Add comments to directives."),
>            cl::init(cl::BOU_UNSET));
>
> -static cl::opt<cl::boolOrDefault>
> -AsmExuberant("asm-exuberant", cl::desc("Add many comments."),
> -           cl::init(cl::BOU_FALSE));
> -
> char AsmPrinter::ID = 0;
> AsmPrinter::AsmPrinter(formatted_raw_ostream &o, TargetMachine &tm,
>                        const TargetAsmInfo *T, bool VDef)
> @@ -69,11 +65,6 @@
>   case cl::BOU_TRUE:  VerboseAsm = true;  break;
>   case cl::BOU_FALSE: VerboseAsm = false; break;
>   }
> -  switch (AsmExuberant) {
> -  case cl::BOU_UNSET: ExuberantAsm = false;  break;
> -  case cl::BOU_TRUE:  ExuberantAsm = true;  break;
> -  case cl::BOU_FALSE: ExuberantAsm = false; break;
> -  }
> }
>
> AsmPrinter::~AsmPrinter() {
> @@ -106,7 +97,7 @@
>   AU.setPreservesAll();
>   MachineFunctionPass::getAnalysisUsage(AU);
>   AU.addRequired<GCModuleInfo>();
> -  if (ExuberantAsm)
> +  if (VerboseAsm)
>     AU.addRequired<MachineLoopInfo>();
> }
>
> @@ -238,7 +229,7 @@
>   CurrentFnName = Mang->getMangledName(MF.getFunction());
>   IncrementFunctionNumber();
>
> -  if (ExuberantAsm) {
> +  if (VerboseAsm) {
>     LI = &getAnalysis<MachineLoopInfo>();
>   }
> }
> @@ -1802,10 +1793,50 @@
>   }
> }
>
> +/// Indent - Insert spaces into the character output stream.  The
> +/// "level" is multiplied by the "scale" to calculate the number of
> +/// spaces to insert.  "level" can represent something like loop
> +/// nesting level, for example.
> +///
> +static formatted_raw_ostream &
> +Indent(formatted_raw_ostream &out, int level, int scale = 2) {
> +  for(int i = 0; i < level*scale; ++i) {
> +    out << " ";
> +  }
> +  return out;
> +}
> +
> +/// PrintChildLoopComment - Print comments about child loops within
> +/// the loop for this basic block, with nesting.
> +///
> +static void PrintChildLoopComment(formatted_raw_ostream &O,
> +                                  const MachineLoop *loop,
> +                                  const TargetAsmInfo *TAI,
> +                                  int FunctionNumber) {
> +  // Add child loop information
> +  for(MachineLoop::iterator cl = loop->begin(),
> +        clend = loop->end();
> +      cl != clend;
> +      ++cl) {
> +    MachineBasicBlock *Header = (*cl)->getHeader();
> +    assert(Header && "No header for loop");
> +
> +    O << '\n';
> +    O.PadToColumn(TAI->getCommentColumn());
> +
> +    O << TAI->getCommentString();
> +    Indent(O, (*cl)->getLoopDepth()-1)
> +      << " Child Loop BB" << FunctionNumber << "_"
> +      << Header->getNumber() << " Depth " << (*cl)->getLoopDepth();
> +
> +    PrintChildLoopComment(O, *cl, TAI, FunctionNumber);
> +  }
> +}
> +
> /// EmitComments - Pretty-print comments for basic blocks
> void AsmPrinter::EmitComments(const MachineBasicBlock &MBB) const
> {
> -  if (ExuberantAsm) {
> +  if (VerboseAsm) {
>     // Add loop depth information
>     const MachineLoop *loop = LI->getLoopFor(&MBB);
>
> @@ -1823,7 +1854,7 @@
>
>       if (Header == &MBB) {
>         O << TAI->getCommentString() << " Loop Header";
> -        PrintChildLoopComment(loop);
> +        PrintChildLoopComment(O, loop, TAI, getFunctionNumber());
>       }
>       else {
>         O << TAI->getCommentString() << " Loop Header is BB"
> @@ -1845,30 +1876,11 @@
>
>         O << '\n';
>         O.PadToColumn(TAI->getCommentColumn());
> -        O << TAI->getCommentString() << Indent(CurLoop->getLoopDepth 
> ()-1)
> -          << " Inside Loop BB" << getFunctionNumber() << "_"
> +        O << TAI->getCommentString();
> +        Indent(O, CurLoop->getLoopDepth()-1)
> +          << " Inside Loop BB" << getFunctionNumber() << "_"
>           << Header->getNumber() << " Depth " << CurLoop- 
> >getLoopDepth();
>       }
>     }
>   }
> }
> -
> -void AsmPrinter::PrintChildLoopComment(const MachineLoop *loop)  
> const {
> -  // Add child loop information
> -  for(MachineLoop::iterator cl = loop->begin(),
> -        clend = loop->end();
> -      cl != clend;
> -      ++cl) {
> -    MachineBasicBlock *Header = (*cl)->getHeader();
> -    assert(Header && "No header for loop");
> -
> -    O << '\n';
> -    O.PadToColumn(TAI->getCommentColumn());
> -
> -    O << TAI->getCommentString() << Indent((*cl)->getLoopDepth()-1)
> -      << " Child Loop BB" << getFunctionNumber() << "_"
> -      << Header->getNumber() << " Depth " << (*cl)->getLoopDepth();
> -
> -    PrintChildLoopComment(*cl);
> -  }
> -}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list