[llvm-commits] [llvm] r62167 - in /llvm/trunk/lib/CodeGen/SelectionDAG: LegalizeTypes.cpp LegalizeTypes.h

Duncan Sands baldrick at free.fr
Tue Jan 13 06:42:40 PST 2009


Author: baldrick
Date: Tue Jan 13 08:42:39 2009
New Revision: 62167

URL: http://llvm.org/viewvc/llvm-project?rev=62167&view=rev
Log:
Fix some typos.  Also, the WidenedVectors map
was not being cleaned by ExpungeNode.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp?rev=62167&r1=62166&r2=62167&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp Tue Jan 13 08:42:39 2009
@@ -574,6 +574,12 @@
     RemapValue(I->second);
   }
 
+  for (DenseMap<SDValue, SDValue>::iterator I = WidenedVectors.begin(),
+       E = WidenedVectors.end(); I != E; ++I) {
+    assert(I->first.getNode() != N);
+    RemapValue(I->second);
+  }
+
   for (DenseMap<SDValue, std::pair<SDValue, SDValue> >::iterator
        I = ExpandedIntegers.begin(), E = ExpandedIntegers.end(); I != E; ++I){
     assert(I->first.getNode() != N);
@@ -817,7 +823,7 @@
   AnalyzeNewValue(Result);
 
   SDValue &OpEntry = WidenedVectors[Op];
-  assert(OpEntry.getNode() == 0 && "Node is already promoted!");
+  assert(OpEntry.getNode() == 0 && "Node already widened!");
   OpEntry = Result;
 }
 

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h?rev=62167&r1=62166&r2=62167&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h Tue Jan 13 08:42:39 2009
@@ -65,7 +65,7 @@
     ExpandFloat,     // Split this float type into two of half the size.
     ScalarizeVector, // Replace this one-element vector with its element type.
     SplitVector,     // This vector type should be split into smaller vectors.
-    WidenVector      // This vector type should be widened into larger vectors.
+    WidenVector      // This vector type should be widened into a larger vector.
   };
 
   /// ValueTypeActions - This is a bitvector that contains two bits for each
@@ -73,11 +73,7 @@
   /// enum from TargetLowering.  This can be queried with "getTypeAction(VT)".
   TargetLowering::ValueTypeActionImpl ValueTypeActions;
 
-  /// getTypeAction - Return how we should legalize values of this type, either
-  /// it is already legal, or we need to promote it to a larger integer type, or
-  /// we need to expand it into multiple registers of a smaller integer type, or
-  /// we need to split a vector type into smaller vector types, or we need to
-  /// convert it to a different type of the same size.
+  /// getTypeAction - Return how we should legalize values of this type.
   LegalizeAction getTypeAction(MVT VT) const {
     switch (ValueTypeActions.getTypeAction(VT)) {
     default:
@@ -118,12 +114,14 @@
   }
 
   /// IgnoreNodeResults - Pretend all of this node's results are legal.
+  /// FIXME: Remove once PR2957 is done.
   bool IgnoreNodeResults(SDNode *N) const {
     return N->getOpcode() == ISD::TargetConstant ||
            IgnoredNodesResultsSet.count(N);
   }
 
   /// IgnoredNode - Set of nodes whose result don't need to be legal.
+  /// FIXME: Remove once PR2957 is done.
   DenseSet<SDNode*> IgnoredNodesResultsSet;
 
   /// PromotedIntegers - For integer nodes that are below legal width, this map
@@ -150,8 +148,8 @@
   /// which operands are the expanded version of the input.
   DenseMap<SDValue, std::pair<SDValue, SDValue> > SplitVectors;
 
-  /// WidenVectors - For vector nodes that need to be widened, indicates
-  /// the widen value to use.
+  /// WidenedVectors - For vector nodes that need to be widened, indicates
+  /// the widened value to use.
   DenseMap<SDValue, SDValue> WidenedVectors;
 
   /// ReplacedValues - For values that have been replaced with another,
@@ -570,6 +568,13 @@
   //===--------------------------------------------------------------------===//
   // Vector Widening Support: LegalizeVectorTypes.cpp
   //===--------------------------------------------------------------------===//
+
+  /// GetWidenedVector - Given a processed vector Op which was widened into a
+  /// larger vector, this method returns the larger vector.  The elements of
+  /// the returned vector consist of the elements of Op followed by elements
+  /// containing rubbish.  For example, if Op is a v2i32 that was widened to a
+  /// v4i32, then this method returns a v4i32 for which the first two elements
+  /// are the same as those of Op, while the last two elements contain rubbish.
   SDValue GetWidenedVector(SDValue Op) {
     SDValue &WidenedOp = WidenedVectors[Op];
     RemapValue(WidenedOp);





More information about the llvm-commits mailing list