This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, PR61776] verify_flow_info failed: control flow in the middle of basic block with -fprofile-generate
- From: Martin Jambor <mjambor at suse dot cz>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: Wei Mi <wmi at google dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>, David Li <davidxl at google dot com>
- Date: Wed, 23 Jul 2014 14:11:02 +0200
- Subject: Re: [PATCH, PR61776] verify_flow_info failed: control flow in the middle of basic block with -fprofile-generate
- Authentication-results: sourceware.org; auth=none
- References: <CA+4CFy7sLjEWstfiHGYAv77iXitaYbRBTRpi+JUwz641VSFhBQ at mail dot gmail dot com> <CAFiYyc3TO_o1_taze9F6h+-qNOxmMqCDJ_VZLdDz17MmUfXJzA at mail dot gmail dot com>
On Wed, Jul 23, 2014 at 11:51:37AM +0200, Richard Biener wrote:
> On Mon, Jul 21, 2014 at 7:06 PM, Wei Mi <email@example.com> wrote:
> > Hi,
> > This patch is to fix:
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61776
> > It records func decls whose const/pure flags are reset during
> > instrumentation. After the loop resetting const/pure flags, find out
> > stmts calling those recorded funcs and perform cfg fixup on them.
> > bootstrap and regression test pass on x86_64-linux-gnu. ok for trunk
> > and gcc-4_9?
> But fact is that it is _not_ necessary to split the block because there
> are no outgoing abnormal edges from it.
> The verifier failure is an artifact from using the same predicates during
> CFG building and CFG verifying (usually ok, but for this particular
> case it leads to this issue).
> So I don't think your patch is the proper way to address this issue
> (while it certainly works).
> Instead whether a call can make abnormal gotos should be recorded
> per-call and stored on the gimple-call. Martin - this is exactly
> one of the cases your patch would address?
No, my patch, which is attached to PR 60449 in bugzilla, introduces
leaf and noreturn gimple statement attributes and uses them to deal
with what really seems to be a very similar problem. However, my
patch does not really look like 4.9 material.