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 | 2da4671e05cbc1a2e2eec21e87de04d6c0e9b2e3 (patch) | |
tree | 3dad1d08fa30ed4a973b922dba3a4bb2262ef87d /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 291a86882382de158b1f1727258ea97f6be476b6 (diff) | |
download | bcm5719-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.cpp | 9 |
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); } |