LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
flowgraph.hh
Go to the documentation of this file.
1 
6 #ifndef LIVENESS_FLOWGRAPH_HH
7 # define LIVENESS_FLOWGRAPH_HH
8 
9 # include <assem/libassem.hh>
10 # include <misc/graph.hh>
11 # include <misc/timer.hh>
12 
13 namespace liveness
14 {
15 
17  template <typename EdgeLabel = misc::empty>
18  class FlowGraph
19  : public misc::directed_graph<const assem::Instr*, EdgeLabel>
20  {
21  public:
26 
28 
29  public:
30  FlowGraph(const std::string& name,
31  const assem::Instrs& instrs);
32  // The flowgraph timer.
33  const misc::timer& timer_get() const;
34 
35  protected:
37  virtual std::ostream&
38  vertex_print(vertex_descriptor v, std::ostream& ostr) const;
39 
42  protected:
46  };
47 
48 } // namespace liveness
49 
50 # include <liveness/flowgraph.hxx>
51 
52 #endif // !LIVENESS_FLOWGRAPH_HH