Control dependence analysis?

Does LLVM contain any control dependence analysis pass?

I do not see one when looking through the lib/Analysis passes.

Thanks,

Mark

Does LLVM contain any control dependence analysis pass?

There is a PostDominatorTree analysis. Control-dependence can be computed easily using it (see the paper "Efficiently computing static single assignment form and the control dependence graph" by Cytron et. al. for details on the algorithm).

-- John T.

Yes, I am aware that I can use the post-dominance frontier to
determine whether a given block is dependent on another block. I am
looking for something a little different, e.g. what is described in
Optimal Control Dependence Computation and the Roman Chariots Problem,
which computes three sets:
1. The set of blocks control-dependent on a given edge
2. The set of edges that a given block is control-dependent on
3. The set of blocks having the same control dependence as a given
block (e.g. the set of control dependence equivalence classes).

I can compute (3) easily enough from the post-dominance frontiers. The
edge relationships are not as straightforward I think given that
either edge from a block A could lead to a block B that is dependent
on A, but B can be dependent on only one of those edges. The algorithm
in the above paper is nice given that you can choose the space and
time trade-offs explicitly.

Mark