Optimize order of slice expansion
authorNathan Rosenblum <nater@aemilia.cs.wisc.edu>
Fri, 12 Nov 2010 23:13:58 +0000 (17:13 -0600)
committerNathan Rosenblum <nater@aemilia.cs.wisc.edu>
Fri, 19 Nov 2010 21:30:14 +0000 (15:30 -0600)
commit89ce51445ad842bf481100f08db62bc6e6d594a3
tree71c5154c617b222cc71884acc465610de6f6cef4
parent18e82c3aef95a87453d570d47b7ace8e03a432ca
Optimize order of slice expansion

The order that slice nodes are visited in slice -> AST expansion matters
quite a bit; bad visitation order can lead to a great deal of extra work
being done as nodes are repeatedly visited to fill in partially expanded
ASTS. Because cycles in the slice DAG are removed prior to expansion,
an optimal ordering is possible. This commit implements that ordering. It
also correctly avoids traversing the `skip edges' that are removed to
break cycles in all instances of edge enumeration.
dataflowAPI/h/slicing.h
dataflowAPI/src/SymEval.C
dataflowAPI/src/slicing.C
parseAPI/src/IA_IAPI.C