-
Notifications
You must be signed in to change notification settings - Fork 3
Home
abvbv edited this page Aug 5, 2020
·
32 revisions
This is my personal memo for understanding the internals of SBCL's native compiler Python (--- which has nothing to do with a recent programming language named Python. Think of it as a kind of "GCC compiler" or "LLVM compiler"). It may contain wrong observations. Anyone can edit/improve this wiki.
Useful resources:
- IR1 optimization macros
- Irritating shorthands
- compilation phases
- Object representation (lowtags, widetags, memory consumption, arrays)
- VOP Example: equivalent of C's << operator
- VOP Example: SSE-ADD
- VOP Example: NOP for debugging the disassembly
cf.
- SBCL: a Sanely-Bootstrappable Common Lisp --- SBCL cross-compilation mechanism
- http://www.sbcl.org/sbcl-internals/ --- not detailed enough
- pkhuong articles
- http://keens.github.io/blog/2014/12/02/vopdeyou-bu/ --- example of adding SSE-ADD VOP (jp)
- from CMUCL
- The Python Compiler for CMU Common Lisp --- older, 12 page paper.
- Internal design of CMU common Lisp on the IBM RT PC. --- old paper scan.
- Internal of CMUCL --- seems more up-to-date.
TODO:
- LVARs
- Combination
- flow-based constraint propagation details
- IR2
- VOPs
- SCS
- calling conventions