[PATCH] D23225: [ADCE] Modify data structures to support removing control flow

David Callahan via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 5 13:33:30 PDT 2016


david2050 created this revision.
david2050 added reviewers: mehdi_amini, nadav, majnemer.
david2050 added subscribers: llvm-commits, twoh, freik.

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

This patch changes the data structures to hold liveness information to
support the additional information we will eventually need. In
particular we now have a notion of basic blocks being live because
they contain a live operations. This will eventually feed into control
dependence analysis of which branches are live. We cater to getting
from instructions to associated block information and from blocks to
information about their terminators.

This patch also changes the structure of the main loop of the
algorithm so that it alternates propagating liveness between
instructions and usign control dependence information to mark branches
live.

We 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:

D23065 [ADCE] Refactor anticipating new functionality (NFC)
D23102 [ADCE] Refactoring for new functionality (NFC)

https://reviews.llvm.org/D23225

Files:
  lib/Transforms/Scalar/ADCE.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23225.67008.patch
Type: text/x-patch
Size: 10438 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160805/5485b423/attachment.bin>


More information about the llvm-commits mailing list