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]
Other format: [Raw text]

Re: [PATCH, PR61776] verify_flow_info failed: control flow in the middle of basic block with -fprofile-generate


Hi,

On Wed, Jul 23, 2014 at 11:51:37AM +0200, Richard Biener wrote:
> On Mon, Jul 21, 2014 at 7:06 PM, Wei Mi <wmi@google.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.

Thanks,

Martin


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