Richard E. Sweet
[iris]<sweet>78performance.bravo
1.Compiler Development -- A large amount of compiler development was done in the last year. This included the Mesa 4.0 and 4.1 releases and progress on the 5.0 compiler. Mesa 4.0 contained several features that had a large impact on the internal structure of the compiler, including long integers, long pointers, processes, local strings, and relative pointers, among others. I also produced a special hybrid compiler for use in early Pilot development. One feature of Mesa 5.0 that has a large impact on the code generators is the PrincOps instruction set, for which I have already done the most difficult development. For Mesa 5.0, Ed Satterthwaite and I have cooperated to clean up the interface between the front end and the code generators.
In addition to release motivated compiler changes, I made other changes to make the compiler more efficient, generate better code, and be generally cleaner inside. The procedures were refactored into modules and were renamed in keeping with standard naming conventions. I conducted a number of experiments and built a number of exploratory compilers that allowed me to speed up both peephole optimization and jump fixup. For several large programs, the jump fixup time was cut in half. Based on a cross jumping experiment done by Chuck Geschke with the Mesa 3.0 compiler, I added cross jumping to the 5.0 compiler, a task that included discovering several subtle bugs in Geschke’s code.
2.Thistle -- I worked with Richard Johnsson and Jim Sandman on a special project to estimate D0 performance with an assortment of display configurations. I was primarily responsible for the design and implementation of the simulator, its internal workings and its user interface. This included several discussion with Chuck Thacker about how things really worked, as well as tracking hardware changes being made or proposed during the development of Thistle. The original Thistle experiments allowed a more informed decision to be made about display configurations, and helped to find several bugs and inefficiencies in the microcode. The simulator, with a few new features, is still being used for microcode and hardward tuning.
3.Maintenance and Support -- As usual, each new release of Mesa included the finding and fixing of numerous bugs in the previous release. In addition, I wrote several small programs to aid the development effort of the Mesa group and the entire Mesa user community. These included the following: ListSymbols for the 4.0 lister (to handle symbol tables with trees in them), ListUsing (used by entire Mesa community), ListPublic (done with Bruce Malasky), ListXRJ (a test bed for the uninitialized variable code going into the 5.0 compiler), Substitute (used to clean up both the front end of the compiler and the code generators), ListUpdate (a small program used to keep listing binders current). In addition, I spent some time learning about Desoto.
4.Manual Editing -- With help from the entire Mesa group, especially John Wick, I coordinated the editing of the Mesa 4.0 manual for the release. I also wrote the process chapter of the manual, basing the facts on a draft memo by Dave Redell. In addition, I wrote a series of programs that allowed us to produce a reasonable index for the manual in the rather small amount of time available for the purpose.
5.Language Design -- I was an active member of the Language Working Group, serving again as scribe. We met to decide on language issues for both Mesa 4 and Mesa 5.