This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH]: Correct edge test to use new EDGE_CROSSING flag
- From: Caroline Tice <ctice at apple dot com>
- To: "gcc-patches at gcc dot gnu dot org Patches" <gcc-patches at gcc dot gnu dot org>
- Cc: Caroline Tice <ctice at apple dot com>
- Date: Mon, 30 Aug 2004 14:25:17 -0700
- Subject: [PATCH]: Correct edge test to use new EDGE_CROSSING flag
When hot/cold partitioning was changed to use EDGE_CROSSING flag rather
than a field in the edge
struct, the following edge test in rtl_verify_flow_info_1 was
overlooked; this causes a failure if
you do a profiledbootstrap with partitioning enabled (at least on an
x86 running Linux). The following
patch fixes this failure by adding the new edge flag to the test
conditions.
This has been tested with a profiled bootstrap, with partitioning
enabled, on an x86 running Linux; I'm
in the process of running a profiled bootstrap with partitioning on a
G4 running apple powerpc darwin.
Assuming the G4 profiled bootstrap works, is this okay to commit to FSF
mainline?
-- Caroline Tice
ctice@apple.com
2004-08-30
* cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
EDGE_CROSSING, to flags test case.
Index: gcc/cfgrtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgrtl.c,v
retrieving revision 1.131
diff -c -3 -p -r1.131 cfgrtl.c
*** gcc/cfgrtl.c 25 Aug 2004 19:52:52 -0000 1.131
--- gcc/cfgrtl.c 30 Aug 2004 21:16:20 -0000
*************** rtl_verify_flow_info_1 (void)
*** 1999,2005 ****
if ((e->flags & ~(EDGE_DFS_BACK
| EDGE_CAN_FALLTHRU
| EDGE_IRREDUCIBLE_LOOP
! | EDGE_LOOP_EXIT)) == 0)
n_branch++;
if (e->flags & EDGE_ABNORMAL_CALL)
--- 1999,2006 ----
if ((e->flags & ~(EDGE_DFS_BACK
| EDGE_CAN_FALLTHRU
| EDGE_IRREDUCIBLE_LOOP
! | EDGE_LOOP_EXIT
! | EDGE_CROSSING)) == 0)
n_branch++;
if (e->flags & EDGE_ABNORMAL_CALL)