[LLVMdev] Making GEP into vector illegal?

Chris Lattner clattner at apple.com
Tue Oct 14 12:08:38 PDT 2008

On Oct 14, 2008, at 11:02 AM, Duncan Sands wrote:

> Hi Mon Ping,
>> I would like to make it illegal to GEP into a vector as I think it is
>> cleaner and more consistent.  Opinions?  Comments?
> now that arrays are first class types, I think vectors should become
> a subclass of ArrayType.  This would get rid of a lot of duplicated
> code, and also fix a bunch of problems with vectors (eg: that sizes
> are wrong; currently we think that a <n x i1> has length n bits, and
> that a vector <n x x86_fp80> has length 80*n bits, both of which are
> untenable).

I'm happy about factoring the code better, but a vectortype isn't an  
arraytype (isa<ArrayType>(V) should be false).  Maybe a common base  
class (like sequential type) would be better?

> From this point of view you have to allow GEP into a
> vector; the conclusion I suppose is that codegen needs to replace
> GEP+load or GEP+store with an extract or insert operation.

With that logic, there is no difference at all between an array and  
vector... I disagree very strongly about this.


More information about the llvm-dev mailing list