Collapse DomainValues across loop back-edges.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 9 Nov 2011 01:06:56 +0000 (01:06 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 9 Nov 2011 01:06:56 +0000 (01:06 +0000)
commitf4c4768fb2277cb940a90cb2f0e9a747ebc671c3
treeb98651084e6e09a4538358964fbbb7f1b87dfeb3
parentdbc372f47e3a77343e6ef1ab4a88bc46f532f774
Collapse DomainValues across loop back-edges.

During the initial RPO traversal of the basic blocks, remember the ones
that are incomplete because of back-edges from predecessors that haven't
been visited yet.

After the initial RPO, revisit all those loop headers so the incoming
DomainValues on the back-edges can be properly collapsed.

This will properly fix execution domains on software pipelined code,
like the included test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144151 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/ExecutionDepsFix.cpp
test/CodeGen/X86/sse-domains.ll [new file with mode: 0644]