[Jump Threading] Unfold a select insn that feeds a switch via a phi node
authorEhsan Amiri <amehsan@ca.ibm.com>
Fri, 11 Jan 2019 15:52:57 +0000 (15:52 +0000)
committerEhsan Amiri <amehsan@ca.ibm.com>
Fri, 11 Jan 2019 15:52:57 +0000 (15:52 +0000)
commitf452f116d2f272af1ea60455167b9e0508c0e47b
treedd51a13b15d875dcc9278d76a56de2c53f95fd9b
parent80378fd38b80b18bd053f4a3f9d461246d9444be
[Jump Threading] Unfold a select insn that feeds a switch via a phi node

Currently when a select has a constant value in one branch and the select feeds
a conditional branch (via a compare/ phi and compare) we unfold the select
statement. This results in threading the conditional branch later on. Similar
opportunity exists when a select (with a constant in one branch) feeds a
switch (via a phi node). The patch unfolds select under this condition.
A testcase is provided.

llvm-svn: 350931
llvm/include/llvm/Transforms/Scalar/JumpThreading.h
llvm/lib/Transforms/Scalar/JumpThreading.cpp
llvm/test/Transforms/JumpThreading/select.ll