Research

Dr. Cooper has worked in the general areas of program analysis and program optimization for more than two decades.

  • Cooper has a long history of work in program analysis.  With collaborators, he produced fast algorithms for a variety of interprocedural data-flow problems, for computing dominance information about a flow graph, and for efficient iterative computations on irreducible flow graphs.  With Preston Briggs, Tim Harvey, and Taylor Simpson, he published a set of algorithmic improvements to the classic techniques for translation into and out of Static Single Assignment Form.
  • Cooper and his collaborators have developed techniques in the area of single-procedure optimziation for value numbering, cstrength reduction, register promotion of pointer-based values, code compression, inline substitution, strength reduction, algebraic reassociation, …
  • With Cliff Click, he developed a framework to assess when combining two optimizations and solving them together can produce better solutions than solving the problems independently. (This work is, perhaps, his most mis-cited work.)
  • Cooper has a history of work on register allocation. Working with Preston Briggs, Ken Kennedy, and Linda Torczon, he developed optimistic allocation, the technique sometimes called the Chaitin-Briggs allocator.  With a variety of collaborators, he has published  improvements to the basic Chaitin-Briggs allocator, as well as detailed experimental comparisons with Chow’s allocator and the Koblenz-Callahan allocator.
  • Cooper has made forays into instruction scheduling, with his students Philip Schielke and Edmar Wienskoski.  Schielke’s technical report An Experimental Evaluation of List Scheduling provides a detailed analysis of the effectiveness of list scheduling, as well as some insight into the rare cases when this greedy heuristic technique is likely to do a poor job.
  • Cooper explored, with a broad group of students and collaborators, questions of optimization ordering, compiler structure, and ways in which a compiler could profitably spend more time.

His current research interests include processor-model dependent optimization, either ahead of time or at runtime, and efficient, automatic discovery of critical performance parameters of processors and systems.

Comments are closed.