Support for complex numbers
Translate a Python AST to LLVM. Each visit_* method should directly return an LLVM value.
Build a wrapper function for the currently translated function.
By default, or if get_lfunc is false, return the interpreter-level wrapper function.
If the optional get_lfunc argument is true, return the interpreter-level wrapper function, the LLVM wrapper function, and the method definition record.
Build a wrapper function for the currently translated function, and return a tuple containing the separate LLVM module, and the LLVM wrapper function.
Decay a C array to a pointer to allow pointer access
Generate assignment operation and automatically cast value to match the target type.
Update all our phi nodes after translation is done and all Variables have their llvm values set.
Retrieve the closure from the NumbaFunction passed in as m_self
Check if the current basicblock is properly terminated. That means the basicblock is ended with a branch or return
Link the lfunc into the execution context
Return a new basic block and handle phis and promotions. Promotions are needed at merge (phi) points to have a consistent type.
TODO: Make this class not a singleton. A possible design is to let each Numba Context owns a LLVMContextManager.
Use alloca only at the entry bock of the function