Displaying 4 results from an estimated 4 matches for "lbbtest_1".
2005 Feb 22
0
[LLVMdev] Area for improvement
...; [#uses=1]
br bool %exitcond, label %return, label %no_exit
return: ; preds = %no_exit, %entry
ret void
}
Note the accesses to P are using P[indvar].{real|imag}, not incrementing
P. Compile this to X86, and you get this loop (using the simple
instruction selector):
.LBBtest_1: # no_exit
mov %ESI, %EDX
shl %ESI, 4 --> scale by sizeof(complex double)
mov %EDI, %ECX
add %EDI, %ESI
mov DWORD PTR [%EDI], 0
mov DWORD PTR [%EDI + 4], 0
mov %ESI, %EDX
shl %ESI, 4...
2005 Feb 22
2
[LLVMdev] Area for improvement
...%return, label %no_exit
>
> return: ; preds = %no_exit, %entry
> ret void
> }
>
> Note the accesses to P are using P[indvar].{real|imag}, not
> incrementing P. Compile this to X86, and you get this loop (using the
> simple instruction selector):
>
> .LBBtest_1: # no_exit
> mov %ESI, %EDX
> shl %ESI, 4 --> scale by sizeof(complex
> double)
> mov %EDI, %ECX
> add %EDI, %ESI
> mov DWORD PTR [%EDI], 0
> mov DWORD PTR [%EDI + 4], 0
> mov %ESI, %EDX
&g...
2005 Feb 22
0
[LLVMdev] Area for improvement
...return: ; preds = %no_exit, %entry
>> ret void
>> }
>>
>> Note the accesses to P are using P[indvar].{real|imag}, not incrementing P.
>> Compile this to X86, and you get this loop (using the simple instruction
>> selector):
>>
>> .LBBtest_1: # no_exit
>> mov %ESI, %EDX
>> shl %ESI, 4 --> scale by sizeof(complex
>> double)
>> mov %EDI, %ECX
>> add %EDI, %ESI
>> mov DWORD PTR [%EDI], 0
>> mov DWORD PTR [%EDI + 4], 0
&g...
2005 Feb 22
5
[LLVMdev] Area for improvement
I noticed that fourinarow is one of the programs in which LLVM is much
slower than GCC, so I decided to take a look and see why that is so.
The program has many loops that look like this:
#define ROWS 6
#define COLS 7
void init_board(char b[COLS][ROWS+1])
{
int i,j;
for (i=0;i<COLS;i++)
for (j=0;j<ROWS;j++)
b[i][j]='.';