[llvm-commits] [llvm] r69574 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Sanjiv Gupta sanjiv.gupta at microchip.com
Wed Apr 22 04:53:54 PDT 2009


Duncan Sands wrote:
> Hi Sanjiv,
>
>   
>>>>>> Before trying to introduce/eliminate cast/ext/trunc to make indices type as
>>>>>> pointer type, make sure that the pointer size is a valid sequential index type.
>>>>>>         
>>>>>>             
>>> I think a better approach would be to add a "get preferred type for GEP indices"
>>> method to TargetData.  This would return getIntPtrType on most targets, and i16
>>> on PIC16.  Then change this transform to use the type given by that method rather
>>> than getIntPtrType.
>>>   
>>>       
>> I think you meant i32 on PIC16, because i16 indices are still not 
>> allowed to GEP.
>>     
>
> sure, if that's what PIC16 wants.  Anyway, the point is to decouple the GEP index
> type from pointer types in a clean way, by introducing new abstractions.
>
> Ciao,
>
> Duncan.
>   
This whole thing is actually a work around for r58505. i16 indices would 
be great for pic16 as they won't deny such inst combine optimization to 
it. When I fix that up this thing here and corresponding things in clang 
will not be needed.




More information about the llvm-commits mailing list