This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

egcs-112 iA32 -funroll-loops bug


Hi,

here is an egcs-1.1.2 problem:

/tmp/cc4KBhW1.s: Assembler messages:
/tmp/cc4KBhW1.s:1743: Fatal error: Symbol .LEHB4218 already defined.

	.size    TBCI::TMatrix<unsigned int>::operator==(TBCI::Matrix<unsigned int> const &),.Lfe5-TBCI::TMatrix<unsigned int>::operator==(TBCI::Matrix<unsigned int> const &)
	.align 4
.LPR42:
	movl (%esp),%ebx
	ret
.globl TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &)
	.type    TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &),@function
TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &):

[...]

	pushl %esi
.LEHB4218:
.LEHE4218:
	jmp .L4335
	.align 4
.L4308:
	movl -48(%ebp),%ecx
	addl $4,%edx
	addl $4,%ecx
	cmpl -44(%ebp),%edx
	jae .L4178
	.align 4
.L4183:
        movl -36(%ebp),%eax
	imull (%ecx),%eax
	cmpl %eax,(%edx)
	jne .L4336
.LEHB4218:
.LEHE4218:
	movl -36(%ebp),%eax
	imull 4(%ecx),%eax
	cmpl %eax,4(%edx)
	je .L4326
.L4336:
	movl 12(%ebp),%esi
        cmpb $0,28(%esi)
	je .L4328
	cmpl $0,4(%esi)
	je .L4328
	cmpl $0,-40(%ebp)
	je .L4329
	movl -48(%ebp),%edi
	pushl %edi
.L4335:
	call __builtin_vec_delete@PLT
	addl $4,%esp
.L4329:
	movl 12(%ebp),%esi
	movl $0,(%esi)
	movl 16(%esi),%eax
	testl %eax,%eax
	je .L4330
	pushl %eax
	call __builtin_vec_delete@PLT
	addl $4,%esp
.L4330:
	movl 12(%ebp),%edi
	movl $0,16(%edi)
.L4328:
.LEHB4218:
	cmpl $0,-20(%ebp)
	je .L4333
	movl -24(%ebp),%eax
        testl %eax,%eax
	je .L4331
	pushl %eax
	call __builtin_vec_delete@PLT
	addl $4,%esp
.L4331:
	movl $0,-24(%ebp)
	movl -8(%ebp),%eax
	testl %eax,%eax
	je .L4332
	pushl %eax
	call __builtin_vec_delete@PLT
.L4332:
	movl $0,-8(%ebp)
.L4333:
.LEHE4218:
	xorl %eax,%eax
	jmp .L4304


.LEHB4218 and .LEHE4218 are defined three times!

Here is how to reproduce it:
Download the numlib-1.9.97.tar.gz from
http://pebbles.e-technik.uni-dortmund.de/numlib/numlib/numlib-1.9.97.tar.gz,
go into the lina directory and build the library by typing
 make OPT=1 CC="gcc -V egcs-2.91.66"
The bug will show on compilation of matlibuint.po

This only happens on ix86 with -funroll-loops.
(Linux-2.2.9, glibc-2.0.7, egcs-1.1.2)
On alpha (DUX4.0d), everything is fine. 
Removing -funroll-loops on ix86 also results in successful compilation.

Any ideas?
-- 
Dipl.Phys. Kurt Garloff <kurt@garloff.de>               [Wuppertal, FRG]
Garloff Linux System Development                  [Linux-ix86,-axp, DUX]
Plasma physics, high perf. computing          [Linux SCSI driver: DC390]
PGP key: see mailheader / key servers         

PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]