On Nov 12, 12:01pm, raya wrote:
> Subject: loop-unrolling bug ?
>
> Hello,
>
> Enclosed is a c source and the assembly output of a small c loop.
> The first instruction of the loop (label: BB6_main) is:
> ls4 r33=[r36].
> To my understanding, "r36" is not initialized in the first time the loop
> is executed, (no reg rotation was done at this stage). To my
> understanding pr17 is set to "1" in the first execution of the loop. Am
> I worng?
Yes you are mistaken. This loop is using rotating registers. On the
initial iteration p16 is true an the others are false. This is done
outside the loop by mov pr.rot=65536
-Ross
>
> Thanks,
> --
> Raya Leviathan
> Tel. 972-8-9344208 (office)
> Tel. 972-3-6358481 (home)
> Email: raya@xxxxxxxxxxxxxxxxxxxxx
>
>
> [ Attachment (application/x-unknown-content-type-c_auto_file):
"modulo-scheduling.c" 121 bytes
> Encoded with "base64" ]
>
> [ Attachment (application/x-unknown-content-type-S_auto_file):
"modulo-scheduling_1.s" 13947 bytes
> Encoded with "base64" ]
>
> [ text/plain ] :
>
> sgicc WARNING: modulo-scheduling_1.s modulo-scheduling_1.s will overwrite a
file that has a source-file suffix
> SGIcc Compilers: Version 0.01.0-9
> /usr/bin/gcc -D_LANGUAGE_C -D_SGI_COMPILER_VERSION=001 -D__host_ia32
-D__INLINE_INTRINSICS -v -D__OPTIMIZE__ -D_LP64 -D__ia64=1 modulo-scheduling.c
-E > /tmp/cci.Uy7Kof
> Reading specs from /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/specs
> gcc version 2.9-ia64-000216 snap-000324
> /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/cpp -lang-c -v -isystem
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/include -D__GNUC__=2
-D__GNUC_MINOR__=9 -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG
-Dlinux -Dunix -D__LP64__ -D__ELF__ -D__ia64 -D__ia64__ -D__linux -D__linux__
-D_LONGLONG -D__linux__ -D__unix__ -D__LP64__ -D__ELF__ -D__linux -D__unix
-Asystem(linux) -Acpu(ia64) -Amachine(ia64) -D__LONG_MAX__=9223372036854775807L
-D_LANGUAGE_C -D_SGI_COMPILER_VERSION=001 -D__host_ia32 -D__INLINE_INTRINSICS
-D__OPTIMIZE__ -D_LP64 -D__ia64=1 modulo-scheduling.c
> GNU CPP version 2.9-ia64-000216 snap-000324 (IA-64)
> #include "..." search starts here:
> #include <...> search starts here:
> /usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/include
> /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/include
>
> /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/../../../../ia64-hp-linux/include
> End of search list.
> The following default directories have been omitted from the search path:
> /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/../../../../include/g++-3
>
> /usr/lib/gcc-lib/ia64-hp-linux/2.9-ia64-000216/../../../../ia64-hp-linux/sys-include
> End of omitted list.
> /usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/gfec -O3 -g3 -dx -version -quiet
-dumpbase modulo-scheduling.c /tmp/cci.Uy7Kof -o /tmp/ccB.qIKHmm
> GNU C version sgicc-1.0 (ia64-linux) compiled by GNU C version 2.95.2
19991024 (release).
> /usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/be -PHASE:l:w:c -G8 -TENV:PIC -m1
-INTERNAL:return_val=on -INTERNAL:mldid_mstid=on -INTERNAL:return_info=on -show
-O3 -g3 -TARG:abi=i64 -LANG:=ansi_c -fB,/tmp/ccB.qIKHmm -s
-fs,modulo-scheduling_1.s modulo-scheduling.c
> Compiling modulo-scheduling.c (/tmp/ccB.qIKHmm) -- Back End
> Compiling main(0)
>
>-- End of excerpt from raya
|