[llvm-commits] [llvm] r46680 - in /llvm/trunk/lib/CodeGen/SelectionDAG: LegalizeTypes.cpp LegalizeTypes.h
Chris Lattner
sabre at nondot.org
Sat Feb 2 23:13:32 PST 2008
Author: lattner
Date: Sun Feb 3 01:13:32 2008
New Revision: 46680
URL: http://llvm.org/viewvc/llvm-project?rev=46680&view=rev
Log:
handle the case where a node can become ready to process
multiple times due to a RAUW.
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=46680&r1=46679&r2=46680&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp Sun Feb 3 01:13:32 2008
@@ -234,7 +234,8 @@
// Node updates can mean pretty much anything. It is possible that an
// operand was set to something already processed (f.e.) in which case
// this node could become ready. Recompoute its flags.
- DTL.ReanalyzeNodeFlags(N);
+ if (N->getNodeId() != DAGTypeLegalizer::ReadyToProcess)
+ DTL.ReanalyzeNodeFlags(N);
}
};
}
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h?rev=46680&r1=46679&r2=46680&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h Sun Feb 3 01:13:32 2008
@@ -40,7 +40,7 @@
class VISIBILITY_HIDDEN DAGTypeLegalizer {
TargetLowering &TLI;
SelectionDAG &DAG;
-
+public:
// NodeIDFlags - This pass uses the NodeID on the SDNodes to hold information
// about the state of the node. The enum has all the values.
enum NodeIDFlags {
@@ -57,7 +57,7 @@
// 1+ - This is a node which has this many unlegalized operands.
};
-
+private:
enum LegalizeAction {
Legal, // The target natively supports this type.
Promote, // This type should be executed in a larger type.
More information about the llvm-commits
mailing list