http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59986

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
But, you can only prune the abnormal edges if you don't emit the
ABNORMAL_DISPATCHER (PR59920), or if (before adding abnormal edges for
non-local gotos/returns_twice, but likely after adding abnormal edges for
computed goto?) after you compute dominance without the abnormal edges you see
that some calls dominate all non-local labels/returns_twice calls.

Not emitting the dispatcher at least in some cases is unacceptable though (see
PR59920), even if we managed to prune the abnormal edges aggresively, if you
put the whole function in a loop and have many returns_twice functions and many
calls that might longjmp in the loop, having the m*n abnormal edges is simply
too much.

Reply via email to