[LLVMdev] LICM

Chris Lattner clattner at apple.com
Tue Oct 27 09:32:39 PDT 2009


On Oct 27, 2009, at 9:26 AM, Nick Lewycky wrote:

> 2009/10/27 Marc Brünink <marc at bruenink.de>
> Hi all,
>
> I just noticed that LICM does not hoist/sink the following store out  
> of the loop:
>
>        int array[20];
>        int i;
>        for (i = 0; i<100; i++) {
>                array [0] = 0;
>        }
>
> The getElementPtr instruction is hoisted out of the loop; the store  
> is not. Did I miss something obvious? Bitcode file attached.
> Generated using LLVM 2.5 and
> llvm-gcc -c -emit-llvm test_loop.c  -o - | opt  -licm -o test.bc -f
>
> Thanks for the report. Since this still happens with LLVM at the top  
> of SVN, I filed it as http://llvm.org/PR5319 . Please add yourself  
> to the cc list there.

This is expected behavior, you need to run loop rotate before licm to  
get this.   This is completely eliminate at -O3.

-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091027/3000fb8d/attachment.html>


More information about the llvm-dev mailing list