summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-10-11 01:47:58 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-10-11 01:47:58 +0000
commit2da4671e05cbc1a2e2eec21e87de04d6c0e9b2e3 (patch)
tree3dad1d08fa30ed4a973b922dba3a4bb2262ef87d /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
parent291a86882382de158b1f1727258ea97f6be476b6 (diff)
downloadbcm5719-llvm-2da4671e05cbc1a2e2eec21e87de04d6c0e9b2e3.tar.gz
bcm5719-llvm-2da4671e05cbc1a2e2eec21e87de04d6c0e9b2e3.zip
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID.
llvm-svn: 30866
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 61f0a49d7a6..895ae47f99b 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/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);
}
OpenPOWER on IntegriCloud