summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
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
commit1dc9b0514f93836be52d663ecd6fe0ce26ea34d5 (patch)
tree2dec59d6c174db1e29774dbf2b150319a0213779 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
parent940bafb687fdb6c3841b2d9f8f78cd543a7ccc95 (diff)
downloadbcm5719-llvm-1dc9b0514f93836be52d663ecd6fe0ce26ea34d5.tar.gz
bcm5719-llvm-1dc9b0514f93836be52d663ecd6fe0ce26ea34d5.zip
FastISel support for i1 PHI nodes.
llvm-svn: 56069
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
index 57b6768528f..d02dffa694c 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
+++ b/llvm/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);
OpenPOWER on IntegriCloud