+
+/* Set the value of the parameter given by NUM to VALUE in PARAMS and
+ PARAMS_SET, implicitly, if it has not been set explicitly by the
+ user. */
+
+void
+maybe_set_param_value (compiler_param num, int value,
+ int *params, int *params_set)
+{
+ if (!params_set[(int) num])
+ set_param_value_internal (num, value, params, params_set, false);
+}
+
+/* Set the default value of a parameter given by NUM to VALUE, before
+ option processing. */
+
+void
+set_default_param_value (compiler_param num, int value)
+{
+ gcc_assert (!params_finished);
+
+ compiler_params[(int) num].default_value = value;
+}
+
+/* Return the default value of parameter NUM. */
+
+int
+default_param_value (compiler_param num)
+{
+ return compiler_params[(int) num].default_value;
+}
+
+/* Initialize an array PARAMS with default values of the
+ parameters. */
+
+void
+init_param_values (int *params)
+{
+ size_t i;
+
+ gcc_assert (params_finished);
+
+ for (i = 0; i < num_compiler_params; i++)
+ params[i] = compiler_params[i].default_value;
+}
+
+/* Return the current value of num_compiler_params, for the benefit of
+ plugins that use parameters as features. */
+
+size_t
+get_num_compiler_params (void)
+{
+ return num_compiler_params;
+}