diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-10-11 01:47:58 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-10-11 01:47:58 +0000 |
commit | 9629abac79fe4efdd000ca1996b2cabd1609190c (patch) | |
tree | a3339f56de507cf4540ac515e690df979d15e915 /lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 67afa13980d2e5abee7a7bafa9b290f05fdd33d3 (diff) |
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30866 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 61f0a49d7a..895ae47f99 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -454,6 +454,15 @@ SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, SelectionDAGCSEMap::NodeID ID; ID.SetOpcode(N->getOpcode()); ID.SetValueTypes(N->getVTList()); + if (const LoadSDNode *LD = dyn_cast<LoadSDNode>(N)) { + ID.AddInteger(LD->getAddressingMode()); + ID.AddInteger(LD->getExtensionType()); + ID.AddInteger(LD->getLoadVT()); + ID.AddPointer(LD->getSrcValue()); + ID.AddInteger(LD->getSrcValueOffset()); + ID.AddInteger(LD->getAlignment()); + ID.AddInteger(LD->isVolatile()); + } ID.SetOperands(Ops, NumOps); return CSEMap.FindNodeOrInsertPos(ID, InsertPos); } |