mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
In the list-burr's pseudo two-addr dependency heuristics, don't
add dependencies on nodes with exactly one successor which is a COPY_TO_REGCLASS node. In the case that the copy is coalesced away, the dependence should be on the user of the copy, rather than the copy itself. llvm-svn: 69309
This commit is contained in:
parent
2165510df6
commit
397a4671f0
@ -1389,6 +1389,16 @@ void RegReductionPriorityQueue<SF>::AddPseudoTwoAddrDeps() {
|
||||
if (SuccSU->getHeight() < SU->getHeight() &&
|
||||
(SU->getHeight() - SuccSU->getHeight()) > 1)
|
||||
continue;
|
||||
// Skip past COPY_TO_REGCLASS nodes, so that the pseudo edge
|
||||
// constrains whatever is using the copy, instead of the copy
|
||||
// itself. In the case that the copy is coalesced, this
|
||||
// preserves the intent of the pseudo two-address heurietics.
|
||||
while (SuccSU->Succs.size() == 1 &&
|
||||
SuccSU->getNode()->isMachineOpcode() &&
|
||||
SuccSU->getNode()->getMachineOpcode() ==
|
||||
TargetInstrInfo::COPY_TO_REGCLASS)
|
||||
SuccSU = SuccSU->Succs.front().getSUnit();
|
||||
// Don't constrain non-instruction nodes.
|
||||
if (!SuccSU->getNode() || !SuccSU->getNode()->isMachineOpcode())
|
||||
continue;
|
||||
// Don't constrain nodes with physical register defs if the
|
||||
|
Loading…
x
Reference in New Issue
Block a user