llvm-project/llvm/lib
Haicheng Wu a6a3279bd3 [JumpThreading] Split select that has constant conditions coming from the PHI node
Look for PHI/Select in the same BB of the form

bb:
  %p = phi [false, %bb1], [true, %bb2], [false, %bb3], [true, %bb4], ...
  %s = select p, trueval, falseval

And expand the select into a branch structure. This later enables
jump-threading over bb in this pass.

Using the similar approach of SimplifyCFG::FoldCondBranchOnPHI(), unfold
select if the associated PHI has at least one constant.  If the unfolded
select is not jump-threaded, it will be folded again in the later
optimizations.

llvm-svn: 257198
2016-01-08 19:39:39 +00:00
..
Analysis LoopInfo: Simplify ownership of Loop objects 2016-01-08 19:08:53 +00:00
AsmParser Implemented Support of IA interrupt and exception handlers: 2015-12-21 14:07:14 +00:00
Bitcode Bitcode: Fix reading and writing of ConstantDataVectors of halfs 2016-01-06 22:31:32 +00:00
CodeGen Test commit access - add a blank line in comment. 2016-01-08 19:20:23 +00:00
DebugInfo Fix several accidental DOS line endings in source files 2016-01-03 17:22:03 +00:00
ExecutionEngine Delete APIs that have been deprecated since 2010. 2015-12-19 21:42:07 +00:00
Fuzzer [libFuzzer] add a position hint to the dictionary-based mutator 2016-01-07 01:49:35 +00:00
IR Remove static global GCNames from Function.cpp and move it to the Context 2016-01-08 02:28:20 +00:00
IRReader [ThinLTO] Metadata linking for imported functions 2015-12-17 17:14:09 +00:00
LTO [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
LibDriver [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
LineEditor
Linker [ThinLTO] Use new in-place symbol changes for exporting module 2016-01-08 17:06:29 +00:00
MC Added support for macro emission in dwarf (supporting DWARF version 4). 2016-01-07 14:28:20 +00:00
Object Handle archives with paths in the names. 2015-12-18 16:07:17 +00:00
Option Convert Arg, ArgList, and Option to dump() to dbgs() rather than errs(). 2015-12-18 18:55:26 +00:00
Passes [attrs] Extract the pure inference of function attributes into 2015-12-27 08:41:34 +00:00
ProfileData [PGO] Ensure vp data in indexed profile always sorted 2016-01-08 05:45:21 +00:00
Support IntEqClasses: Let join() return the new leader 2016-01-08 01:16:39 +00:00
TableGen [TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC 2016-01-04 06:28:49 +00:00
Target RBIT Instruction only available for ARMv6t2 and above. 2016-01-08 18:43:41 +00:00
Transforms [JumpThreading] Split select that has constant conditions coming from the PHI node 2016-01-08 19:39:39 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00