This is the mail archive of the gcc@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: "Documentation by paper"


     >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!


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