Skip to content
Marek Chalupa edited this page May 21, 2015 · 5 revisions

Welcome to the dg wiki!

At the moment, here are just some notes I'm taking about the project. These should serve me, so if you don't get them, wait until release :)

== Why just a template and not some proper classes hierarchy? ==

That's because some nice hierarchy does not have much sense here. Image this:

Node // implementation independent node

NodeImpl

DependenceGraph:
   Node *getEntry()
   Node *getExit()
   begin() // Node * iterator
   end()   // Node * iterator

DependenceGraphImpl:
  all the methods...

Ok, you have nice hierarchy, but how do you use DependenceGraph? You can get nodes, iterate over nodes, but Node * has no information about what is really inside and what is the semantics of the node. You can slice it, but what you get? Just a graph with nodes and edges, but you don't know what the nodes mean. So therefore the DependenceGraph is a template and the main class you should use is the one that you derive from it, not a generic interface.

Clone this wiki locally