Displaying 2 results from an estimated 2 matches for "promoted1".
Did you mean:
promoted
2010 Nov 07
0
[LLVMdev] Hoisting elements of array argument into registers
...bounds [4 x i32]* %sp, i64 0, i64 2
store i32 0, i32* %2, align 4
%3 = getelementptr inbounds [4 x i32]* %sp, i64 0, i64 3
store i32 0, i32* %3, align 4
%4 = icmp eq i32 %a, 0
br i1 %4, label %wf.exit, label %bb.nph.i
bb.nph.i: ; preds = %entry
%.promoted1.i = load i32* %1, align 4
%tmp12.i = add i32 %a, -1
%tmp13.i = zext i32 %tmp12.i to i33
%tmp14.i = add i32 %a, -2
%tmp15.i = zext i32 %tmp14.i to i33
%tmp16.i = mul i33 %tmp13.i, %tmp15.i
%tmp17.i = lshr i33 %tmp16.i, 1
%tmp18.i = trunc i33 %tmp17.i to i32
%tmp20.i = mul i32 %.promo...
2010 Nov 06
2
[LLVMdev] Hoisting elements of array argument into registers
I am seeing the wf loop get optimized just fine with llvm 2.8 (and almost as good with head). I'm running on Mac OS X 10.6. I have an apple supplied llvm-gcc and a self compiled llvm 2.8. When I run
$ llvm-gcc -emit-llvm -S M.c
$ opt -O2 M.s | llvm-dis
I see that:
1. Tail recursion has been eliminated from wf
2. The accesses to sp have been promoted to registers
3. The loop has