-//===- Expressions.cpp - Expression Analysis Utilities ----------------------=//
+//===- Expressions.cpp - Expression Analysis Utilities --------------------===//
//
// This file defines a package of expression analysis utilties:
//
-//===- FindUnsafePointerTypes.cpp - Check pointer usage safety --------------=//
+//===- FindUnsafePointerTypes.cpp - Check pointer usage safety ------------===//
//
// This file defines a pass that can be used to determine, interprocedurally,
// which pointer types are accessed unsafely in a program. If there is an
-//===- FindUsedTypes.cpp - Find all Types used by a module ------------------=//
+//===- FindUsedTypes.cpp - Find all Types used by a module ----------------===//
//
// This pass is used to seek out all of the types in use by the program.
//
-//===- Interval.cpp - Interval class code ------------------------*- C++ -*--=//
+//===- Interval.cpp - Interval class code ---------------------------------===//
//
// This file contains the definition of the Interval class, which represents a
// partition of a control flow graph of some kind.
-//===- IntervalPartition.cpp - Interval Partition module code ----*- C++ -*--=//
+//===- IntervalPartition.cpp - Interval Partition module code -------------===//
//
// This file contains the definition of the IntervalPartition class, which
// calculates and represent the interval partition of a function.
#include "llvm/Analysis/IntervalIterator.h"
#include "Support/STLExtras.h"
-using std::make_pair;
-
static RegisterAnalysis<IntervalPartition>
X("intervals", "Interval Partition Construction", true);
// Add mappings for all of the basic blocks in I to the IntervalPartition
for (Interval::node_iterator It = I->Nodes.begin(), End = I->Nodes.end();
It != End; ++It)
- IntervalMap.insert(make_pair(*It, I));
+ IntervalMap.insert(std::make_pair(*It, I));
}
// updatePredecessors - Interval generation only sets the successor fields of
-//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ----*- C++ -*--=//
+//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ---*- C++ -*-===//
//
// This is a BasicBlock annotation class that is used by live var analysis to
// hold data flow information for a basic block.
-//===- LoopInfo.cpp - Natural Loop Calculator -------------------------------=//
+//===- LoopInfo.cpp - Natural Loop Calculator -----------------------------===//
//
// This file defines the LoopInfo class that is used to identify natural loops
// and determine the loop depth of various nodes of the CFG. Note that the
-//===-- ParserInternals.h - Definitions internal to the parser ---*- C++ -*--=//
+//===-- ParserInternals.h - Definitions internal to the parser --*- C++ -*-===//
//
// This header file defines the various variables that are shared among the
// different components of the parser...
-//===-- llvmAsmParser.y - Parser for llvm assembly files ---------*- C++ -*--=//
+//===-- llvmAsmParser.y - Parser for llvm assembly files --------*- C++ -*-===//
//
// This file implements the bison parser for LLVM assembly languages files.
//
-//===------------------------------------------------------------------------=//
+//===----------------------------------------------------------------------===//
%{
#include "ParserInternals.h"
-//===-- ReaderInternals.h - Definitions internal to the reader ---*- C++ -*--=//
+//===-- ReaderInternals.h - Definitions internal to the reader ------------===//
//
// This header file defines various stuff that is used by the bytecode reader.
//
-//===-- WriteConst.cpp - Functions for writing constants ---------*- C++ -*--=//
+//===-- ConstantWriter.cpp - Functions for writing constants --------------===//
//
// This file implements the routines for encoding constants to a bytecode
// stream.
//
-// Note that the performance of this library is not terribly important, because
-// it shouldn't be used by JIT type applications... so it is not a huge focus
-// at least. :)
-//
//===----------------------------------------------------------------------===//
#include "WriterInternals.h"
-//===-- WriteInst.cpp - Functions for writing instructions -------*- C++ -*--=//
+//===-- InstructionWriter.cpp - Functions for writing instructions --------===//
//
// This file implements the routines for encoding instruction opcodes to a
// bytecode stream.
//
-// Note that the performance of this library is not terribly important, because
-// it shouldn't be used by JIT type applications... so it is not a huge focus
-// at least. :)
-//
//===----------------------------------------------------------------------===//
#include "WriterInternals.h"
-//===-- SlotCalculator.cpp - Calculate what slots values land in ------------=//
+//===-- SlotCalculator.cpp - Calculate what slots values land in ----------===//
//
// This file implements a useful analysis step to figure out what numbered
// slots values in a program will land in (keeping track of per plane
-//===-- Writer.cpp - Library for writing VM bytecode files -------*- C++ -*--=//
+//===-- Writer.cpp - Library for writing VM bytecode files ----------------===//
//
// This library implements the functionality defined in llvm/Bytecode/Writer.h
//
-//===-- WriterInternals.h - Data structures shared by the Writer -*- C++ -*--=//
+//===- WriterInternals.h - Data structures shared by the Writer -*- C++ -*-===//
//
// This header defines the interface used between components of the bytecode
// writer.
-//===-- SchedGraph.h - Scheduling Graph --------------------------*- C++ -*--=//
+//===-- SchedGraph.h - Scheduling Graph -------------------------*- C++ -*-===//
//
-// Purpose:
-// Scheduling graph based on SSA graph plus extra dependence edges
-// capturing dependences due to machine resources (machine registers,
-// CC registers, and any others).
+// This is a scheduling graph based on SSA graph plus extra dependence edges
+// capturing dependences due to machine resources (machine registers, CC
+// registers, and any others).
//
-// Strategy:
-// This graph tries to leverage the SSA graph as much as possible,
-// but captures the extra dependences through a common interface.
+// This graph tries to leverage the SSA graph as much as possible, but captures
+// the extra dependences through a common interface.
//
//===----------------------------------------------------------------------===//
-//===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS --*- C++ -*--=//
+//===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS -----------===//
//
// The is a software pipelining pass based on the Swing Modulo Scheduling
// algorithm (SMS).
-//===-- Annotation.cpp - Implement the Annotation Classes --------*- C++ -*--=//
+//===-- Annotation.cpp - Implement the Annotation Classes -----------------===//
//
// This file implements the AnnotationManager class.
//
-//===-- SchedGraph.h - Scheduling Graph --------------------------*- C++ -*--=//
+//===-- SchedGraph.h - Scheduling Graph -------------------------*- C++ -*-===//
//
-// Purpose:
-// Scheduling graph based on SSA graph plus extra dependence edges
-// capturing dependences due to machine resources (machine registers,
-// CC registers, and any others).
+// This is a scheduling graph based on SSA graph plus extra dependence edges
+// capturing dependences due to machine resources (machine registers, CC
+// registers, and any others).
//
-// Strategy:
-// This graph tries to leverage the SSA graph as much as possible,
-// but captures the extra dependences through a common interface.
+// This graph tries to leverage the SSA graph as much as possible, but captures
+// the extra dependences through a common interface.
//
//===----------------------------------------------------------------------===//
-//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ----*- C++ -*--=//
+//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ---*- C++ -*-===//
//
// This is a BasicBlock annotation class that is used by live var analysis to
// hold data flow information for a basic block.
-//===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS --*- C++ -*--=//
+//===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS -----------===//
//
// The is a software pipelining pass based on the Swing Modulo Scheduling
// algorithm (SMS).
-//===-- SparcRegClassInfo.h - Register class def'ns for Sparc ----*- C++ -*--=//
+//===-- SparcRegClassInfo.h - Register class def'ns for Sparc ---*- C++ -*-===//
//
-// This file defines the register classes used by the Sparc target description.
+// This file defines the register classes used by the Sparc target description.
//
//===----------------------------------------------------------------------===//
// Integer Register Class
//-----------------------------------------------------------------------------
-
struct SparcIntRegClass : public TargetRegClassInfo {
SparcIntRegClass(unsigned ID)
: TargetRegClassInfo(ID, NumOfAvailRegs, NumOfAllRegs) { }
-//===- MutateStructTypes.cpp - Change struct defns --------------------------=//
+//===- MutateStructTypes.cpp - Change struct defns ------------------------===//
//
// This pass is used to change structure accesses and type definitions in some
// way. It can be used to arbitrarily permute structure fields, safely, without
-//===- SimpleStructMutation.cpp - Swap structure elements around -*- C++ -*--=//
+//===- SimpleStructMutation.cpp - Swap structure elements around ----------===//
//
// This pass does a simple transformation that swaps all of the elements of the
// struct types in the program around.
-//===-- EmitFunctions.cpp - interface to insert instrumentation --*- C++ -*--=//
+//===-- EmitFunctions.cpp - interface to insert instrumentation -----------===//
//
// This inserts a global constant table with function pointers all along
//
-//===-- CombineBranch.cpp ------------------------------------ ---*- C++ -*--=//
+//===-- CombineBranch.cpp -------------------------------------------------===//
+//
// Pass to instrument loops
//
// At every backedge, insert a counter for that backedge and a call function
+//
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/Dominators.h"
-//===-- ------------------------llvm/graph.h ---------------------*- C++ -*--=//
+//===-- Graph.h -------------------------------------------------*- C++ -*-===//
//
-//Header file for Graph: This Graph is used by
-//PathProfiles class, and is used
-//for detecting proper points in cfg for code insertion
+// Header file for Graph: This Graph is used by PathProfiles class, and is used
+// for detecting proper points in cfg for code insertion
//
//===----------------------------------------------------------------------===//
-//===-- GrapAuxiliary.cpp- Auxiliary functions on graph ----------*- C++ -*--=//
+//===- GraphAuxiliary.cpp - Auxiliary functions on graph ------------------===//
//
-//auxiliary function associated with graph: they
-//all operate on graph, and help in inserting
-//instrumentation for trace generation
+// auxiliary function associated with graph: they all operate on graph, and help
+// in inserting instrumentation for trace generation
//
//===----------------------------------------------------------------------===//
-//===-- InstLoops.cpp ---------------------------------------- ---*- C++ -*--=//
+//===-- InstLoops.cpp -----------------------------------------------------===//
+//
// Pass to instrument loops
//
// At every backedge, insert a counter for that backedge and a call function
+//
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/Dominators.h"
BLACK
};
-namespace{
+namespace {
typedef std::map<BasicBlock *, BasicBlock *> BBMap;
struct InstLoops : public FunctionPass {
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-//===-- ProfilePaths.cpp - interface to insert instrumentation ---*- C++ -*--=//
+//===-- ProfilePaths.cpp - interface to insert instrumentation --*- C++ -*-===//
//
-// This inserts instrumentation for counting
-// execution of paths though a given function
-// Its implemented as a "Function" Pass, and called using opt
+// This inserts instrumentation for counting execution of paths though a given
+// function Its implemented as a "Function" Pass, and called using opt
//
// This pass is implemented by using algorithms similar to
// 1."Efficient Path Profiling": Ball, T. and Larus, J. R.,
-// Proceedings of Micro-29, Dec 1996, Paris, France.
+// Proceedings of Micro-29, Dec 1996, Paris, France.
// 2."Efficiently Counting Program events with support for on-line
// "queries": Ball T., ACM Transactions on Programming Languages
-// and systems, Sep 1994.
+// and systems, Sep 1994.
//
-// The algorithms work on a Graph constructed over the nodes
-// made from Basic Blocks: The transformations then take place on
-// the constructed graph (implementation in Graph.cpp and GraphAuxiliary.cpp)
-// and finally, appropriate instrumentation is placed over suitable edges.
-// (code inserted through EdgeCode.cpp).
+// The algorithms work on a Graph constructed over the nodes made from Basic
+// Blocks: The transformations then take place on the constructed graph
+// (implementation in Graph.cpp and GraphAuxiliary.cpp) and finally, appropriate
+// instrumentation is placed over suitable edges. (code inserted through
+// EdgeCode.cpp).
//
-// The algorithm inserts code such that every acyclic path in the CFG
-// of a function is identified through a unique number. the code insertion
-// is optimal in the sense that its inserted over a minimal set of edges. Also,
-// the algorithm makes sure than initialization, path increment and counter
-// update can be collapsed into minimum number of edges.
+// The algorithm inserts code such that every acyclic path in the CFG of a
+// function is identified through a unique number. the code insertion is optimal
+// in the sense that its inserted over a minimal set of edges. Also, the
+// algorithm makes sure than initialization, path increment and counter update
+// can be collapsed into minimum number of edges.
+//
//===----------------------------------------------------------------------===//
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
-//===----Instrumentation/ProfilePaths/RetracePath.cppTrigger.cpp--*- C++ -*--=//
+//===- RetracePath.cpp ----------------------------------------------------===//
//
// Retraces a path of BasicBlock, given a path number and a graph!
//
-//===- TraceValues.cpp - Value Tracing for debugging -------------*- C++ -*--=//
+//===- TraceValues.cpp - Value Tracing for debugging ----------------------===//
//
// Support for inserting LLVM code to print values at basic block and function
// exits.
-//===- LevelRaise.cpp - Code to change LLVM to higher level -----------------=//
+//===- LevelRaise.cpp - Code to change LLVM to higher level ---------------===//
//
// This file implements the 'raising' part of the LevelChange API. This is
// useful because, in general, it makes the LLVM code terser and easier to
-//===-- TransformInternals.cpp - Implement shared functions for transforms --=//
+//===- TransformInternals.cpp - Implement shared functions for transforms -===//
//
// This file defines shared functions used by the different components of the
// Transforms library.
-//===-- TransformInternals.h - Shared functions for Transforms ---*- C++ -*--=//
+//===-- TransformInternals.h - Shared functions for Transforms --*- C++ -*-===//
//
// This header file declares shared functions used by the different components
// of the Transforms library.
-//===-- Function.cpp - Implement the Global object classes -------*- C++ -*--=//
+//===-- Function.cpp - Implement the Global object classes ----------------===//
//
// This file implements the Function & GlobalVariable classes for the VMCore
// library.
-//===-- Instruction.cpp - Implement the Instruction class --------*- C++ -*--=//
+//===-- Instruction.cpp - Implement the Instruction class -----------------===//
//
// This file implements the Instruction class for the VMCore library.
//
-//===-- Module.cpp - Implement the Module class ------------------*- C++ -*--=//
+//===-- Module.cpp - Implement the Module class ---------------------------===//
//
// This file implements the Module class for the VMCore library.
//
-//===- PassManagerT.h - Container for Passes ---------------------*- C++ -*--=//
+//===- PassManagerT.h - Container for Passes ------------------------------===//
//
// This file defines the PassManagerT class. This class is used to hold,
// maintain, and optimize execution of Pass's. The PassManager class ensures
-//===-- SlotCalculator.cpp - Calculate what slots values land in ------------=//
+//===-- SlotCalculator.cpp - Calculate what slots values land in ----------===//
//
// This file implements a useful analysis step to figure out what numbered
// slots values in a program will land in (keeping track of per plane
-//===-- SymbolTable.cpp - Implement the SymbolTable class -------------------=//
+//===-- SymbolTable.cpp - Implement the SymbolTable class -----------------===//
//
// This file implements the SymbolTable class for the VMCore library.
//
-//===-- iBranch.cpp - Implement the Branch instruction -----------*- C++ -*--=//
+//===-- iBranch.cpp - Implement the Branch instruction --------------------===//
//
// This file implements the 'br' instruction, which can represent either a
// conditional or unconditional branch.
-//===-- iCall.cpp - Implement the call & invoke instructions -----*- C++ -*--=//
+//===-- iCall.cpp - Implement the call & invoke instructions --------------===//
//
// This file implements the call and invoke instructions.
//
-//===-- iSwitch.cpp - Implement the Switch instruction -----------*- C++ -*--=//
+//===-- iSwitch.cpp - Implement the Switch instruction --------------------===//
//
// This file implements the Switch instruction...
//
//
// This file implements the bison parser for Table Generator files...
//
-//===------------------------------------------------------------------------=//
+//===----------------------------------------------------------------------===//
%{
#include "Record.h"