Overview
Explore a 26-minute conference talk from EuroPython 2016 that delves into the process of translating Python into LLVM Intermediate Representation (LLVM-IR). Learn about the LLVM Project's platform-independent IR and its potential applications for Python. Discover the speaker's approach to creating a simple, static one-pass compiler called PyLLVM, which focuses on compiling a subset of Python for use in the TupleWare analytical framework. Gain insights into compiler design, LLVM-IR features, and implementation challenges such as types, scoping, and memory management. Compare PyLLVM to Numba, another Python-to-LLVM compiler, and get a glimpse into the future developments of PyLLVM.
Syllabus
Intro
Outline
Motivation: Tupleware
Motivation: The LLVM Compiler Infrastructure Project
Mission: Python and Tupleware
Example Tupleware Usage
Tupleware Library Implementation
PYLLVM: Overview of Design
Static Single Assignment
Scoping and Variables
Inferring Types
Numerical Values
Vectors
Lists (WIP)
Strings
Function Definitions
Function Arguments
Intrinsic Functions
Analysis: Usability
Analysis: Benchmarking
Analysis: Executable Runtime
Results
Conclusion
Acknowledgements
Taught by
EuroPython Conference