Displaying 2 results from an estimated 2 matches for "promoted2".
Did you mean:
promoted
2010 Nov 07
0
[LLVMdev] Hoisting elements of array argument into registers
...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 %.promoted1.i, 5
%tmp21.i = add i32 %tmp20.i, -5
%tmp22.i = mul i32 %tmp21.i, %tmp12.i
%tmp9.i = mul i32 %a, %a
%.promoted2.i = load i32* %2, align 4
%tmp25.i = mul i32 %tmp18.i, 5
%tmp.i = sub i32 %.promoted1.i, %a
%tmp10.i = add i32 %tmp9.i, 1
%tmp11.i = sub i32 %tmp10.i, %tmp18.i
%tmp19.i = add i32 %tmp11.i, %.promoted2.i
%tmp23.i = sub i32 %tmp20.i, %tmp25.i
%tmp26.i = add i32 %tmp23.i, %tmp22.i
stor...
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