diff options
| author | Dan Gohman <gohman@apple.com> | 2009-02-11 20:25:59 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2009-02-11 20:25:59 +0000 |
| commit | 298a2946f1e6027941e522f0e38fe61d7f31c244 (patch) | |
| tree | cedd94b0bcc1051f7634533da72d77cf6e3296b1 /llvm/lib/CodeGen | |
| parent | 5ee2c02ac613cb828e827eaf70dc93f587f46d04 (diff) | |
| download | bcm5719-llvm-298a2946f1e6027941e522f0e38fe61d7f31c244.tar.gz bcm5719-llvm-298a2946f1e6027941e522f0e38fe61d7f31c244.zip | |
Delete the heuristic for non-livein CopyFromReg nodes. Non-liveinness
is determined by whether the node has a Flag operand. However, if the
node does have a Flag operand, it will be glued to its register's
def, so the heuristic would end up spuriously applying to whatever
node is the def.
llvm-svn: 64319
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp index 07274b28998..55780e40918 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp @@ -899,12 +899,6 @@ namespace { }; } // end anonymous namespace -static inline bool isCopyFromLiveIn(const SUnit *SU) { - SDNode *N = SU->getNode(); - return N && N->getOpcode() == ISD::CopyFromReg && - N->getOperand(N->getNumOperands()-1).getValueType() != MVT::Flag; -} - /// CalcNodeSethiUllmanNumber - Compute Sethi Ullman number. /// Smaller number is the higher priority. static unsigned @@ -986,11 +980,6 @@ namespace { unsigned getNodePriority(const SUnit *SU) const { assert(SU->NodeNum < SethiUllmanNumbers.size()); unsigned Opc = SU->getNode() ? SU->getNode()->getOpcode() : 0; - if (Opc == ISD::CopyFromReg && !isCopyFromLiveIn(SU)) - // CopyFromReg should be close to its def because it restricts - // allocation choices. But if it is a livein then perhaps we want it - // closer to its uses so it can be coalesced. - return 0xffff; if (Opc == ISD::TokenFactor || Opc == ISD::CopyToReg) // CopyToReg should be close to its uses to facilitate coalescing and // avoid spilling. |

