]> granicus.if.org Git - llvm/commit
[RegisterCoalescer] Refine the terminal rule to still consider the terminal
authorQuentin Colombet <qcolombet@apple.com>
Fri, 27 Mar 2015 18:37:15 +0000 (18:37 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Fri, 27 Mar 2015 18:37:15 +0000 (18:37 +0000)
commit1ad854adba209b879163829c4463ad9682ab67f4
tree8abd48701287380ff398e7fc25cdf21b201a1008
parent2cee1c9d3c261e44e9d2eb1f1d0d16c17e4315df
[RegisterCoalescer] Refine the terminal rule to still consider the terminal
nodes.
When a node is terminal it is pushed at the end of the list of the copies to
coalesce instead of being completely ignored. In effect, this reduces its
priority over non-terminal nodes.

Because of that, we do not miss the rematerialization opportunities, nor the
copies that can be merged with more complex, than the terminal rule,
interference checks.

Related to PR22768.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233395 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegisterCoalescer.cpp
test/CodeGen/X86/sret-implicit.ll