Go to file
David Callahan 947be0fa66 [ADCE] Modify data structures to support removing control flow
Summary:
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)

Reviewers: nadav, majnemer, mehdi_amini

Subscribers: freik, twoh, llvm-commits

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

llvm-svn: 278807
2016-08-16 14:31:51 +00:00
clang Add empty --gcc-toolchain empty to cuda-detect test. 2016-08-16 14:31:39 +00:00
clang-tools-extra [clang-tidy] readability-implicit-bool-cast forgets to store its options. 2016-08-16 11:15:05 +00:00
compiler-rt Revert "[compiler-rt] Allow c++ abi to be explictly disabled in cmake configuration" 2016-08-16 13:58:56 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Make min follow the OCL 1.0 specs 2016-07-25 22:36:22 +00:00
libcxx libcxx: Fix path.compare.pass expected result 2016-08-15 21:24:50 +00:00
libcxxabi Default LIBCXXABI_LIBDIR_SUFFIX to LLVM_LIBDIR_SUFFIX 2016-08-16 03:44:55 +00:00
libunwind Allow building both shared and static library 2016-08-08 22:55:48 +00:00
lld [ELF] - Do not exit if -v is specified. 2016-08-16 13:25:53 +00:00
lldb Remove GetThreadSuffixSupported from GDBRemoteCommunication **base** class 2016-08-16 09:36:29 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm [ADCE] Modify data structures to support removing control flow 2016-08-16 14:31:51 +00:00
openmp Fixes for hierarchical barrier (possible hang if team size changed). 2016-08-11 13:04:00 +00:00
parallel-libs [StreamExecutor] Add DeviceMemory and kernel arg packing 2016-08-08 16:45:19 +00:00
polly [ScopInfo] Make scalars used by PHIs in non-affine regions available 2016-08-16 11:44:48 +00:00