Speaker
Richard Neswold
(Fermi National Accelerator Laboratory)
Description
Programming language compilers utilize sophisticated optimization techniques to translate high-level abstractions into performant machine code. These transformations, such as instruction scheduling and data pre-loading, are deemed correct if they preserve the program's observable behavior. However, such optimizations often fail to maintain correctness when interacting with hardware peripherals due to side effects and timing constraints. This paper presents a C++ template, meta-programming approach to generate hardware access routines that are both correct and exhibit optimal machine code generation.
Author
Richard Neswold
(Fermi National Accelerator Laboratory)