OSDN Git Service

[ADCE] Add control dependence computation
authorDavid Callahan <dcallahan@fb.com>
Wed, 24 Aug 2016 00:10:06 +0000 (00:10 +0000)
committerDavid Callahan <dcallahan@fb.com>
Wed, 24 Aug 2016 00:10:06 +0000 (00:10 +0000)
commit7374d9083b20ab2e7535fca2fb7f6318ae4daac1
treeab028a3be23e011514bf4b5a67d1092f9d12c0fa
parent4ecbb916b7598e0680d0ec5db1659e8339bc7e16
[ADCE] Add control dependence computation

Summary:
This is part of a serious of patches to evolve ADCE.cpp to support
removing of unnecessary control flow.

This patch adds the ability to compute control dependences using
the iterated dominance frontier. We extend the liveness propagation
to alternate between data and control dependences until convergences.

Modify the pass manager intergation to compute the post-dominator tree
needed for iterator dominance frontier.

We still force all terminators live for now until we add code to
handlinge removing control flow in a later patch.

No changes to effective behavior with this patch

Previous patches:

D23225 [ADCE] Modify data structures to support removing control flow
D23065 [ADCE] Refactor anticipating new functionality (NFC)
D23102 [ADCE] Refactoring for new functionality (NFC)

Reviewers: nadav, majnemer, mehdi_amini

Subscribers: twoh, freik, llvm-commits

Differential Revision: https://reviews.llvm.org/D23559

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279594 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/ADCE.cpp