This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: [PATCH] Re: Option -fprofile-arcs fails for target avr and fr30


Jie Zhang wrote:

The following patch may fix this problem.

- J


2003-05-12 Jie Zhang <zhangjie@magima.com.cn>


Fix the FAILs of gcc.misc-tests/bprob-1.c and gcc.misc-tests/bprob-2.c
on target avr and fr30.
* cfgbuild.c (make_edges): Find JUMP_LABELs for the new JUMP_INSNs
introduced by instrument code after jump optimization pass.
It would probably be sensible to only enable that code when flag_profile_arcs
is true -- otherwise you might be hiding a bug in GCC. Jan, what do you
think?

nathan

--- cfgbuild.c 2003-01-09 20:40:44.000000000 +0800
+++ cfgbuild-new.c 2003-05-19 09:58:23.000000000 +0800
@@ -398,8 +398,17 @@ make_edges (label_value_list, min, max,
/* Otherwise, we have a plain conditional or unconditional jump. */
else
{
+ rtx tmp;
+
+ /* Instrument code may introduce new JUMP_INSNs after jump
+ optimization pass. So we find JUMP_LABELs for these new
+ JUMP_INSNs. */
+ if (! JUMP_LABEL (insn) && (tmp = condjump_label (insn)))
+ JUMP_LABEL (insn) = XEXP (tmp, 0);
+
if (! JUMP_LABEL (insn))
abort ();
+
make_label_edge (edge_cache, bb, JUMP_LABEL (insn), 0);
}
}




--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
         The voices in my head said this was stupid too
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



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