[PATCH] D72798: [llvm][docs] LangRef for IR attribute `vector-function-abi-variants`.

Francesco Petrogalli via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 22 09:36:44 PST 2020


fpetrogalli marked 2 inline comments as done.
fpetrogalli added inline comments.


================
Comment at: llvm/docs/LangRef.rst:1878
+
+         _ZGV<isa><mask><vlen><parameters>_<scalar_name>{(<vector_redirection>)}
+
----------------
jdoerfert wrote:
> fpetrogalli wrote:
> > jdoerfert wrote:
> > > 1) Only `CallInst` or call site?
> > > 2) Do we have a mangling doc entry that we could link to?
> > > 3) Do the `{` and `(` belong to the token stream? Maybe `[` is better to indicate optional things?
> > 
> > > Only CallInst or call site?
> > 
> > I am not sure what the distinction is. For now we are in need of it only for CallInst. What would be a call site?
> > 
> > 
> > > Do we have a mangling doc entry that we could link to?
> > 
> > The aarch64 and x86 ones are linked below. For LLVM, this piece of docs is to be considered the mangling doc.
> > 
> > > Do the { and ( belong to the token stream? Maybe [ is better to indicate optional things?
> > 
> > I'll use `[` for optional instead of `{`.
> > 
> > 
> > 
> Call site is a term (and for now a class `llvm::CallSite`) that describes `CallInst`, `InvokeInst`, `CallBr` (I think), and later potentially other call like instructions. If these attributes can be placed on an `InvokeInst` which I was expecting, we need to say call site or also mention `InvokeInst`. If they cannot, we should mention that explicitly I think.
> 
> Also, if you refer to `CallInst` we need the ticks and a link to the definition in the lang ref.
My understanding of the `callbr` and `invoke` instructions is that they cannot be vectorized, as they both have the following sentence in the description: `[...] [the instruction] causes control to transfer to a specified function [...]`.

I don't think this is compatible with the concept of  // concurrent execution of the functions on the lanes of the vector// that is implied by a vector function.

For this reason, I have modified the text to make sure it applies only to CallInst.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72798





More information about the llvm-commits mailing list