llvm/lib/Transforms
Juergen Ributzka d0995fb982 [SwitchLowering] Fix the "fixPhis" function.
Switch statements may have more than one incoming edge into the same BB if they
all have the same value. When the switch statement is converted these incoming
edges are now coming from multiple BBs. Updating all incoming values to be from
a single BB is incorrect and would generate invalid LLVM IR.

The fix is to only update the first occurrence of an incoming value. Switch
lowering will perform subsequent calls to this helper function for each incoming
edge with a new basic block - updating all edges in the process.

This fixes rdar://problem/18916275.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221627 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-10 21:05:27 +00:00
..
Hello [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
InstCombine InstCombine: Rely on cmpxchg's return code when it's strong 2014-11-06 23:23:30 +00:00
Instrumentation Base check on the section name, not the variable name. 2014-11-06 20:01:34 +00:00
IPO Reformat partially, where I touched for whitespace changes. 2014-10-28 11:54:52 +00:00
ObjCARC IR: MDNode => Value: NamedMDNode::getOperator() 2014-11-05 18:16:03 +00:00
Scalar [Reassociate] Better preserve NSW/NUW flags. 2014-11-07 22:12:57 +00:00
Utils [SwitchLowering] Fix the "fixPhis" function. 2014-11-10 21:05:27 +00:00
Vectorize LoopVectorize: Don't assume pointees are sized 2014-11-07 00:31:14 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile