This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] RFC: Making control flow more explicit
I have spent a few hours thinking about the issue and I now think there
might be a way to split the patch into smaller ones (perhaps also not
seeing the code for a day helped :-). The proposed splitting (numbers
in brackets mean my estimate on size of the change):
1) elimination of LOOP_EXPRs  -- a few lines in gimplification, removal
of references to them in tree-*, plus loop note regeneration just
before loop header copying
2) lowering of SWITCH_EXPRs and COND_EXPRs (so that their branches are
just gotos) [500-1000] -- a change to gimplification, cleanup + a few changes in
3) replacing COMPOUND_EXPRs with double-linked chain of statements [500-1000] --
mostly changes to block iterators + places in code that rely on the
fact that the whole function tree is kept, and final pass that
4) moving BIND_EXPRs and exception handling constructs to their own tree 
probably the most complicated step; some changes to iterators, many
to cleanup, final pass to move structures back. This is basically
equivalent to the core of my current patch, I will try to think more
on how to make this step less painful.
5) rewrite of make_edges  -- especially eh edges are created in a
weird way currently, IMHO.
6) final tweaks & cleanups -- not really sure what will be needed.
In reality I will of course not completely follow this list (especially
because some of the points partially overlap), but this should be the
Is this acceptable? It will of course be a great lot of patches, so I
won't go into it unless I know that someone is ready to take the burden
of reviewing them.