[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