"Matt Lee" <[EMAIL PROTECTED]> writes: > I am seeing poor scheduling in Dhrystone where a memcpy call is > expanded inline. > > memcpy (&dst, &src, 16) ==> > > load 1, rA + 4 > store 1, rB + 4 > load 2, rA + 8 > store 2, rB + 8 > ...
Are you sure that there are no dependencies due to aliasing here. The only similar thing that Dhrystone has to what you quote is between a pointer and a global variable and in fact there is an aliasing conflict there. If that is the case you can define a movmem pattern where you first load everthing in one chunk and then store it later. See MIPS's movmemsi pattern and the function mips_block_move_straight. Adam