human
Complete the below
def _find_iter_range(func_ir, range_iter_var):

    ''''Find the iterator\'s actual range if it is either range(n), or range(m, n),
    otherwise return raise GuardException.'
    '''
assistant
#Here is Python program to find the iterator\'s actual range if it is either range(n), or range(m, n),
.
    debug_print = _make_debug_print('find_iter_range')
    range_iter_def = _get_definition(func_ir, range_iter_var)
    debug_print('range_iter_var    =    ', range_iter_var, '    def    =    ', range_iter_def)
    require((isinstance(range_iter_def, ir.Expr) and (range_iter_def.op == 'getiter')))
    range_var = range_iter_def.value
    range_def = _get_definition(func_ir, range_var)
    debug_print('range_var    =    ', range_var, '    range_def    =    ', range_def)
    require((isinstance(range_def, ir.Expr) and (range_def.op == 'call')))
    func_var = range_def.func
    func_def = _get_definition(func_ir, func_var)
    debug_print('func_var    =    ', func_var, '    func_def    =    ', func_def)
    require((isinstance(func_def, ir.Global) and (func_def.value == range)))
    nargs = len(range_def.args)
    if (nargs == 1):
        stop = _get_definition(func_ir, range_def.args[0], lhs_only=True)
        return (0, range_def.args[0], func_def)
    elif (nargs == 2):
        start = _get_definition(func_ir, range_def.args[0], lhs_only=True)
        stop = _get_definition(func_ir, range_def.args[1], lhs_only=True)
        return (start, stop, func_def)
    else:
        raise GuardException