//
// The LLVM Compiler Infrastructure
//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
#ifndef LLVM_ANALYSIS_TRACE_H
#define LLVM_ANALYSIS_TRACE_H
-#include <iosfwd>
#include <vector>
#include <cassert>
-namespace llvm {
+namespace llvm {
class BasicBlock;
class Function;
class Module;
+ class raw_ostream;
class Trace {
typedef std::vector<BasicBlock *> BasicBlockListType;
unsigned size() const { return BasicBlocks.size(); }
bool empty() const { return BasicBlocks.empty(); }
+ iterator erase(iterator q) { return BasicBlocks.erase (q); }
+ iterator erase(iterator q1, iterator q2) { return BasicBlocks.erase (q1, q2); }
+
/// print - Write trace to output stream.
///
- void print (std::ostream &O) const;
+ void print(raw_ostream &O) const;
/// dump - Debugger convenience method; writes trace to standard error
/// output stream.
///
- void dump () const;
+ void dump() const;
};
} // end namespace llvm