1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 06:22:56 +02:00
llvm-mirror/lib/Transforms
David Callahan 48aa68965f [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
..
Coroutines [Coroutines] Move class into anonymous namespace. 2016-08-12 08:47:13 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine constify InstCombine::foldAllocaCmp. NFC. 2016-08-12 17:13:28 +00:00
Instrumentation [MemorySanitizer] [MIPS] Changed memory mapping to support pie executable. 2016-08-16 12:55:38 +00:00
IPO FunctionImport: missed one occurence of ImportListForModule to rename (NFC) 2016-08-16 05:49:12 +00:00
ObjCARC Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Scalar [ADCE] Modify data structures to support removing control flow 2016-08-16 14:31:51 +00:00
Utils Revert "[SimplifyCFG] Rewrite SinkThenElseCodeToEnd" 2016-08-15 15:42:31 +00:00
Vectorize [LSV] Use a set rather than an ArraySlice at the end of getVectorizablePrefix. NFC 2016-08-13 00:04:12 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00