Todd T. Hahn
Employment History
Texas Instruments Compiler Group, Software Design Engineer, 1999-present
- Participated in the design of a 16-bit instruction set extension to the C6400 VLIW DSP architecture.
- Responsible for rapidly prototyping the C/C++ compiler to evaluate impacts of ISA variations.
- Responsible for designing and performing experiments to evaluate the performance and code size impact of ISA variations on compiled code.
- Suggested various changes to the 16-bit instruction set extensions.
- Responsible for the design, implementation, and testing of the C6400+ compression algorithm.
- Responsible for the design, implementation, and testing of various code size optimizations to exploit the 16-bit instruction set extensions to the C6400 ISA. Achieved significant code size reductions.
- Responsible for the creation and implementation of a root cause analysis process.
- Continuously identifying areas for improvement in infrastructure, and process.
- Jointly responsible for compiler implementation to utilize the C6400+ software pipeline loop buffer (SPLOOP).
- Responsible for tuning code size and performance optimizations in the C6400+ compiler.
- Continuously identifying potential optimizations and changes to existing optimizations.
- Design, implementation, and testing of various back-end optimization algorithms.
- Analysis and correction of numerous complex defects throughout the compiler tool chain (e.g. parser, codegen, assembler, linker).
- Implemented a region-based liveness analysis and register allocation infrastructure.
- Significant experience with:
- Software pipelining and instruction scheduling on a VLIW processor
- Various optimizations to improve the performance and code size of software pipelined loops
- Splitting registers that are live-too-long in a software pipelined loop using alternatives to modulo-variable expansion
- Representing a machine in a machine description language
- Pattern-based tree matching (instruction selection) and in-house machine description languages
- Generating directed, acyclic graphs (DAG/DDG) in preparation for instruction scheduling
- Analyzing compiler behavior during back-end (code generation) phases and identifying areas for improvement
- Dataflow analysis
- Control-flow graph transformations
- Program cache conflict miss reduction techniques and algorithms
- Copy propagation (backward and forward)
- Object-oriented design, STL, design patterns
- Defensive software design
- Code reviews, design reviews, functional reviews
- Root cause analysis
- Experience with:
- Partitioning on a clustered architecture
- Chaitin-Briggs-Torczon-Cooper-style register allocation; conflict graphs, preference graphs, register spilling
- Agile/scrum paradigm
- Significant interaction with customers in-person and on forums.
- Responsible for updating the C6000 compiler tools documentation.
Teaching Assistant, University of Wisconsin–Madison Computer Sciences Department, 1997-1999
- Taught an introductory programming course for four semesters.
Lecturer, University of Wisconsin–Madison, Summer 1998
- Taught a computer organization/assembly language course.
Publications
2008
- Compilation Strategies for Reducing Code Size on a VLIW Processor with Variable Length Instructions, Todd T. Hahn, Eric Stotzer, Dineel Sule, Mike Asal
- Published in The 3rd International Conference on High Performance Embedded Architectures and Compilers (HiPEAC 2008) in Gothenburg, Sweden
Patents, Patent Applications
- Patent 7,581,082: Software Source Translator Selects Instruction Word Sizes, Todd T. Hahn, Eric J. Stotzer, Michael D. Asal
- Patent 7,673,119: VLIW optional fetch packet header extends instruction set space, Michael D. Asal, Eric J. Stotzer, Todd T. Hahn
- Patent application 20070022413: Tiered Register Allocation, Dineel Diwakar Sule, Eric J. Stotzer, Todd T. Hahn
Presentations
- Texas Instruments Systems and Software Series, 2010
- Texas Instruments Developers Conference, 2006
- Texas Instruments DSP Champs Conference, 2005, 2006
- Conference paper, 2008 International Conference on High Performance Embedded Architectures and Compilers (see Publications)
Education
- Masters of Science in Computer Sciences, University of Wisconsin–Madison
- Bachelors of Science in Computer Science, Michigan Technological University, Summa Cum Laude