[PATCH] D71383: [LoopGuard] Instructions in loop preheader and loop exit must be safe to execute speculatively.

Whitney Tsang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 12:07:26 PST 2019


Whitney added a comment.

> This doesn't make sense to me. I don't see why we need the speculation restriction here. The discussion mentions concern about side exits, but if so, that's a different property. (i.e. isGuaranteedToTransferToSuccessor)

You are right, I should use isGuaranteedToTransferExecutionToSuccessor instead of IsSafeToSpeculativelyExecute.

> This also needs more background as to motivation. Motivating use case? Link to a review would be ideal.

The reason I am doing this PR is because I noticed that I forgot about this restriction in my original implementation (is my mistake). This PR is making the definition of loop guard more restricted, which means less loops would be considered as guarded.  The previous review is https://reviews.llvm.org/D63885, but the decision of the definition of loop guard is made in the loop group meeting. I am ok to leave the definition of loop guard as is (before this patch) if that's what everyone preferred.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71383





More information about the llvm-commits mailing list