[LLVMdev] LLVMdev Digest, Vol 80, Issue 13

Peter Lawrence peterl95124 at sbcglobal.net
Mon Feb 14 12:49:23 PST 2011


Andrew,
                your response highlights a naming problem in LLVM,  
which is that  "array" and "vector"
mean the same thing in normal computer language and compiler theory  
usage, so it is
inconvenient and misleading within LLVM to give one a very specific  
meaning that is different
from the other....

to the LLVM developers I would suggest using the term "packed" to  
refer to the type of
data that the SPARC-VIS, the PPC-Altivec, and the Intel-mmx/sse  
(among others) instruction
sets support.

As far as I am aware not a single one of any of the above types of
instruction sets allows the "subscripting" of packed data within a  
register  (the Maspar
computer had hardware that would allow subscripting of sub-elements  
of data within
a larger/wider register, but it was the exception, not the rule, and  
it did not support
any of the saturating arithmetic that is part-and-parcel of the  
packed data types in
the currently existing "multi-media instruction sets").


sincerely,
Peter Lawrence.




>
> Could you use an array of pointers instead? As far as I'm aware, the
> vector types in LLVM are intended to abstract the vector units on  
> modern
> CPUs (SSE, etc.) which generally support operations on only  
> integers and
> floating point values, which may be why there isn't native support for
> vectors of pointers.
>
> Andrew




More information about the llvm-dev mailing list