[PATCH] D134803: [LoopPeeling] Support peeling loops with non-latch exits

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 25 01:03:07 PDT 2022


nikic added a comment.

In D134803#3869970 <https://reviews.llvm.org/D134803#3869970>, @tra wrote:

> As I suspected, the hanging code is ~2.5MB of unoptimized IR, reduced to ~1MB after optimizations. The IR is thread-sync heavy, and it's hard to tell if anything is obviously wrong after it gets further massaged by ptxas into GPU instructions. :-(

In this test case, is there only a single additional loop being peeled? If there are multiple, is it possible to localize which one is the problematic one? Can you identify which of the removed conditions in canPeel() are the ones that are relevant? Does the problematic loop contain convergent instructions as speculated before?

Just some suggestions on how the problem could be narrowed a bit further.

> Would it be possible to introduce a cc1 option disabling this kind of peeling, so we have some sort of workaround until we figure out a better way to deal with the issue?

For the record, D136643 <https://reviews.llvm.org/D136643> has the opt option (I assume that's what you meant, a cc1 option would be unusual). I think that patch is too complicated as-is, but generally having a temporary option is fine.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134803/new/

https://reviews.llvm.org/D134803



More information about the llvm-commits mailing list