# 193: Axiomatically Did Not Happen

- Show: [Embedded.fm](https://hardwarepodcasts.com/podcast/embedded-fm)
- Published: 2017-03-29
- Length: 1h 10m
- Page: https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen
- Listen: https://makingembeddedsystems.libsyn.com/193-axiomatically-did-not-happen

## Summary

Owen Anderson, an engineering manager at Oculus and long-time LLVM contributor, explains the architecture of compilers, focusing on the role of Intermediate Representation (IR) in enabling optimization and multi-target support. He details how LLVM uses SSA form to simplify analysis, discusses the trade-offs between RISC and VLIW instruction sets, and describes the unique batch-oriented nature of GPU architectures compared to CPUs. Anderson also shares a specific debugging story involving undefined behavior and the subtle differences between C and C++ volatile semantics, concluding with advice for students entering the field.

## Chapters

- [0:06](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=6) Introduction and Lightning Round
- [5:24](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=324) Compiler Phases and Intermediate Representation
- [11:07](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=667) LLVM Architecture and the Mountain Analogy
- [20:25](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=1225) Instruction Set Design: RISC vs VLIW
- [43:11](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=2591) GPU Architecture and Batch Processing
- [52:56](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=3176) Undefined Behavior and Volatile Semantics Bug
- [1:00:14](https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen#t=3614) Jetson TX2 and Career Advice

## Topics

- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [Microcontrollers & dev platforms](https://hardwarepodcasts.com/topic/microcontrollers-and-platforms)
- [Chips, FPGAs & semiconductors](https://hardwarepodcasts.com/topic/chips-and-fpgas)
- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)

## Most relevant to

large enterprises

## Mentioned

- LLVM (tool)
- Clang (tool)
- Oculus (company)
- Nvidia (company)
- Jetson TX 2 (product)
- RISC-V (chip)
- ARM (chip)
- GCC (tool)
- Haskell (other)
- OpenCL (tool)

## Related episodes from other shows

- [Debugging Methodologies](https://hardwarepodcasts.com/podcast/oxide-and-friends/2022-05-17-debugging-methodologies) (Oxide and Friends)
- [Heterogeneous Computing with Raja Koduri](https://hardwarepodcasts.com/podcast/oxide-and-friends/2024-07-18-heterogeneous-computing-with-raja-koduri) (Oxide and Friends)
- [Engineering Rigor in the LLM Age](https://hardwarepodcasts.com/podcast/oxide-and-friends/2026-01-15-engineering-rigor-in-the-llm-age) (Oxide and Friends)
- [An Interview with Scott Shawcroft](https://hardwarepodcasts.com/podcast/the-amp-hour/2018-03-12-an-interview-with-scott-shawcroft) (The Amp Hour)
- [Modern C++ for Embedded with Niall Cooling](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2023-05-18-modern-c-for-embedded-with-niall-cooling) (The Pragmatic Embedded Podcast)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/embedded-fm/2017-03-29-193-axiomatically-did-not-happen. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Embedded.fm.
