def load_tasks(function, manifest, *args):
    """Calls ``function`` on the provider and all plugins that have been loaded by the manifest.
    Any additional arguments are passed directly to ``function``.
    The function that is called shall accept the taskset as its first argument and the manifest
    as its second argument.

    :param str function: Name of the function to call
    :param Manifest manifest: The manifest
    :param list args: Additional arguments that should be passed to the function that is called
    """
    tasks = set()
    # Call 'function' on the provider
    getattr(manifest.modules['provider'], function)(tasks, manifest, *args)
    for plugin in manifest.modules['plugins']:
        # Plugins are not required to have whatever function we call
        fn = getattr(plugin, function, None)
        if callable(fn):
            fn(tasks, manifest, *args)
    return tasks