Skip to content

Conversation

VedantParanjape
Copy link
Contributor

Dominance is important for correctly identifying loops and their properties. This patch implements a dominator analysis that finds out immediate dominators for all the blocks of the CFG, it also builds a dominator tree using the idoms.

The dominator analysis also support building postdominator tree for the CFG, and it can also build postdominator tree for loops without exits or infinite loops.

This patch also implements several other important utilities like postorder DFS and preorder DFS traversal of the CFG.

This patch implements the dominance algorithm from the paper "A Simple, Fast Dominance Algorithm" [1] as it is easiest to implement and is practically faster than the Lengauer-Tarjan dominance algorithm.

[1] http://www.hipersoft.rice.edu/grads/publications/dom14.pdf

Dominance is important for correctly identifying loops and their
properties. This patch implements a dominator analysis that finds out
immediate dominators for all the blocks of the CFG, it also builds a
dominator tree using the idoms.

The dominator analysis also support building postdominator tree for the
CFG, and it can also build postdominator tree for loops without exits or
infinite loops.

This patch also implements several other important utilities like
postorder DFS and preorder DFS traversal of the CFG.

This patch implements the dominance algorithm from the paper
"A Simple, Fast Dominance Algorithm" [1] as it is easiest to implement
and is practically faster than the Lengauer-Tarjan dominance algorithm.

[1] http://www.hipersoft.rice.edu/grads/publications/dom14.pdf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant