dana@seas.ucla.edu (08/15/89)
Though I haven't looked at it myself yet, an associate of mine recently compiled gcc, once with another compiler, another time with gcc (the self-compiling bootstrap). He sez gcc doesn't use temporary files. It uses gobs of virtual memory. Keep this in mind - a 386 Minix supporting this compiler will have to provide useful virtual memory. Dana H. Myers | "These are experimental tires from Locus Computing Corp. | Sandoz labs. I could run them up to Inglewood, CA | a hundred PSI" lcc.dana@seas.ucla.edu
Leisner.Henr@xerox.com (marty) (08/15/89)
Virtual memory is kind of a necessity for gcc. Gcc reads in a file, converts to an internal representation of the C module (rtl -- register transfer language) and then munges on this in-core RTL representation before generating assembler code at the end. Big files require significant virtual memory -- virtual memory is kinda implied for the GNU system. [BTW -- I agree with the methodology -- don't handicap the programmers due to hardware limitations. Virtual memory is now over 25 years old]. Minix current memory manager granularity is process sized, where the process size is defined in the a.out header. For something like gcc, it would be useful to grow the data segment and the stack segment on demand (i.e via stack faults and brk()), and reduce the granularity. On simpler machines, the pages would be sequential and the text, data and stack would be contiguous. On machines which have page tables, the pages could be located anywhere in disk or core. ast elected to leave out virtual memory (sorta an "exercise for the reader"?). I feel it would be most useful to put machine dependent files in the memory manager to support page-level virtual memory. For simpler machines, the files wouldn't do anything except preserve an architecture [this is in lieu of ifdefs]. I would like to see virtual memory added to Minix -- I really am not sure how the pieces would work. marty ARPA: leisner.henr@xerox.com GV: leisner.henr NS: leisner:wbst139:xerox UUCP: hplabs!arisia!leisner
paula@bcsaic.UUCP (Paul Allen) (08/17/89)
In article <21712@louie.udel.EDU> lcc!dana@seas.ucla.edu writes:
+
+ Though I haven't looked at it myself yet, an associate of mine recently
+compiled gcc, once with another compiler, another time with gcc (the
+self-compiling bootstrap). He sez gcc doesn't use temporary files. It uses
+gobs of virtual memory.
+
+ Keep this in mind - a 386 Minix supporting this compiler will have to
+provide useful virtual memory.
A long time ago, I recompiled gcc with itself on a Sun while watching
the size of the processes with the top program. As I recall, the cc1
process grew to just under a megabyte. Assuming the existence of a
version of Minix that could support processes that big, I think you
could get by with just a couple megabytes of extended memory. Of course,
getting past that initial assumption is non-trivial!
Paul Allen
--
------------------------------------------------------------------------
Paul L. Allen | pallen@atc.boeing.com
Boeing Advanced Technology Center | ...!uw-beaver!bcsaic!pallen