Cache for compiler functions, declared external functions and constants.
Compile a python function given the argument types. Compile only if not compiled already, and only if it is registered to the function cache.
Returns a triplet of (signature, llvm_func, python_callable) python_callable may be the original function, or a ctypes callable if the function was compiled.
Get a compiled function in the the function cache. The function must not be an external function.
For an external function, is_registered() must return False.
Check if a function is registed to the FunctionCache instance.
Register a function to the FunctionCache.
It is necessary before calling compile_function().
Keep an object alive for the lifetime of the translated unit.
This is a HACK. Make live objects part of the function-cache
NOTE: py_func may be None, so we can’t make it a function attribute