1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test
Marcello Maggioni 8c63dce0d7 Two case switch to select optimization
This optimization tries to convert switch instructions that are used to select a value with only 2 unique cases + default block
to a select or a couple of selects (depending if the default block is reachable or not).

The typical case this optimization wants to be able to optimize is this one:

Example:
switch (a) {
  case 10:                %0 = icmp eq i32 %a, 10
    return 10;            %1 = select i1 %0, i32 10, i32 4
  case 20:        ---->   %2 = icmp eq i32 %a, 20
    return 2;             %3 = select i1 %2, i32 2, i32 %1
  default:
    return 4;
}

It also sets the base for further optimizations that are planned and being reviewed.

llvm-svn: 219223
2014-10-07 18:16:44 +00:00
..
Analysis [BasicAA] Revert "Revert r218714 - Make better use of zext and sign information." 2014-10-06 18:37:59 +00:00
Assembler Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
Bindings Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
Bitcode Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
BugPoint Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
CodeGen [mips] Return {f128} correctly for N32/N64. 2014-10-07 09:29:59 +00:00
DebugInfo For biendian targets like ARM and AArch64, it is useful to have the 2014-10-06 07:06:03 +00:00
ExecutionEngine [mips] Remove XFAIL from two XPASS'ing tests on the llvm-mips-linux builder 2014-10-03 08:49:44 +00:00
Feature Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
FileCheck
Instrumentation [asan-asm-instrumentation] CFI directives are generated for .S files. 2014-10-07 11:03:09 +00:00
Integer
JitListener Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
Linker [dwarfdump] Print the name for referenced specification of abstract_origin DIEs. 2014-10-06 03:36:31 +00:00
LTO
MC [X86] Fix a bug where the disassembler was ignoring the VEX.W bit in 32-bit mode for certain instructions it shouldn't. 2014-10-07 07:29:50 +00:00
Object
Other
TableGen
tools gold plugin: Handle gold selecting a linkonce GV when a weak is present. 2014-10-07 04:06:13 +00:00
Transforms Two case switch to select optimization 2014-10-07 18:16:44 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg llvm/test/lit.cfg: Suppress dwarf stuff for targeting x86_64-mingw32 while investigating since r219108. 2014-10-06 23:29:06 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh