From: Dan Gohman Date: Mon, 23 Mar 2009 17:39:36 +0000 (+0000) Subject: Don't set SUnit::hasPhysRegDefs to true unless the defs are X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=8cccf0ef0ced7f4d75ca574b596036a9b6cd4315;p=oota-llvm.git Don't set SUnit::hasPhysRegDefs to true unless the defs are actually have uses, which reflects the way it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67540 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp index 303f8cc6a61..7aa15bcc686 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @@ -175,7 +175,10 @@ void ScheduleDAGSDNodes::AddSchedEdges() { if (N->isMachineOpcode() && TII->get(N->getMachineOpcode()).getImplicitDefs()) { SU->hasPhysRegClobbers = true; - if (CountResults(N) > TII->get(N->getMachineOpcode()).getNumDefs()) + unsigned NumUsed = CountResults(N); + while (NumUsed != 0 && !N->hasAnyUseOfValue(NumUsed - 1)) + --NumUsed; // Skip over unused values at the end. + if (NumUsed > TII->get(N->getMachineOpcode()).getNumDefs()) SU->hasPhysRegDefs = true; }