[tree-ssa] RFC: Making control flow more explicit

Jason Merrill jason@redhat.com
Thu Aug 7 19:13:00 GMT 2003


I think that the WHIRL example is relevant here.

VHWHIRL is very close to the source, with arbitrary nesting of constructs.
This corresponds to GENERIC.  Inlining is done at this level in both their
compiler and ours (except that all the frontends currently lower straight
to GIMPLE, but that's another issue).

HWHIRL breaks apart nested expressions (calls, comma ops), but still
retains control flow structures.  This corresponds to (current) GIMPLE.
Apparently the SGI compiler does IPA, LNO (huh?) and "the PREOPT part of
the global scalar optimizer" at this level.

MWHIRL lowers all control flow to gotos, possibly conditional or computed.
This seems to be what you're looking for.  We probably want to define a
lower GIMPLE to match, and do the lowering somewhere in the middle of
optimization.

Jason



More information about the Gcc mailing list