"Documentation by paper"
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Tue Feb 3 16:56:00 GMT 2004
>Correct. My last compiler course was well over a decade ago.
How is that relevant?
It acknowleged the statement made.
At some point you have to assume a base level of knowledge for your
reader. Are we going to define CFG in every file which uses the CFG?
No, but we need to in *some* file.
Are we going to define the basic properties of SSA in every file which
uses that form?
Likewise.
Hmm, wait, you have to know what blocks and edges are to understand
what a CFG is, so every file which uses the CFG has to also define
blocks & edges.
No, but *something* needs to. In fact, it's very important to define
what a "block" is because the definition is quite complex and depends on
such things as whether -fno-call-exceptions (or whatever it's called) is
enabled. Indeed, there has ben considerable confusion about how jump
tables fit into blocks.
In it's simplest form, edges can be defined in one sentence. But actually
need a lot more than that because of all the special edge types we define
for EH, for example.
Indeed I find the CFG code very hard to read (and even harder to modify)
precisely because these things are *not* defined.
So you have chosen a good example!
More information about the Gcc
mailing list