This is an archive of the discontinued LLVM Phabricator instance.

Tail Duplication: Don't denormalize loops when duplicating early.
Needs ReviewPublic

Authored by iteratee on Aug 30 2016, 10:59 AM.

Details

Reviewers
davidxl
Summary

Duplicating loop latches, headers, or pre-headers prevents certain loop based
optimizations. Now that we have tail-duplication during placement, it makes
sense to wait to duplicate these blocks until later, to allow other
optimizations to proceed.

Diff Detail

Event Timeline

iteratee updated this revision to Diff 69727.Aug 30 2016, 10:59 AM
iteratee retitled this revision from to Tail Duplication: Don't denormalize loops when duplicating early..
iteratee updated this object.
iteratee added a reviewer: davidxl.
iteratee set the repository for this revision to rL LLVM.
iteratee added subscribers: llvm-commits, echristo, timshen.
davidxl edited edge metadata.Sep 2 2016, 12:18 PM

can you write test cases that demonstrate potentially blocked loop optimizations due to early taildup of those loop blocks?

I'm going to put this change on hold and improve the loop rotation code. If I find another slowdown due to this, I'll revive this patch.