Bug 89673

Summary: IA64 dependency violation
Product: [Retired] Red Hat Raw Hide Reporter: hjl
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-10-03 22:58:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Warning messages from gas none

Description hjl 2003-04-25 19:26:47 UTC
while bootstrapping gcc version 3.2.3 20030422 (Red Hat Linux 3.2.3-1),
I got many dependency violation messages from gas.

Comment 1 hjl 2003-04-25 19:27:54 UTC
Created attachment 91306 [details]
Warning messages from gas

Comment 2 hjl 2003-06-22 16:00:31 UTC
With gcc-3_3-rhl-branch from CVS on 2003-06-21, I got

Bootstrap comparison failure!
java/decl.o differs
make[3]: *** [compare] Error 1
make[3]: Leaving directory `/export/build/gnu/gcc-3.3-redhat/build-ia64-
linux/gcc'
make[2]: *** [bootstrap] Error 2
make[2]: Leaving directory `/export/build/gnu/gcc-3.3-redhat/build-ia64-linux'

on one machine. It was ok on a different machine. The diff is

--- 1   Sun Jun 22 08:14:37 2003
+++ 2   Sun Jun 22 08:14:44 2003
@@ -1,5 +1,5 @@

-java/decl.o:     file format elf64-ia64-little
+stage2/java/decl.o:     file format elf64-ia64-little

 Disassembly of section .text:

@@ -2054,10 +2054,10 @@ Disassembly of section .text:
     2a50:      0b 70 00 1e 18 10       [MMI]       ld8 r14=[r15];;
     2a56:      70 00 38 0c 72 00                   cmp.eq p7,p6=0,r14
     2a5c:      00 00 04 00                         nop.i 0x0;;
-    2a60:      dc 00 20 40 98 11       [MFB] (p06) st8 [r32]=r8
+    2a60:      fc 00 20 1e 98 11       [MFB] (p07) st8 [r15]=r8
     2a66:      00 00 00 02 00 00                   nop.f 0x0
     2a6c:      00 00 00 20                         nop.b 0x0
-    2a70:      e0 00 20 1e 98 11       [MII] (p07) st8 [r15]=r8
+    2a70:      c0 00 20 40 98 11       [MII] (p06) st8 [r32]=r8
     2a76:      f0 c0 22 00 42 00                   adds r15=88,r8
     2a7c:      04 40 00 84                         mov r32=r8
     2a80:      0a 70 00 46 18 10       [MMI]       ld8 r14=[r35];;

I also got

# /export/build/gnu/gcc-3.3-redhat/build-ia64-linux/gcc/xgcc -
B/export/build/gnu/gcc-3.3-redhat/build-ia64-linux/gcc/ -B/usr/gcc-3.3-
redhat/ia64-unknown-linux-gnu/bin/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-
gnu/lib/ -isystem /usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/include -c -I. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/libobjc -O2 -g -O2 -W -Wall -
Wwrite-strings -Wstrict-prototypes -DHAVE_GTHR_DEFAULT -DIN_GCC -
DIN_TARGET_LIBS -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/libobjc/objc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/libobjc/../gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/libobjc/../gcc/config -I../../gcc -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/libobjc/../include /net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/libobjc/init.c -o init.o
/tmp/ccMZj8Qs.s: Assembler messages:
/tmp/ccMZj8Qs.s:1069: Warning: Use of 'mov' may violate WAW dependency 'GR%, % 
in 1 - 127' (impliedf), specific resource number is 14
/tmp/ccMZj8Qs.s:1069: Warning: Only the first path encountering the conflict 
is reported
/tmp/ccMZj8Qs.s:1068: Warning: This is the location of the conflicting usage

#  stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/c-
opts.c -o c-opts.o
/tmp/cckEZ8Nh.s: Assembler messages:
/tmp/cckEZ8Nh.s:7674: Warning: Use of 'addl' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 39
/tmp/cckEZ8Nh.s:7674: Warning: Only the first path encountering the conflict 
is reported
/tmp/cckEZ8Nh.s:7673: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes    -DHAVE_CONFIG_H    -I. -Icp -I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/cp -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/cp/decl.c -o cp/decl.o
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/cp/decl.c: In function 
`lookup_tag_reverse':
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/cp/decl.c:463: warning: `p' 
might be used uninitialized in this function
/tmp/cccMyvHU.s: Assembler messages:
/tmp/cccMyvHU.s:34208: Warning: Use of 'mov' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 15
/tmp/cccMyvHU.s:34208: Warning: Only the first path encountering the conflict 
is reported
/tmp/cccMyvHU.s:34206: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/recog.c
/tmp/ccwFzSj0.s: Assembler messages:
/tmp/ccwFzSj0.s:3826: Warning: Use of 'mov' may violate WAW dependency 'GR%, % 
in 1 - 127' (impliedf), specific resource number is 15
/tmp/ccwFzSj0.s:3826: Warning: Only the first path encountering the conflict 
is reported
/tmp/ccwFzSj0.s:3825: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-
build.c
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-build.c: In function 
`undef_to_size_word':
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-build.c:399: warning: `long' 
switch expression not converted to `int' in ISO C
/tmp/cc3Aoz7E.s: Assembler messages:
/tmp/cc3Aoz7E.s:15628: Warning: Use of 'mov' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 14
/tmp/cc3Aoz7E.s:15628: Warning: Only the first path encountering the conflict 
is reported
/tmp/cc3Aoz7E.s:15627: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-
colorize.c
/tmp/ccCV18FL.s: Assembler messages:
/tmp/ccCV18FL.s:17156: Warning: Use of 'mov' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 15
/tmp/ccCV18FL.s:17155: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-
build.c
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-build.c: In function 
`undef_to_size_word':
/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/ra-build.c:399: warning: `long' 
switch expression not converted to `int' in ISO C
/tmp/cc7hOjKX.s: Assembler messages:
/tmp/cc7hOjKX.s:15628: Warning: Use of 'mov' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 14
/tmp/cc7hOjKX.s:15628: Warning: Only the first path encountering the conflict 
is reported
/tmp/cc7hOjKX.s:15627: Warning: This is the location of the conflicting usage

# stage2/xgcc -Bstage2/ -B/usr/gcc-3.3-redhat/ia64-unknown-linux-gnu/bin/ -
c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H    -I. -
I. -I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/. -
I/net/gnu/export/gnu/src/gcc-3.3-redhat/gcc/gcc/config -
I/net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/../include /net/gnu/export/gnu/src/gcc-3.3-
redhat/gcc/gcc/optabs.c
/tmp/ccmsrwse.s: Assembler messages:
/tmp/ccmsrwse.s:7471: Warning: Use of 'adds' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 14
/tmp/ccmsrwse.s:7470: Warning: This is the location of the conflicting usage
/tmp/ccmsrwse.s:7484: Warning: Use of 'adds' may violate WAW dependency 'GR%, 
% in 1 - 127' (impliedf), specific resource number is 14
/tmp/ccmsrwse.s:7483: Warning: This is the location of the conflicting usage

The problem may be related.


Comment 3 Richard Henderson 2004-10-03 22:58:27 UTC
All of the dependency violations I've ever seen out of gcc were gas bugs.
To my knowledge, all of them have been fixed for binutils 2.15.  If
you find different, file a more specific bug report.