def use_passes()

in phi3/olive/phi3.py [0:0]


def use_passes(template_json, *passes):
    use_data_configs = set()

    # remove unused passes
    for key in list(template_json["passes"].keys()):
        if key not in passes:
            del template_json["passes"][key]
            continue
        for param, value in template_json["passes"][key].items():
            if param.endswith("data_config"):
                use_data_configs.add(value)

    # remove unused data_configs
    if use_data_configs:
        template_json["data_configs"] = [
            data_config for data_config in template_json["data_configs"] if data_config["name"] in use_data_configs
        ]
    else:
        del template_json["data_configs"]

    template_json["pass_flows"] = [passes]
    return template_json