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

Sanjiv Gupta sanjiv.gupta at microchip.com
Mon Apr 20 02:30:44 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.
>>     
>
> what's this about?  Got a testcase?
>
> Ciao,
>
> Duncan.
>
>   
Hi Duncan,

Here it is
http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-April/021785.html

- Sanjiv
>> Modified:
>>     llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
>>
>> Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=69574&r1=69573&r2=69574&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
>> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Apr 20 01:05:54 2009
>> @@ -10695,7 +10695,12 @@
>>    gep_type_iterator GTI = gep_type_begin(GEP);
>>    for (User::op_iterator i = GEP.op_begin() + 1, e = GEP.op_end();
>>         i != e; ++i, ++GTI) {
>> -    if (isa<SequentialType>(*GTI)) {
>> +    // Before trying to eliminate/introduce cast/ext/trunc to make
>> +    // indices as pointer types, make sure that the pointer size
>> +    // makes a valid sequential index.
>> +    const SequentialType *ST = dyn_cast<SequentialType>(*GTI);
>> +    Value *PtrTypeVal = Constant::getNullValue(TD->getIntPtrType());
>> +    if (ST && ST->indexValid(PtrTypeVal)) {
>>        if (CastInst *CI = dyn_cast<CastInst>(*i)) {
>>          if (CI->getOpcode() == Instruction::ZExt ||
>>              CI->getOpcode() == Instruction::SExt) {
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>     
>
>   




More information about the llvm-commits mailing list