parameters: (func, inline_closures=False)
return_statement: return func_ir
docstring: Run the compiler frontend over the given Python function, and return
      the function's canonical Numba IR.
  
      If inline_closures is Truthy then closure inlining will be run
docstring_summary: Run the compiler frontend over the given Python function, and return
      the function's canonical Numba IR.
docstring_tokens: Run the compiler frontend over the given Python function and return the function s canonical Numba IR .
function: def run_frontend(func, inline_closures=False):
      """
      Run the compiler frontend over the given Python function, and return
      the function's canonical Numba IR.
  
      If inline_closures is Truthy then closure inlining will be run
      """
      # XXX make this a dedicated Pipeline?
      func_id = bytecode.FunctionIdentity.from_function(func)
      interp = interpreter.Interpreter(func_id)
      bc = bytecode.ByteCode(func_id=func_id)
      func_ir = interp.interpret(bc)
      if inline_closures:
          inline_pass = InlineClosureCallPass(func_ir, cpu.ParallelOptions(False),
                                              {}, False)
          inline_pass.run()
      post_proc = postproc.PostProcessor(func_ir)
      post_proc.run()
      return func_ir
function_tokens: def run_frontend ( func , inline_closures = False ) : # XXX make this a dedicated Pipeline? func_id = bytecode . FunctionIdentity . from_function ( func ) interp = interpreter . Interpreter ( func_id ) bc = bytecode . ByteCode ( func_id = func_id ) func_ir = interp . interpret ( bc ) if inline_closures : inline_pass = InlineClosureCallPass ( func_ir , cpu . ParallelOptions ( False ) , { } , False ) inline_pass . run ( ) post_proc = postproc . PostProcessor ( func_ir ) post_proc . run ( ) return func_ir