Dear guys,<br><br>    I am implementing Nuutila's algorithm to find the strongly connected<br>components of the dependence graph of a program. The original algorithm is<br>linear on the number of edges in the graph. My algorithm, however, is not,<br>

because I am having problems with data-structures.<br><br>    Nuutila uses an array to check if he has visited a variable or<br>not; however, I am visiting llvm::Value, and I do not know how to do a<br>perfect hash with this data. I am using, instead, the following data-<br>

structures:<br><br>DenseMap<Value*, int> dfs;<br>SmallPtrSet<Value*, 2048> inComponent;<br><br>     My target programs are large. For instance, gcc's dependence graph<br>give me >450,000 nodes. Which would be the data-structures that you would<br>

recommend me to mark the visited variables?<br><br>Cheers,<br><br>Victor<br>