Go to file
Sanjay Patel d802270808 [InstSimplify] fold select with implied condition
This is an almost direct move of the functionality from InstCombine to 
InstSimplify. There's no reason not to do this in InstSimplify because 
we never create a new value with this transform.

(There's a question of whether any dominance-based transform belongs in
either of these passes, but that's a separate issue.)

I've changed 1 of the conditions for the fold (1 of the blocks for the 
branch must be the block we started with) into an assert because I'm not 
sure how that could ever be false.

We need 1 extra check to make sure that the instruction itself is in a
basic block because passes other than InstCombine may be using InstSimplify
as an analysis on values that are not wired up yet.

The 3-way compare changes show that InstCombine has some kind of 
phase-ordering hole. Otherwise, we would have already gotten the intended
final result that we now show here.

llvm-svn: 347896
2018-11-29 18:44:39 +00:00
clang Simplify the __builtin_constant_p test that was used to catch rC347417 failure 2018-11-29 18:26:39 +00:00
clang-tools-extra Adding a FIXME test to document an area for improvement with the cert-err58-cpp check; NFC. 2018-11-29 12:45:50 +00:00
compiler-rt (no commit message) 2018-11-28 18:17:23 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc travis: Add cmake build 2018-11-27 16:07:21 +00:00
libcxx [libcxx] More fixes to XFAILs for aligned allocation tests for macosx 10.13 2018-11-29 15:52:36 +00:00
libcxxabi [Demangle] remove itaniumFindTypesInMangledName 2018-11-27 16:11:24 +00:00
libunwind [CMake] Passthrough CFLAGS when checking the compiler-rt path 2018-11-14 00:09:26 +00:00
lld [LLD][ELF] Error if _GLOBAL_OFFSET_TABLE_ is defined in input objects 2018-11-29 11:18:07 +00:00
lldb [CMake] Fix standalone build for debugserver on macOS 2018-11-29 14:51:49 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [InstSimplify] fold select with implied condition 2018-11-29 18:44:39 +00:00
openmp [OpenMP] Rename ompt_mutex_impl_unknown to ompt_mutex_impl_none 2018-11-28 20:19:53 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [CMake] Fix generation of exported targets in build directory 2018-11-06 15:18:17 +00:00
README.md Update the project name in README.md 2018-10-19 00:03:01 +00:00

README.md

The LLVM Compiler Infrastructure

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