From: Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
To: Jie Zhang <zhangjie@magima.com.cn>
Cc: gcc@gcc.gnu.org
Subject: Re: [PATCH] Re: Option -fprofile-arcs fails for target avr and fr30
Date: Mon, 19 May 2003 16:38:00 -0000 [thread overview]
Message-ID: <20030519163636.GA2013@atrey.karlin.mff.cuni.cz> (raw)
In-Reply-To: <3EC84136.6040705@magima.com.cn>
Hello,
> Jie Zhang wrote:
>
> >Hi, I have a question about using -fprofile-arcs option on avr and
> >fr30 targets for gcc-3.3.
> >
> >Avr and fr30 targets have no DI mode add instructions, nor add with
> >carry instructions. But profile instrument code needs DI mode add. GCC
> >has to translate the DImode add into a sequence of instructions. That
> >will introduce new jump_insn, which will cause make_edges abort.
> >Testing gcc.misc-tests/bprob-1.c reveals this problem.
> >
> >I think GCC should take this case into acount. But I have no good
> >method by now. Does anyone have good solution? Thanks!
> >
> >- J
>
> The following patch may fix this problem.
>
you might consider to add a call of rebuild_jump_labels (insns)
to the beginning of commit_one_edge_insertion instead (it would
in effect prevent us from using it to add jump instructions to
outside of the insns, for which I am not sure whether it is needed
anywhere.
Zdenek
Btw. post the patches to the appropriate list too.
>
> 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.
>
> --- 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);
> }
> }
>
prev parent reply other threads:[~2003-05-19 16:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-16 9:53 Jie Zhang
2003-05-19 2:55 ` [PATCH] " Jie Zhang
2003-05-19 9:20 ` Nathan Sidwell
2003-05-19 14:25 ` Jan Hubicka
2003-05-20 2:59 ` Jie Zhang
2003-05-20 9:24 ` Jan Hubicka
2003-05-20 3:03 ` DJ Delorie
2003-05-19 16:38 ` Zdenek Dvorak [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030519163636.GA2013@atrey.karlin.mff.cuni.cz \
--to=rakdver@atrey.karlin.mff.cuni.cz \
--cc=gcc@gcc.gnu.org \
--cc=zhangjie@magima.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).