[PATCH] D147116: [RFC] Introduce convergence control intrinsics

Sameer Sahasrabuddhe via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 19 22:19:36 PDT 2023


sameerds marked an inline comment as done.
sameerds added inline comments.


================
Comment at: llvm/test/Verifier/convergencectrl-invalid.ll:219
+}
+
+declare void @f() convergent
----------------
sameerds wrote:
> arsenm wrote:
> > Need some tests with invoke and demonstrate the exception issues
> Well it turns out that EH landing pads occur in blocks where we can't have a call to the entry() or loop() intrinsics. There are some rules about the predecessor blocks, which prevent landing pads in the entry block or in a loop header. So there is nothing to test here.
> 
> Note to self: If there is no conflict, might as well remove the comments from Verifier.cpp.
> 
> FIXME: A loop intrinsic is required to be the first non-PHI only if it is a true heart (in a loop header). Verifier should not complain if it occurs in any other block.
Simplified the comments in the verifier,  but did not relax the check for non-heart loop calls. For now, the verifier allows a call to `loop` only at the start of a block. That's not necessary if the call is not a loop heart, but relaxing this check is not very important yet. We can revisit if we have a real use-case where a non-heart `loop` call needs to be in the middle of a block.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D147116



More information about the llvm-commits mailing list