PyLLVM: A compiler from Python to LLVM-IR

preview_player
Показать описание
Anna Herlihy
The LLVM Compiler Infrastructure Project provides a convenient, transportable intermediate representation (LLVM-IR) which can be compiled and linked into multiple types of machine-dependent assembly code. TupleWare is a new analytical framework built at Brown University that allows users to compile functions into distributed programs that are automatically deployed. TupleWare compiles user functions to LLVM-IR, and C++ code is generated and applied to the data through the distributed framework. This talk will go through the steps of writing a comprehensive Python front-end for TupleWare with a focus on the construction of a compiler from a limited subset of Python to LLVM-IR.
Рекомендации по теме
Комментарии
Автор

Is there a way to infer primitive type for precision like how you trace the type from the function to the leaf nodes with the call graph? If you minimize for type precision you should get good vectorization performance from LLVM optimization passes if you can prove you wont get type overflow on architectures that support MMX and AVX. Can there be a suggested default size based on architecture like usize in rust? Thanks for sharing this.

first-thoughtgiver-of-will