llvm-project/llvm/test
Anna Thomas 53c8d95c85 [Loop Deletion] Delete loops that are never executed
Summary:
Currently, loop deletion deletes loop where the only values
that are used outside the loop are loop-invariant.
This patch adds logic to delete loops where the loop is proven to be
never executed (i.e. the only predecessor of the loop preheader has a
constant conditional branch as terminator, and the preheader is not the
taken target). This will remove loops that become dead after
loop-unswitching generates constant conditional branches.

The next steps are:
1. moving the loop deletion implementation to LoopUtils.
2. Add logic in loop-simplifyCFG which will support changing conditional
constant branches to unconditional branches. If loops become unreachable in this
process, they can be removed using `deleteDeadLoop` function.

Reviewers: chandlerc, efriedma, sanjoy, reames

Reviewed by: sanjoy

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 302015
2017-05-03 11:47:11 +00:00
..
Analysis Use WeakVH instead of WeakTrackingVH in AliasSetTracker's UnkownInsts 2017-05-01 17:07:56 +00:00
Assembler Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
Bindings
Bitcode AMDGPU: Add AMDGPU_HS calling convention 2017-05-02 15:41:10 +00:00
BugPoint llvm/test/BugPoint/compile-custom.ll: Use %/s for its path not to be mis-escaped. 2017-04-13 11:40:32 +00:00
CodeGen [Triple] Add a "macos" OS type that acts as a synonym for "macosx" 2017-05-03 10:42:35 +00:00
DebugInfo [DWARFv5] Parse new line-table header format. 2017-05-02 21:40:47 +00:00
Examples
ExecutionEngine
Feature Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
FileCheck
Instrumentation [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
Integer
JitListener
LTO LTO: Mark undefined module asm symbols as used. 2017-04-26 17:53:39 +00:00
LibDriver
Linker Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
MC [AArch64] ILP32 Backend Relocation Support 2017-05-02 22:01:48 +00:00
Object [llvm-ar] errors go on stderr and not on stdout. 2017-04-05 14:52:17 +00:00
ObjectYAML [WebAssembly] Allow for signed relocation addends 2017-04-26 00:02:31 +00:00
Other Disable GVN Hoist due to still more bugs being found in it. There is 2017-04-27 00:28:03 +00:00
SymbolRewriter
TableGen [globalisel][tablegen] Fix the test after silencing the unused variable warning in r301755. 2017-04-29 19:46:27 +00:00
ThinLTO/X86 Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
Transforms [Loop Deletion] Delete loops that are never executed 2017-05-03 11:47:11 +00:00
Unit
Verifier Add speculatable function attribute 2017-04-28 20:25:27 +00:00
YAMLParser
tools [AArch64] ILP32 Backend Relocation Support 2017-05-02 22:01:48 +00:00
.clang-format
CMakeLists.txt Add a dependency from llvm/test to llvm-cvtres. 2017-04-21 20:45:11 +00:00
TestRunner.sh
lit.cfg
lit.site.cfg.in