| commit | 33bf38ad881fa3d403cc81209d0ae796f94f125e | [log] [tgz] |
|---|---|---|
| author | Evan Cheng <evan.cheng@apple.com> | Mon Apr 28 22:07:13 2008 +0000 |
| committer | Evan Cheng <evan.cheng@apple.com> | Mon Apr 28 22:07:13 2008 +0000 |
| tree | da57facaaf6ffc4f3918df9fa81f3e5981e303c7 | |
| parent | 1fcfc3b6b28b8138168271849001aea15a7a87f0 [diff] |
Fix a bug in RegsForValue::getCopyToRegs() that causes cyclical scheduling units. If it's creating multiple CopyToReg nodes that are "flagged" together, it should not create a TokenFactor for it's chain outputs:
c1, f1 = CopyToReg
c2, f2 = CopyToReg
c3 = TokenFactor c1, c2
...
= user c3, ..., f2
Now that the two CopyToReg's and the user are "flagged" together. They effectively forms a single scheduling unit. The TokenFactor is now both an operand and a successor of the Flagged nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50376 91177308-0d34-0410-b5e6-96231b3b80d8