diff options
author | Duncan Sands <baldrick@free.fr> | 2009-01-13 14:42:39 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2009-01-13 14:42:39 +0000 |
commit | 1bec3dd28a47b7e27e6f30de22a307521ce45b28 (patch) | |
tree | 63c5eb86e1b066034905b1d34c6fb3471ec2962c | |
parent | 042fb3199f480cd8096d9c51ba1aceecd9af6f0e (diff) | |
download | external_llvm-1bec3dd28a47b7e27e6f30de22a307521ce45b28.zip external_llvm-1bec3dd28a47b7e27e6f30de22a307521ce45b28.tar.gz external_llvm-1bec3dd28a47b7e27e6f30de22a307521ce45b28.tar.bz2 |
Fix some typos. Also, the WidenedVectors map
was not being cleaned by ExpungeNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62167 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypes.cpp | 8 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypes.h | 21 |
2 files changed, 20 insertions, 9 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp index 7045d7d..05bfa34 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp @@ -574,6 +574,12 @@ void DAGTypeLegalizer::ExpungeNode(SDNode *N) { 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 @@ void DAGTypeLegalizer::SetWidenedVector(SDValue Op, SDValue Result) { AnalyzeNewValue(Result); SDValue &OpEntry = WidenedVectors[Op]; - assert(OpEntry.getNode() == 0 && "Node is already promoted!"); + assert(OpEntry.getNode() == 0 && "Node already widened!"); OpEntry = Result; } diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.h b/lib/CodeGen/SelectionDAG/LegalizeTypes.h index 9439d17..c6fbf70 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypes.h +++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.h @@ -65,7 +65,7 @@ private: 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 @@ private: /// 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 @@ private: } /// 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 @@ private: /// 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 @@ private: //===--------------------------------------------------------------------===// // 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); |