Hello,
I do not understand the code produced by PRO64:
For the following C program:
int a[100];
int b[100];
main()
{
int i;
for (i =0;i<100;i++)
{
a[i] = b[i] + 5;
}
}
Compiling with -O2 produced the following pipelined loop:
{ .mii
(p19) st4 [r3]=r35,4 // [3*II+0] id:12 a+0x0
(p18) adds r34=5,r37 // [2*II+0]
(p18) nop.i 0 // [2*II+0]
}; { .mfb
(p16) ld4 r35=[r2],4 // [0*II+0] id:11 b+0x0
(p16) nop.f 0 // [0*II+0]
br.ctop.dptk.few .Lt_0_4 ;; // [3*II+0]
};
Is this a legal code? there is a store from r35 and load to r35 within
the same instruction group.
(The full assembly code, as well as the C source are attached).
--
Raya Leviathan
Tel. 972-8-9344208 (office)
Tel. 972-3-6358481 (home)
Email: raya@xxxxxxxxxxxxxxxxxxxxx
simpleO2.s
Description: application/unknown-content-type-s_auto_file
simple.c
Description: application/unknown-content-type-c_auto_file
|