[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