1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test
Chandler Carruth 7b453f02d1 [PM/LoopUnswitch] Support partial trivial unswitching.
The idea of partial unswitching is to take a *part* of a branch's
condition that is loop invariant and just unswitching that part. This
primarily makes sense with i1 conditions of branches as opposed to
switches. When dealing with i1 conditions, we can easily extract loop
invariant inputs to a a branch and unswitch them to test them entirely
outside the loop.

As part of this, we now create much more significant cruft in the loop
body, so this relies on adding cleanup passes to the loop pipeline and
revisiting unswitched loops to do that cleanup before continuing to
process them.

This already appears to be more powerful at unswitching than the old
loop unswitch pass, and so I'd appreciate pretty careful review in case
I'm just missing some correctness checks. The `LIV-loop-condition` test
case is not unswitched by the old unswitch pass, but is with this pass.

Thanks to Sanjoy and Fedor for the review!

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

llvm-svn: 335156
2018-06-20 18:57:07 +00:00
..
Analysis [NFC][SCEV] Add tests related to bit masking (PR37793) 2018-06-20 07:54:11 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [DAG] Don't map a TableId to itself in the ReplacedValues map 2018-06-20 16:06:09 +00:00
DebugInfo [MachineOutliner] Add debug info test for the outliner 2018-06-20 18:41:11 +00:00
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [WinASan] Don't instrument globals in sections containing '$' 2018-06-13 20:47:21 +00:00
Integer
JitListener
Linker
LTO IRMover: Account for matching types present across modules 2018-06-20 16:50:56 +00:00
MC [RISCV] Accept fmv.s.x and fmv.x.s as mnemonic aliases for fmv.w.x and fmv.x.w 2018-06-20 18:42:25 +00:00
Object
ObjectYAML
Other CorrelatedValuePropagation: Preserve DT. 2018-06-16 18:57:31 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [globalisel][tablegen] Add support for C++ predicates on PatFrags and use it to support BFC on ARM. 2018-06-15 23:13:43 +00:00
ThinLTO/X86
tools [LIT] Enable testing of LLVM gold plugin on Mac OS X 2018-06-20 15:32:47 +00:00
Transforms [PM/LoopUnswitch] Support partial trivial unswitching. 2018-06-20 18:57:07 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg.py [LIT] Enable testing of LLVM gold plugin on Mac OS X 2018-06-20 15:32:47 +00:00
lit.site.cfg.py.in
TestRunner.sh