Introducing a new method of tracking register pressure. We can't
authorAndrew Trick <atrick@apple.com>
Fri, 4 Feb 2011 03:18:17 +0000 (03:18 +0000)
committerAndrew Trick <atrick@apple.com>
Fri, 4 Feb 2011 03:18:17 +0000 (03:18 +0000)
commit92e946630d5f9bb092853b93501387dd216899b9
treed8efcc7cbac11a9c8560e53ccb8a036a1063ecbf
parentf827cd717b63fd3f1d9ad16e69087c65e9af8c82
Introducing a new method of tracking register pressure. We can't
precisely track pressure on a selection DAG, but we can at least keep
it balanced. This design accounts for various interesting aspects of
selection DAGS: register and subregister copies, glued nodes, dead
nodes, unused registers, etc.

Added SUnit::NumRegDefsLeft and ScheduleDAGSDNodes::RegDefIter.

Note: I disabled PrescheduleNodesWithMultipleUses when register
pressure is enabled, based on no evidence other than I don't think it
makes sense to have both enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124853 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/ScheduleDAG.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h