5. Developer ManualΒΆ
- 5.1. Contributing to Numba
- 5.2. Numba Architecture
- 5.2.1. Introduction
- 5.2.2. Contexts
- 5.2.3. Compiler Stages
- 5.2.3.1. Stage 1: Analyze Bytecode
- 5.2.3.2. Stage 2: Generate the Numba IR
- 5.2.3.3. Stage 3: Macro expansion
- 5.2.3.4. Stage 4: Infer Types
- 5.2.3.5. Stage 5: Rewrite Typed IR
- 5.2.3.6. Stage 6a: Generate No-Python LLVM IR
- 5.2.3.7. Stage 6b: Generate Object Mode LLVM IR
- 5.2.3.8. Stage 7: Compile LLVM IR to Machine Code
- 5.3. Extending the Numba Frontend
- 5.3.1. Overview
- 5.3.2. Tutorial
- 5.3.2.1. Creating a New Numba Type
- 5.3.2.2. Organizing Type Signatures with a Registry
- 5.3.2.3. Adding an Attribute Value Type Signature
- 5.3.2.4. Adding a Function Type Signature
- 5.3.2.5. Overloading Elementary Operations
- 5.3.2.6. Installing the Registry in a Typing Context
- 5.3.2.7. Enabling Type Inference for Function Arguments and Globals
- 5.3.3. Conclusion
- 5.4. Extending the Numba backend
- 5.5. Notes on generators
- 5.6. Notes on Numba Runtime
- 5.7. Using the Numba Rewrite Pass for Fun and Optimization