Motivation: The LLVM Compiler Infrastructure Project
5
Mission: Python and Tupleware
6
Example Tupleware Usage
7
Tupleware Library Implementation
8
PYLLVM: Overview of Design
9
Static Single Assignment
10
Scoping and Variables
11
Inferring Types
12
Numerical Values
13
Vectors
14
Lists (WIP)
15
Strings
16
Function Definitions
17
Function Arguments
18
Intrinsic Functions
19
Analysis: Usability
20
Analysis: Benchmarking
21
Analysis: Executable Runtime
22
Results
23
Conclusion
24
Acknowledgements
Description:
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.
Wrestling Python into LLVM Intermediate Representation