Go to file
Sanjay Patel 24226504a7 [SimplifyCFG] try harder to forward switch condition to phi (PR34471)
The missed canonicalization/optimization in the motivating test from PR34471 leads to very different codegen:

  int switcher(int x) {
      switch(x) {
      case 17: return 17;
      case 19: return 19;
      case 42: return 42;
      default: break;
      }
      return 0;
    }

  int comparator(int x) {
    if (x == 17) return 17;
    if (x == 19) return 19;
    if (x == 42) return 42;
    return 0;
  }

For the first example, we use a bit-test optimization to avoid a series of compare-and-branch:
https://godbolt.org/g/BivDsw

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

llvm-svn: 316293
2017-10-22 16:51:03 +00:00
clang [C++17] Fix PR34970 - tweak overload resolution for class template deduction-guides in line with WG21's p0620r0. 2017-10-22 14:45:08 +00:00
clang-tools-extra clang-tidy: Fix deps. 2017-10-21 11:02:30 +00:00
compiler-rt [Compiler-rt][MIPS] Fix cross build for XRAY. 2017-10-22 09:37:50 +00:00
debuginfo-tests Revert r313600 due to bot failures on Green Dragon. 2017-09-19 14:51:37 +00:00
libclc shared: Implement aligned vector stores (vstorea_half) 2017-10-22 14:21:59 +00:00
libcxx Fix an unsigned integer overflow in regex that lead to a bad memory access. Found by OSS-Fuzz 2017-10-19 22:10:41 +00:00
libcxxabi Fix ASAN build with older compiler-rt versions. 2017-09-14 22:37:34 +00:00
libunwind GNU: do not read the FDE count if omitted 2017-10-20 18:47:35 +00:00
lld Simplify. 2017-10-22 01:58:30 +00:00
lldb lldb-server tests: Propagate environment variables (pr34192) 2017-10-20 22:39:18 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [SimplifyCFG] try harder to forward switch condition to phi (PR34471) 2017-10-22 16:51:03 +00:00
openmp Restrict OMPT to OpenMP version 5.0 and remove old header files 2017-10-20 20:14:46 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [Polly] Add XFAIL to large-numbers-in-boundary-context.ll 2017-10-16 15:12:39 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.