summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-09-10 21:01:31 +0000
committerDan Gohman <gohman@apple.com>2008-09-10 21:01:31 +0000
commit74321abb4f7e32e29c0e391b3ebb196c7da86525 (patch)
tree1bdb62ae1e38d3122d57f11a5a4a70dcdb19da60 /lib/CodeGen
parent821164875706dd28e48c6cc3cea5c8ffa6e658d1 (diff)
downloadllvm-74321abb4f7e32e29c0e391b3ebb196c7da86525.tar.gz
llvm-74321abb4f7e32e29c0e391b3ebb196c7da86525.tar.bz2
llvm-74321abb4f7e32e29c0e391b3ebb196c7da86525.tar.xz
FastISel support for i1 PHI nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56069 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
index 57b6768528..d02dffa694 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
@@ -5612,8 +5612,13 @@ SelectionDAGISel::HandlePHINodesInSuccessorBlocksFast(BasicBlock *LLVMBB,
// exactly one register for each non-void instruction.
MVT VT = TLI.getValueType(PN->getType(), /*AllowUnknown=*/true);
if (VT == MVT::Other || !TLI.isTypeLegal(VT)) {
- SDL->PHINodesToUpdate.resize(OrigNumPHINodesToUpdate);
- return false;
+ // Promote MVT::i1.
+ if (VT == MVT::i1)
+ VT = TLI.getTypeToTransformTo(VT);
+ else {
+ SDL->PHINodesToUpdate.resize(OrigNumPHINodesToUpdate);
+ return false;
+ }
}
Value *PHIOp = PN->getIncomingValueForBlock(LLVMBB);