OSDN Git Service

[RegAllocGreedy] Take last chance recoloring into account in evicting.
authorMark Lacey <mark.lacey@apple.com>
Wed, 13 Feb 2019 22:56:43 +0000 (22:56 +0000)
committerMark Lacey <mark.lacey@apple.com>
Wed, 13 Feb 2019 22:56:43 +0000 (22:56 +0000)
commit11a96c97970768043235b96b5e2bfc7493ded2ea
tree45eaf609f784143e1bc564377ca27761e6d6faa7
parent4db7091f7d4f3eab4116e12a23b0e9f965b8ced8
[RegAllocGreedy] Take last chance recoloring into account in evicting.

Last chance recoloring inserts into FixedRegisters those virtual
registers it is attempting to assign a physical register to.

We must consider these when we consider candidates for eviction so that
we do not end up evicting something while we are attempting to recolor
to assign it.

This is hitting in an out-of-tree target and no longer reproduces on
trunk. That does not appear to be a result of it having been fixed, but
rather, it appears that optimization changes and/or other changes to
register allocation mask the problem.

I haven't found a way to come up with a reasonable test case for this
(i.e. one that I can actually commit to open source, is reasonable
in size, and actually reproduces the issue).

rdar://problem/45708741

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353988 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp