aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-04-14 18:43:25 +0000
committerDan Gohman <gohman@apple.com>2008-04-14 18:43:25 +0000
commitb91c89dfb9a7d119eb2184e3fda8af12d71713a6 (patch)
tree998cd8079fb2998bfc8403c873cfc11ea26c1eb2 /lib/CodeGen/SelectionDAG/SelectionDAG.cpp
parent235fc57ef2ed0a3c43a6e2d77b7c13f96a6f8036 (diff)
Avoid creating MERGE_VALUES nodes for single values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49676 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAG.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index a0f8697680..1e626677f0 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -1848,7 +1848,8 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
unsigned OpOpcode = Operand.Val->getOpcode();
switch (Opcode) {
case ISD::TokenFactor:
- return Operand; // Factor of one node? No factor.
+ case ISD::MERGE_VALUES:
+ return Operand; // Factor or merge of one node? No need.
case ISD::FP_ROUND: assert(0 && "Invalid method to make FP_ROUND node");
case ISD::FP_EXTEND:
assert(MVT::isFloatingPoint(VT) &&