def get_config_params(
        cls,
        accelerator_spec: AcceleratorSpec,
        config: Optional[dict[str, Any]] = None,
        disable_search: Optional[bool] = False,
    ) -> tuple[type[BasePassConfig], dict[str, Any], dict[str, SearchParameter]]:
        """Generate search space for the pass."""
        assert accelerator_spec is not None, "Please specify the accelerator spec for the pass"
        config = config or {}

        # Get the config class with default value or default search value
        config_class, default_config = cls.get_config_class(accelerator_spec, disable_search)

        if not disable_search:
            # Replace user-provided values with Categorical if user intended to search
            config = cls._identify_search_values(config, default_config)

        # Generate the search space by using both default value and default search value and user provided config
        config = validate_config(config, config_class)
        config = cls._resolve_config(config, default_config)
        return config_class, *cls._init_fixed_and_search_params(config, default_config)
Generate search space for the pass.
olive/passes/olive_pass.py