On Feb 26, 2008, at 1:37 AM, Prabhat Kumar Saraswat
wrote:>
> Has someone already worked on this, or are there similar components i
> can reuse in my work?
>
>
> I am planning to create a IntraProcedure Dependence Graph (PDG) and
> then traverse along it to identify the relevant parts of the program.
> Any ideas?
LLVM has analysis passes that compute post-dominator information, on
which a PDG construction algorithm could be built. I know of two
specific
things to be aware of in this area. First, if the program has any
infinite loops using unconditional branches, they won't be post-
dominated
by any exit node. If this is a problem for you, you may have to do some
extra work to handle it. Second, programs with multiple return
statements
aren't handled correctly; see PR1098. This can be worked around by
using the mergereturn pass.
Dan