John Regehr will be the closing keynote for C++Now 2018 with Undefined Behavior and Compiler Optimizations.
John is a professor of computer science at the University of Utah, where his research group creates tools for making software more efficient and correct. One of his projects is Csmith, a tool that generates random C programs. Why? To test compilers, of course. Csmith has been used to find more than 500 previously unknown bugs in production-quality compilers.
John will share some of the insights he’s gained from his research into compilers.
He will discuss what undefined behavior means to the compiler and how compiler writers use it in surprising ways generate better code.
John will also talk about the C++ sequential memory models. C++ occupies a tricky design point: on one hand, it wants to be able to assume that a pointer originating in one block of memory cannot be used to refer to another block, but on the other hand any pointer can be turned into an integer, manipulated arbitrarily, and then turned back into a pointer. He will guide us through the implications of these conflicting demands, some of which are still being figured out.
John is optimistic that future compilers will be less buggy and more effective at optimizing. He will share his predictions about a future in which many optimizations will be formally verified and some will also be generated automatically
Come join us in Aspen for C++Now 2018! Registration is still open.
– Bryce Adelstein Lelbach, C++Now Program Chair