numba.pipeline
This module contains the Pipeline class which provides a pluggable way to
define the transformations and the order in which they run on the AST.
-
class numba.pipeline.ErrorReporting
Sort and issue warnings and errors
-
class numba.pipeline.LinkingStage
Link the resulting LLVM function into the global fat module.
-
class numba.pipeline.Pipeline(context, func, ast, func_signature, nopython=False, locals=None, order=None, codegen=False, symtab=None, allow_rebind_args=True, template_signature=None, is_closure=False, **kwargs)
Runs a pipeline of transforms.
-
cleanup_symtab(ast)
Pop original variables from the symtab
-
insert_specializer(name, after=None, before=None)
Insert a new transform or visitor into the pipeline
-
make_specializer(cls, ast, **kwds)
Create a visitor or transform and add any mixins
-
class numba.pipeline.WrapperStage
Build a wrapper LLVM function around the compiled numba function to call
it from Python.
-
numba.pipeline.cleanup_symtab(ast, env)
Pop original variables from the symtab
-
numba.pipeline.compile(context, func, restype=None, argtypes=None, ctypes=False, compile_only=False, **kwds)
Compile a numba annotated function.
- decompile function into a Python ast
- run type inference using the given input types
- compile the function to LLVM
-
numba.pipeline.compile2(env, func, restype=None, argtypes=None, ctypes=False, compile_only=False, **kwds)
Compile a numba annotated function.
- decompile function into a Python ast
- run type inference using the given input types
- compile the function to LLVM
-
numba.pipeline.create_lfunc(tree, env)
Update the FunctionEnvironment with an LLVM function if the signature
is known (try this before type inference to support recursion).
-
numba.pipeline.infer_types(context, func, restype=None, argtypes=None, **kwargs)
Like run_pipeline, but takes restype and argtypes instead of a FunctionType
-
numba.pipeline.infer_types2(env, func, restype=None, argtypes=None, **kwargs)
Like run_pipeline, but takes restype and argtypes instead of a FunctionType
-
numba.pipeline.run_pipeline(context, func, ast, func_signature, pipeline=None, **kwargs)
Run a bunch of AST transformers and visitors on the AST.