This is an early attempt and a call for feedback on adding support in GlobalISel
for convergence control tokens:
- IRTranslator converts LLVM token type to LLT::token(), which is an alias for the s0 type. These show up as implicit uses on convergent operations.
- Legalizer removes all implicit uses of convergence control tokens, since they are not meant to be translated to actual target instructions.
- Machine verifier enforces the static rules of convergence control.