------- Additional Comments From steven at gcc dot gnu dot org  2005-06-28 
14:06 -------
It is maybe a bit hard to investigate this bug because it actually causes 
bootstrap failures on e.g. ia64, and even a normal "make" seems to produce 
bad crt* stuff.  So I took a different approach: 
 
Index: common.opt 
=================================================================== 
RCS file: /cvs/gcc/gcc/gcc/common.opt,v 
retrieving revision 1.77 
diff -u -3 -p -r1.77 common.opt 
--- common.opt  28 Jun 2005 02:20:28 -0000      1.77 
+++ common.opt  28 Jun 2005 13:53:10 -0000 
@@ -1014,6 +1014,10 @@ fzero-initialized-in-bss 
 Common Report Var(flag_zero_initialized_in_bss) Init(1) 
 Put zero initialized data in the bss section 
 
+fzzzz 
+Common Report Var(flag_zzzz) Init(0) 
+Flag for testing some feature 
+ 
 g 
 Common JoinedOrMissing 
 Generate debug information in default format 
Index: sched-deps.c 
=================================================================== 
RCS file: /cvs/gcc/gcc/gcc/sched-deps.c,v 
retrieving revision 1.93 
diff -u -3 -p -r1.93 sched-deps.c 
--- sched-deps.c        25 Jun 2005 02:01:03 -0000      1.93 
+++ sched-deps.c        28 Jun 2005 13:53:10 -0000 
@@ -149,7 +149,10 @@ sched_get_condition (rtx insn) 
     return 0; 
 
   src = SET_SRC (pc_set (insn)); 
-#if 0 
+#if 1 
+  if (!flag_zzzz) 
+    return 0; 
+ 
   /* The previous code here was completely invalid and could never extract 
      the condition from a jump.  This code does the correct thing, but that 
      triggers latent bugs later in the scheduler on ports with conditional 
 
I used this patch and compared the gcc.dg execute.exp results of a normal test 
run with the results of the patched compiler, i.e. the diff of the output of 
 
make check-gcc RUNTESTFLAGS="execute.exp"  
 
and 
 
make check-gcc RUNTESTFLAGS="execute.exp --tool_opts '-fzzzz'" 
 
which shows that on an Itanium2 box the following test cases work with the 
code in sched_get_condition disabled, but fail with the patch: 
0a1,5 
> FAIL: gcc.c-torture/execute/20010209-1.c execution,  -O2 
> FAIL: gcc.c-torture/execute/20010209-1.c execution,  -O3 
-fomit-frame-pointer 
> FAIL: gcc.c-torture/execute/20010209-1.c execution,  -O3 
-fomit-frame-pointer -funroll-loops 
> FAIL: gcc.c-torture/execute/20010209-1.c execution,  -O3 
-fomit-frame-pointer -funroll-all-loops -finline-functions 
> FAIL: gcc.c-torture/execute/20010209-1.c execution,  -O3 -g 
7a13,22 
> FAIL: gcc.c-torture/execute/920625-1.c compilation,  -O3 
-fomit-frame-pointer -funroll-loops 
> FAIL: gcc.c-torture/execute/920625-1.c compilation,  -O3 
-fomit-frame-pointer -funroll-all-loops -finline-functions 
> FAIL: gcc.c-torture/execute/990127-1.c execution,  -O2 
> FAIL: gcc.c-torture/execute/990127-1.c execution,  -O3 -fomit-frame-pointer 
> FAIL: gcc.c-torture/execute/990127-1.c execution,  -O3 -g 
> FAIL: gcc.c-torture/execute/va-arg-10.c execution,  -O2 
> FAIL: gcc.c-torture/execute/va-arg-10.c execution,  -O3 -fomit-frame-pointer 
> FAIL: gcc.c-torture/execute/va-arg-10.c execution,  -O3 -fomit-frame-pointer 
-funroll-loops 
> FAIL: gcc.c-torture/execute/va-arg-10.c execution,  -O3 -fomit-frame-pointer 
-funroll-all-loops -finline-functions 
> FAIL: gcc.c-torture/execute/va-arg-10.c execution,  -O3 -g 
 
There.  At least this should at last make it a bit easier to investigate this 
nasty bug. 
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17808

Reply via email to