Book:
Optimizing Compilers for Modern Architectures (with Randy Allen), Morgan-Kaufmann Publishers, San Francisco, 2002. Chinese edition: 2004, Second printing: 2005.
Book Edited:
Sourcebook of Parallel Computing (with Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Linda Torczon, and Andy White), Morgan Kaufmann Publishers, San Francisco, 2003.
Patent:
Digital
Computer Register Allocation and Code Spilling Using Interference Graph Coloring
(with P. Briggs, K. D. Cooper, and L. Torczon), (Serial Number: 08/027,937).
Papers and Book Chapters:
1. ÒA Global Flow Analysis Algorithm,Ó International Journal of Computer Mathematics, Gordon and Breach, Section A, Volume 3, (1971), pages 5–15.
2. ÒIndex Register Allocation in Straight Line Code and Simple Loops,Ó Design and Optimization of Compilers (R. Rustin, editor), Prentice-Hall, Englewood Cliffs, NJ, (1972), pages 51–63.
3. ÒSafety of Code Motion,Ó International Journal of Computer Mathematics, Gordon and Breach, Section A, Volume 3, (1972), pages 117–130.
4. ÒReview of A Mathematical Theory of Global Program Optimization by M. Schaefer,Ó SIAM Review, Volume 16, Number 4, (October 1974), pages 565–566.
5. ÒAn Introduction to the Set-Theoretic Language SETLÓ (with J. Schwartz), Computers and Mathematics with Applications, Permagon Press, Volume 1, (1975), pages 97-119.
6. ÒNode Listings Applied to Data Flow Analysis,Ó Conference Record of the Second ACM Symposium on Principles of Programming Languages, Palo Alto, CA, (January 1975), pages 10–21.
7. ÒProfitability Computations on Program Flow GraphsÓ (with J. Cocke), Computers and Mathematics with Applications, Pergamon Press, Volume 2, (1976), pages 145–159.
8. ÒPLANET: A Simulation Approach to PERTÓ (with R. Thrall), Computers and Operations Research, Pergamon Press, Volume 4, (1976), pages 313–325.
9. ÒAutomatic Generation of Efficient Evaluators for Attribute GrammarsÓ (with S. K. Warren), Conference Record of the Third ACM Symposium on Principles of Programming Languages, Atlanta, GA, (January 1976), pages 32–49.
10. ÒA Comparison of Two Algorithms for Global Data Flow Analysis,Ó SIAM Journal on Computing, Volume 5, Number 1, (March 1976), pages 158–180.
11. ÒGraph Grammars and Global Program Data Flow AnalysisÓ (with R. Farrow and L. Zucconi), Seventeenth Annual Symposium on Foundations of Computer Science, Houston, TX, (October 1976), pages 42–56.
12. ÒApplications of a Graph Grammar for Program Control Flow AnalysisÓ (with L. Zucconi), Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, CA, (January 1977), pages 72–85.
13. ÒAn Algorithm for Reduction of Operator StrengthÓ (with J. Cocke), Communications of the ACM, Volume 20, Number 11, (November 1977), pages 850–856.
14. ÒUse-Definition Chains with Applications,Ó Journal of Computer Languages, Volume 3, Number 3, (1978), pages 163–179.
15. ÒA Survey of Compiler Optimization Techniques,Ó Le Point sur la Compilation (M. Amirchahy and N. Ne'l, editors), INRIA, Le Chesnay, France, (1978), pages 115–161.
16. ÒOptimization of Vector Operations in an Extended Fortran Compiler,Ó Proceedings of the 1978 LASL Workshop on Vector and Parallel Processors, Los Alamos, NM, (September 1978), pages 238–251.
17. ÒA Deterministic Attribute Grammar Evaluator Based on Dynamic SequencingÓ (with J. Ramanathan), ACM Transactions on Programming Languages and Systems, Volume 1, Number 1, (July 1979), pages 142–160.
18. ÒThe Early Development of Programming in the USSRÓ (English version with A. Ershov and M. Shura-Bura), A History of Computing in the Twentieth Century (N. Metropolis, J. Howlett, and G. C. Rota, editors), Academic Press, New York, (1980), pages 137–196.
19. ÒVector Mode ComputationÓ (with J. Huang and A. Liles, Jr.), IBM Technical Disclosure Bulletin, Volume 23, Number 5, (October 1980), pages 2171–2172.
20. ÒA Survey of Data Flow Analysis Techniques,Ó Program Flow Analysis: Theory and Applications (N. D. Jones and S. S. Muchnick, editors), Prentice-Hall, Englewood Cliffs, NJ, (1981), pages 5–54.
21. ÒReduction of Operator StrengthÓ (with F. Allen and J. Cocke), Program Flow Analysis: Theory and Applications (N. D. Jones and S. S. Muchnick, editors), Prentice-Hall, Englewood Cliffs, NJ, (1981), pages 79–101.
22. ÒPathlistings Applied to Data Flow AnalysisÓ (with J. Ramanathan), Acta Informatica, Volume 16, Facsimile 3, (1981), pages 253–273.
23. ÒConversion of Control Dependence to Data DependenceÓ (with J. R. Allen, C. Porterfield, and J. Warren), Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, TX, (January 1983), pages 177–189.
24. ÒAutomatic Loop InterchangeÓ (with J. R. Allen), Proceedings of the SIGPLAN `84 Symposium on Compiler Construction, SIGPLAN Notices, Volume 19, Number 6, (June 1984), pages 233–246.
25. ÒEfficient Computation of Flow-Insensitive Interprocedural Summary InformationÓ (with K. D. Cooper), Proceedings of the SIGPLAN `84 Symposium on Compiler Construction, SIGPLAN Notices, Volume 19, Number 6, (June 1984), pages 247–258.
26. ÒEfficient Computation of Flow-Insensitive Interprocedural Summary Information—A CorrectionÓ (with K. D. Cooper), SIGPLAN Notices, Volume 23, Number 4, (April 1988), pages 35–42.
27. ÒPFC: A Program to Convert Fortran to Parallel FormÓ (with J. R. Allen), Supercomputers: Design and Applications (K. Hwang, editor), IEEE Computer Society Press, (August 1984), pages 186–203.
28. ÒA Programming Environment for FortranÓ (with R. T. Hood), Proceedings of the Eighteenth Hawaii International Conference on System Sciences, Western Periodicals, North Hollywood, CA, Volume II (Software), (January, 1985), pages 625–637.
29. ÒA Parallel Programming EnvironmentÓ (with J. R. Allen), IEEE Software, Volume 2, Number 4, (July 1985), pages 21–29.
30. ÒThe Impact of Interprocedural Analysis and Optimization on the Design of a Software Development EnvironmentÓ (with K. D. Cooper and L. Torczon), Proceedings of the SIGPLAN `85 Symposium on Language Issues in Programming Environments, SIGPLAN Notices, Volume 20, Number 7, (July 1985), pages 107–116.
31. ÒProgramming Language Support for SupercomputersÓ (with R. T. Hood), Frontiers of Supercomputing (N. Metropolis, D. Sharp, W. Worlton, and K. Ames, editors), University of California Press, Berkeley, CA, (1986), pages 282–311.
32. ÒProgramming Environments for SupercomputersÓ (with J. R. Allen), Supercomputers: Algorithms, Architectures, and Scientific Computation (F. Matsen and T. Tajima, editors), University of Texas Press, Austin, TX, (1986), pages 19–38.
33. ÒPTOOL: A Semi-Automatic Parallel Programming AssistantÓ (with J. R. Allen, D. Baumgartner, and A. Porterfield), Proceedings of the 1986 International Conference on Parallel Processing, IEEE Computer Society Press, Washington, D.C., (1986), pages 164–170.
34. ÒOptimization of Compiled Code in the Programming EnvironmentÓ (with K. D. Cooper and L. Torczon), Proceedings of the Nineteenth Hawaii International Conference on System Sciences, Western Periodicals, North Hollywood, CA, Volume II (Software), (January 1986), pages 492–502.
35. ÒInterprocedural Optimization: Eliminating Unnecessary RecompilationÓ (with K. D. Cooper and L. Torczon), Proceedings of the SIGPLAN `86 Symposium on Compiler Construction, SIGPLAN Notices, Volume 21, Number 7, (July 1986), pages 58–67.
36. ÒInterprocedural Constant PropagationÓ (with D. Callahan, K. D. Cooper, and L. Torczon), Proceedings of the SIGPLAN `86 Symposium on Compiler Construction, SIGPLAN Notices, Volume 21, Number 7, (July 1986), pages 152–161.
37. ÒThe Impact of Interprocedural Analysis and Optimization in the Programming EnvironmentÓ (with K. D. Cooper and L. Torczon), ACM Transactions on Programming Languages and Systems, Volume 8, Number 4, (October 1986), pages 491–523.
38. ÒEditing and Compiling Whole ProgramsÓ (with K. D. Cooper, L. Torczon, A. Weingarten, and M. Wolcott), Proceedings of the ACM SIGSOFT/SIGPLAN Symposium on Practical Software Development Environments, SIGPLAN Notices, Volume 22, Number 1, (January 1987), pages 92–101.
39. ÒEfficient Recompilation of Module Interfaces in a Software Development EnvironmentÓ (with R. T. Hood and H. Muller), Proceedings of the ACM SIGSOFT/SIGPLAN Symposium on Practical Software Development Environments, SIGPLAN Notices, Volume 22, Number 1, (January 1987), pages 180–189.
40. ÒAutomatic Decomposition of Scientific Programs for Parallel ExecutionÓ (with J. R. Allen and D. Callahan), Conference Record of the Fourteenth Annual Symposium on Principles of Programming Languages, Munich, Germany, (January 1987), pages 63–76.
41. ÒParallel Programming Support in ParaScopeÓ (with D. Callahan, K. D. Cooper, R. T. Hood, L. Torczon, and S. K. Warren), Parallel Computing in Science and Engineering (R. Dierstein, D. Muller-Wichards, and H. Wacker, editors), Lecture Notes in Computer Science 295, Springer-Verlag, Berlin, (June 1987), pages 91–106.
42. ÒAutomatic Translation of Fortran Programs to Vector FormÓ (with J. R. Allen), ACM Transactions on Programming Languages and Systems, Volume 9, Number 4, (October 1987), pages 491–542.
43. ÒA Practical Environment for Scientific ProgrammingÓ (with A. Carle, K. D. Cooper, R. T. Hood, L. Torczon, and S. K. Warren), IEEE Computer, Volume 20, Number 11, (November 1987), pages 75–89.
44. ÒAnalysis of Interprocedural Side Effects in a Parallel Programming EnvironmentÓ (with D. Callahan), Journal of Parallel and Distributed Computing, Volume 5, (1988), pages 517–550.
45. ÒInterprocedural Side-Effect Analysis in Linear TimeÓ (with K. D. Cooper), Proceedings of the SIGPLAN `88 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Volume 23, Number 7, (July 1988), pages 57–66.
46. ÒEstimating Interlock and Improving Balance for Pipelined MachinesÓ (with D. Callahan and J. Cocke), Journal of Parallel and Distributed Computing, Volume 5, Number 4, (August 1988), pages 334–358.
47. ÒCompiling Programs for Distributed-Memory MultiprocessorsÓ (with D. Callahan), Journal of Supercomputing, Volume 2, Number 2, (October 1988), pages 151–169.
48. ÒParaScope: A Parallel Programming EnvironmentÓ (with D. Callahan, K. D. Cooper, R. T. Hood, and L. Torczon), The International Journal of Supercomputer Applications, Volume 2, Number 4, (December 1988), pages 84–99.
49. ÒPerformance of Parallel ProcessorsÓ (with H. Flatt), Parallel Computing, Volume 12, Number 1, (October 1989), pages 1–20.
50. ÒThe ParaScope Editor: An Interactive Parallel Programming ToolÓ (with V. Balasundaram, U. Kremer, K. McKinley, and J. Subhlok), Proceedings: Supercomputing `89, Reno, NV, (November 1989), pages 540–550.
51. ÒFast Interprocedural Alias AnalysisÓ (with K. D. Cooper), Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, Austin, TX, (January 1989), pages 49–59.
52. ÒVirtual Shared Memory for Distributed-Memory MachinesÓ (with H. Zima), Proceedings of the Fourth Conference on Hypercubes, Concurrent Computers, and Applications, Monterey, CA, (March 1989), pages 361–366.
53. ÒCompile-Time Detection of Race Conditions in a Parallel ProgramÓ (with V. Balasundaram), Proceedings of the 1989 ACM International Conference on Supercomputing, Crete, Greece, (June 1989), pages 175–185.
54. ÒA Technique for Summarizing Data Access and Its Use in Parallelism-Enhancing TransformationsÓ (with V. Balasundaram), Proceedings of the SIGPLAN `89 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Volume 24, Number 7, (July 1989), pages 41–53.
55. ÒColoring Heuristics for Register AllocationÓ (with P. Briggs, K. D. Cooper, and L. Torczon), Proceedings of the SIGPLAN `89 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Volume 24, Number 7, (July 1989), pages 275–284.
56. ÒBlocking Linear Algebra Codes for Memory HierarchiesÓ (with S. Carr), Proceedings of the Fourth SIAM Conference on Parallel Processing for Scientific Computing, Chicago, IL, (December 1989), pages 400–405.
57. ÒExperience with Interprocedural Analysis of Array Side EffectsÓ (with P. Havlak), IEEE Transactions on Parallel and Distributed Systems, Volume 2, Number 3, (1990).
58. ÒAnalyzing and Visualizing Performance of Memory HierarchiesÓ (with D. Callahan and A. Porterfield), Performance Instrumentation and Visualization (M. Simmons and R. Koskela, editors), ACM Press, Frontier Series, New York, (1990), pages 1–26.
59. ÒAnalysis of Event Synchronization in a Parallel Programming Tool,Ó (with D. Callahan and J. Subhlok), Proceedings of the Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, SIGPLAN Notices, Volume 25, Number 3, (March 1990), pages 21–30.
60. ÒAn Interactive Environment for Data Partitioning and DistributionÓ (with V. Balasundaram, G. Fox, and U. Kremer), Proceedings of the Fifth Distributed-Memory Computing Conference, Volume II (Architecture, Software Tools, and Other General Issues), Charleston, SC, (April 1990), pages 1160–1170.
61. ÒConstructing the Procedure Call MultigraphÓ (with D. Callahan, A. Carle, and M. W. Hall), IEEE Transactions on Software Engineering, Volume 16, Number 4, (April 1990), pages 483–487.
62. ÒImproving Register Allocation for Subscripted VariablesÓ (with D. Callahan and S. Carr), Proceedings of the ACM SIGPLAN `90 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Volume 25, Number 6, (June 1990), pages 53–65.
63. ÒParallel Program Debugging with On-the-Fly Anomaly DetectionÓ (with R. T. Hood and J. Mellor-Crummey), Proceedings: Supercomputing `90, New York, NY, (November 1990), pages 74–81.
64. ÒLoop Distribution with Arbitrary Control FlowÓ (with K. McKinley), Proceedings: Supercomputing `90, New York, NY, (November 1990), pages 407–416.
65. ÒCompiling Scientific Code for Complex Memory HierarchiesÓ (with S. Carr), Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences, Volume I (Architectures and Engineering Technologies), IEEE Computer Society Press, Los Alamitos, CA, (January 1991), pages 536–544.
66. ÒSoftware PrefetchingÓ (with D. Callahan and A. Porterfield), Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, SIGPLAN Notices, Volume 26, Number 4, (April 1991), pages 40–52.