LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
liveness.hh
Go to the documentation of this file.
1 
6 #ifndef LIVENESS_LIVENESS_HH
7 # define LIVENESS_LIVENESS_HH
8 
9 # include <map>
10 
11 # include <boost/graph/reverse_graph.hpp>
12 
13 # include <temp/temp-set.hh>
14 # include <assem/libassem.hh>
15 # include <liveness/flowgraph.hh>
16 
17 namespace liveness
18 {
19 
21  class Liveness : public FlowGraph<temp::temp_set_type>
22  {
23  public:
26 
27  public:
28  typedef std::map<vertex_descriptor, temp::temp_set_type> livemap_type;
29 
30  public:
52  Liveness(const std::string& name,
53  const assem::Instrs& instrs,
54  const temp::TempMap& tempmap);
55 
56  const livemap_type& liveout_get() const;
57  const livemap_type& livein_get() const;
58 
59  private:
62  };
63 
64  /*------------.
65  | Iterators. |
66  `------------*/
67 
69  typedef boost::graph_traits<Liveness>::vertex_iterator
72  typedef boost::graph_traits<Liveness>::edge_iterator
75  typedef boost::graph_traits<Liveness>::adjacency_iterator
79  typedef boost::graph_traits<boost::reverse_graph <Liveness>>::
80  adjacency_iterator
82 
83 } // namespace liveness
84 
85 #endif // !LIVENESS_LIVENESS_HH