[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