[LLVMdev] Loop elimination with floating point counter.
Syoyo Fujita
syoyofujita at gmail.com
Thu Jan 8 09:22:43 PST 2009
Hi Devang,
Thanks. Yes, in the case variable i incremented by 1.0f is optimized.
I don't know why...
Anyway, I've filed this problem into bugzilla(Bug 3299)
--
Syoyo
On Fri, Jan 9, 2009 at 12:42 AM, Devang Patel <dpatel at apple.com> wrote:
>
> On Jan 8, 2009, at 4:36 AM, Syoyo Fujita wrote:
>
>> Hi LLVM-ers,
>>
>> I'd like to eliminate dead loop with floating point counter using
>> LLVM, but the following loop wasn't optimized by opt.
>>
>> void
>> func() {
>> float i;
>> for (i = 0.0f; i < 1000.0f; i += 1.2f) {
>> }
>> }
>
> FWIW, LLVM optimizer can eliminate this loop if i is incremented by 1.0f
>
> Pl. file a bugzilla report.
> Thanks,
> -
> Devang
>>
>>
>> $ clang -emit-llvm-bc floop.c
>> $ opt -std-compile-opts floop.bc | llvm-dis
>>
>> define void @func(...) nounwind {
>> entry:
>> br label %forinc
>>
>> forinc: ; preds = %forinc, %entry
>> %i.0.reg2mem.0 = phi float [ 0.000000e+00, %entry ], [ %add, %forinc
>> ] ; <float> [#uses=1]
>> %add = add float %i.0.reg2mem.0, 0x3FF3333340000000 ; <float>
>> [#uses=2]
>> %cmp = fcmp olt float %add, 1.000000e+03 ; <i1> [#uses=1]
>> br i1 %cmp, label %forinc, label %afterfor
>>
>> afterfor: ; preds = %forinc
>> ret void
>> }
>>
>> What I expected is just one instruction "ret void" in function "func".
>>
>> Should I specify some specific optimizer pass for opt?
>> If so, what is the right optimization pass to specify for opt to
>> remove dead loop with floating point counter?
>>
>> I've tested some loop optimization pass, e.g. -licm, -loop-deletion,
>> but nothing takes effect.
>>
>> FYI, gcc -O3 also can't optimize such a loop, but icc -O3 can.
>>
>> LLVM and clang used are recent version from svn.
>>
>> Thanks in advance.
>>
>> --
>> Syoyo
>> _______________________________________________
>> 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