[LLVMdev] Is this a missed (simple) optimization?
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.
> 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
>> 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
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev