On 10/7/05, Steve Ellcey <[EMAIL PROTECTED]> wrote: [snip]
> In the meantime I would be interested in any opinions people have on > what level we should be writing things out at. Generic? Gimple? RTL? > (Just kidding on that last one.) Also any opinions on what format to > write things out in; binary form vs. an ascii file, XML? ANDF? If you > know of any good papers I should read I would like to hear about those > too. It is useful to get clear understanding of few simpler things before tackling IL issue. First question is - What is the user interface ? Few alternatives : 1) gcc <blah> -fenable-ipo input1.c input2.c input3.c -o output Here, writing IL on the disk, and reading it back, and optimizing it, etc.. are all hidden from users. 2) gcc <blah> -fwrite-ipo input1.c -o input1.data gcc <blah> -fwrite-ipo input2.c -o input2.data gcc <blah> -fwrite-ipo input3.c -o input3.data gcc <blah> -fread-ipo input1.data input2.data input3.data -o output 3) gcc <blah> -fwrite-ipo input1.c -o input1.data gcc <blah> -fuse-ipo input1.data input2.c -o input2.data gcc <blah> -fuse-ipo input2.data input3.c -o output 4) gcc <blah> -fwrite-ipo input1.c -o input1.data gcc <blah> -fwrite-ipo input2.c -o input2.data gcc <blah> -fwrite-ipo input3.c -o input3.data glo <blah> -fread-ipo input1.data input2.data input3.data -o output and so on... Second question is - When to put info on the disk? Few alternatives, 1) Before gimplfication 2) Before optimizing tree-ssa 3) After tree-ssa optimization is complete 4) Immediately after generating RTL 5) Halfway throuh RTL passes etc.. And answer to this question largely depend on the optimization passes that work on whole program info. I do not know whether these two questions are already answered or not. And finally, reading and writing one or other form of trees (GENERIC, GIMPLE,...), it is not a show stopper. It can be done as a last resort, but you want to check all possible alternatives first. - Devang