summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-03-03 21:47:16 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-03-03 21:47:16 +0000
commit0dd0c47b7ebe75cca1ee5d6fa79f95359f5be720 (patch)
tree7392dc3e0d58afc9ee209b372217b44955b8f485 /llvm/lib
parent114a85381a1111a0f40f08bb2a1806dcc1e3823a (diff)
downloadbcm5719-llvm-0dd0c47b7ebe75cca1ee5d6fa79f95359f5be720.tar.gz
bcm5719-llvm-0dd0c47b7ebe75cca1ee5d6fa79f95359f5be720.zip
Move DenseMapInfo for MachineInstr* to MachineInstr.h
llvm-svn: 97667
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/MachineCSE.cpp63
1 files changed, 0 insertions, 63 deletions
diff --git a/llvm/lib/CodeGen/MachineCSE.cpp b/llvm/lib/CodeGen/MachineCSE.cpp
index c5f555b02cc..713aef0d8b0 100644
--- a/llvm/lib/CodeGen/MachineCSE.cpp
+++ b/llvm/lib/CodeGen/MachineCSE.cpp
@@ -28,69 +28,6 @@ using namespace llvm;
STATISTIC(NumCoalesces, "Number of copies coalesced");
STATISTIC(NumCSEs, "Number of common subexpression eliminated");
-namespace llvm {
- template<> struct DenseMapInfo<MachineInstr*> {
- static inline MachineInstr *getEmptyKey() {
- return 0;
- }
-
- static inline MachineInstr *getTombstoneKey() {
- return reinterpret_cast<MachineInstr*>(-1);
- }
-
- static unsigned getHashValue(const MachineInstr* const &MI) {
- unsigned Hash = MI->getOpcode() * 37;
- for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
- const MachineOperand &MO = MI->getOperand(i);
- uint64_t Key = (uint64_t)MO.getType() << 32;
- switch (MO.getType()) {
- default: break;
- case MachineOperand::MO_Register:
- if (MO.isDef() && TargetRegisterInfo::isVirtualRegister(MO.getReg()))
- continue; // Skip virtual register defs.
- Key |= MO.getReg();
- break;
- case MachineOperand::MO_Immediate:
- Key |= MO.getImm();
- break;
- case MachineOperand::MO_FrameIndex:
- case MachineOperand::MO_ConstantPoolIndex:
- case MachineOperand::MO_JumpTableIndex:
- Key |= MO.getIndex();
- break;
- case MachineOperand::MO_MachineBasicBlock:
- Key |= DenseMapInfo<void*>::getHashValue(MO.getMBB());
- break;
- case MachineOperand::MO_GlobalAddress:
- Key |= DenseMapInfo<void*>::getHashValue(MO.getGlobal());
- break;
- case MachineOperand::MO_BlockAddress:
- Key |= DenseMapInfo<void*>::getHashValue(MO.getBlockAddress());
- break;
- }
- Key += ~(Key << 32);
- Key ^= (Key >> 22);
- Key += ~(Key << 13);
- Key ^= (Key >> 8);
- Key += (Key << 3);
- Key ^= (Key >> 15);
- Key += ~(Key << 27);
- Key ^= (Key >> 31);
- Hash = (unsigned)Key + Hash * 37;
- }
- return Hash;
- }
-
- static bool isEqual(const MachineInstr* const &LHS,
- const MachineInstr* const &RHS) {
- if (RHS == getEmptyKey() || RHS == getTombstoneKey() ||
- LHS == getEmptyKey() || LHS == getTombstoneKey())
- return LHS == RHS;
- return LHS->isIdenticalTo(RHS, MachineInstr::IgnoreVRegDefs);
- }
- };
-} // end llvm namespace
-
namespace {
class MachineCSE : public MachineFunctionPass {
const TargetInstrInfo *TII;
OpenPOWER on IntegriCloud