This is the mail archive of the gcc-patches@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]

ifcvt too eager at verifing flow info?


Does it make sense to run verify_flow_info() when life_data_ok is
false?  Some mn10300 failures triggered by enabling this check are:
gcc.c-torture/compile/930411-1.c, gcc.c-torture/execute/950511-1.c and
gcc.c-torture/execute/950512-1.c.  In the first two cases, the errors
are indeed bogus; the RTL is all correct, and so is the generated
code.  In the last case, verify_flow_info detects a real bug in ifcvt:
it introduces a jump_insn without introducing a basic block note, in a
case that had life_data_ok set.  Therefore, I propose this patch.  Ok
to install?

Index: gcc/ChangeLog
from  Alexandre Oliva  <aoliva@cygnus.com>

	* ifcvt.c (if_convert): Verify flow info only if life data was ok.

Index: gcc/ifcvt.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ifcvt.c,v
retrieving revision 1.18
diff -u -r1.18 ifcvt.c
--- gcc/ifcvt.c	2000/05/19 22:27:26	1.18
+++ gcc/ifcvt.c	2000/05/20 16:46:06
@@ -2057,6 +2058,7 @@
     }
 
 #ifdef ENABLE_CHECKING
-  verify_flow_info ();
+  if (life_data_ok)
+    verify_flow_info ();
 #endif
 }

-- 
Alexandre Oliva    Enjoy Guaranį, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me

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