Hoist back-copies to the least busy dominator.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 14 Sep 2011 16:45:39 +0000 (16:45 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 14 Sep 2011 16:45:39 +0000 (16:45 +0000)
commitc4c633852fbb8ab9ef2679b679d2862746d2fa3e
tree5b90b80896129848d5bbc51e5d695c23a6016b80
parent6148225b9590f18fcb6a1d3151d3158b316965e0
Hoist back-copies to the least busy dominator.

When a back-copy is hoisted to the nearest common dominator, keep
looking up the dominator tree for a less loopy dominator, and place the
back-copy there instead.

Don't do this when a single existing back-copy dominates all the others.
Assume the client knows what he is doing, and keep the dominating
back-copy.

This prevents us from hoisting back-copies into loops in most cases.  If
a value is defined in a loop with multiple exits, we may still hoist
back-copies into that loop.  That is the speed/size tradeoff.

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