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]: Fix PR rtl-optimization/29841: cfgbuild.c: control_flow_insn_p () .


> The assert expects an insn that is associated with bb->succs edges (i.e.
> an insn after moving which we should somehow adjust CFG to maintain
> instruction stream and CFG coherent).  As I understand a block with a
> trapping load at the end will have edges to all places control can be
> transfered to.  In that case, if scheduler front end supports movement
> of instruction that affect control flow, any such insn will be handled
> in a universal way.

There are also noreturn calls and, now, unconditional traps; neither has 
successor edges in the CFG.

> I'm sure what do you mean.  RGN mode doesn't have support to move such
> instructions - EBB mode does.

Is sched_analyze_insn not used in both mode?  If so, do you mean that

  /* If this instruction can throw an exception, then moving it changes
     where block boundaries fall.  This is mighty confusing elsewhere.
     Therefore, prevent such an instruction from being moved.  */

is totally useless in EBB mode?

-- 
Eric Botcazou


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