[LLVMdev] Is this a missed (simple) optimization?
Duncan Sands
baldrick at free.fr
Fri Nov 16 04:44:10 PST 2012
> If the function was called Test(&B) then the first store would affect
> the second load.
You can use the "restrict" qualifier ("noalias" in LLVM) to tell the optimizers
that this kind of aliasing doesn't occur.
Ciao, Duncan.
>
> Tim.
>
> On Fri, Nov 16, 2012 at 11:58 AM, AnonW <wayne.phillips at gmail.com> wrote:
>> I think this is a missed optimization, but maybe I'm missing some significant
>> piece of knowledge(!) as to why this might not be optimizable :) Test
>> case...
>>
>> int A; // some global
>> int B; // some global
>>
>> void Test(int *Out)
>> {
>> *Out = A; // Can't this be optimized away?
>> *Out = B;
>> };
>>
>> The LLVM backend (tested 3.1 and 3.0 online demo) doesn't optimize away the
>> first store, even with O3 level compiling in clang. Is there some valid
>> reason for this?
>>
>> Any insight appreciated. Thanks.
>>
>>
>>
>> --
>> View this message in context: http://llvm.1065342.n5.nabble.com/Is-this-a-missed-simple-optimization-tp51361.html
>> Sent from the LLVM - Dev mailing list archive at Nabble.com.
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list