[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAG.h
Nate Begeman
natebegeman at mac.com
Fri Aug 12 23:00:32 PDT 2005
Changes in directory llvm/include/llvm/CodeGen:
SelectionDAG.h updated: 1.34 -> 1.35
---
Log message:
Fix the fabs regression on x86 by abstracting the select_cc optimization
out into SimplifySelectCC. This allows both ISD::SELECT and ISD::SELECT_CC
to use the same set of simplifying folds.
---
Diffs of the changes: (+9 -3)
SelectionDAG.h | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.34 llvm/include/llvm/CodeGen/SelectionDAG.h:1.35
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.34 Wed Aug 10 20:12:20 2005
+++ llvm/include/llvm/CodeGen/SelectionDAG.h Sat Aug 13 01:00:21 2005
@@ -214,12 +214,18 @@
private:
void DeleteNodeIfDead(SDNode *N, void *NodeSet);
- // Try to simplify a setcc built with the specified operands and cc. If
- // unable to simplify it, return a null SDOperand.
+ /// SimplifySetCC - Try to simplify a setcc built with the specified operands
+ /// and cc. If unable to simplify it, return a null SDOperand.
SDOperand SimplifySetCC(MVT::ValueType VT, SDOperand N1,
SDOperand N2, ISD::CondCode Cond);
-
+ /// SimplifySelectCC - Try to simplify a select_cc built with the specified
+ /// operands and cc. This can be used to simplify both the select_cc node,
+ /// and a select node whose first operand is a setcc.
+ SDOperand SimplifySelectCC(MVT::ValueType VT, ISD::CondCode CC,
+ SDOperand N1, SDOperand N2, SDOperand N3,
+ SDOperand N4);
+
// Maps to auto-CSE operations.
std::map<std::pair<unsigned, std::pair<SDOperand, MVT::ValueType> >,
SDNode *> UnaryOps;
More information about the llvm-commits
mailing list