1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib
David Callahan 86eb682529 [ADCE] Add code to remove dead branches
Summary:
This is last in of a series of patches to evolve ADCE.cpp to support
removing of unnecessary control flow.

This patch adds the code to update the control and data flow graphs
to remove the dead control flow.

Also update unit tests to test the capability to remove dead,
may-be-infinite loop which is enabled by the switch
-adce-remove-loops.

Previous patches:

D23824 [ADCE] Add handling of PHI nodes when removing control flow
D23559 [ADCE] Add control dependence computation
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: dberlin, majnemer, nadav, mehdi_amini

Subscribers: llvm-commits, david2050, freik, twoh

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

llvm-svn: 289548
2016-12-13 16:42:18 +00:00
..
Analysis Revert "[SCEVExpand] do not hoist divisions by zero (PR30935)" 2016-12-12 18:52:32 +00:00
AsmParser [AsmParser] Avoid recursing when lexing ';'. NFC. 2016-11-16 22:25:05 +00:00
Bitcode Fix MSVC build after 289461; MSVC isn't sure if this is std:: or llvm:: 2016-12-12 22:46:40 +00:00
CodeGen Use more detailed assertion messages in the code introduced by r289538 2016-12-13 16:26:15 +00:00
DebugInfo Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
Demangle Demangle: remove references to allocator for default allocator 2016-11-20 00:20:27 +00:00
ExecutionEngine [mips][rtdyld] Move MIPS relocation resolution to a subclass and implement N32 relocations 2016-12-13 11:39:18 +00:00
Fuzzer [libFuzzer] don't require extra flags with -minimize_crash=1 (default to -max_total_time=600). Also respect exact_artifact_path when outputting the end result 2016-12-13 00:40:47 +00:00
IR [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LibDriver
LineEditor
Linker [ThinLTO] Import only necessary DICompileUnit fields 2016-12-12 16:09:30 +00:00
LTO [ThinLTO] Import only necessary DICompileUnit fields 2016-12-12 16:09:30 +00:00
MC Add a comment consumer mechanism to MCAsmLexer 2016-12-08 10:31:21 +00:00
Object [Object][MachO] Reference-ify some helper function arguments. NFC. 2016-12-04 01:56:10 +00:00
ObjectYAML [ObjectYAML] Support for DWARF debug_aranges 2016-12-09 00:26:44 +00:00
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes [PM] Support invalidation of inner analysis managers from a pass over the outer IR unit. 2016-12-10 06:34:44 +00:00
ProfileData Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
Support [APFloat] Implement PPCDoubleDouble add and subtract. 2016-12-12 21:59:30 +00:00
TableGen [TableGen] Centralize/Unify error handling. 2016-12-05 22:58:01 +00:00
Target [mips] Fix comment to respect 80 chars per line; NFC 2016-12-13 11:10:53 +00:00
Transforms [ADCE] Add code to remove dead branches 2016-12-13 16:42:18 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00