[LLVMdev] the getelementptr noop problem

Casey Carter ccarter at cs.uiuc.edu
Sun Sep 29 23:58:01 PDT 2002


Chris Lattner wrote:

>>so i confess i'm still not clear on what the first index into
>>getelementptr is all about.
>>    
>>
>
>I'm sure you're not the only one.  :)  This is one of the wierdest aspects
>of LLVM to the unaccustomed.
>
>  
>
>>it makes perfect sense for an example like
>>getelementptr %mystruct * %reg100
>>to just return a %mystruct * equivalent to %reg100.
>>
>>it does *not* make sense to me that
>>getelementptr %mystruct * %reg100, uint 0
>>should act the same.  for look, what this speaks of to me is indexing the
>>first element in an array.  if we are careful to cast it back to %mystruct
>>*, then it should *work*, although it is useless.  but, i would not expect
>>    
>>
>
>Ok, think of this as:
>
>Foo = &Reg[0];
>
>Which is a noop if reg is a pointer...
>  
>
Or better yet, it is:

  Foo = Reg + 0

The first index to getelementptr is for type-safe pointer arithmetic.  

-- 
Casey Carter
Casey at Carter.net
ccarter at uiuc.edu
AIM: cartec69






More information about the llvm-dev mailing list