The list of valid flags and their values is as follows:
(This list is outdated -- see source code for a complete description)
- for the output:
- analysis_info (off, on) Whether to output the results of analysis.
- point_info (off,on) Whether to output analysis information for program points within clauses.
- collapse_ai_vers (off, on) to output all the versions of call/success patterns inferred by analysis or just one version (summing-up all of them).
- type_output (defined, all) to output the types inferred for predicates in terms only of types defined by the user or including types inferred anew.
- simplify_checks (on, off) to output simplified check assertions after verification or not.
- for analysis:
- fixpoint (plai, dd, di, check_di, check_di2, check_di3, check_di4) The kind of fixpoint computation used.
- multi_success (off, on) Whether to allow success multivariance.
- widen (off, on) Whether to perform widening.
- intermod (off, on, auto) The policy for inter-modular analysis.
- success_policy (best, first, all, top, botfirst, botbest, botall, bottom) The policy for obtaining success information for imported predicates during inter-modular analysis.
- entry_policy (all, top_level, force, force_assrt) The policy for obtaining entry call patterns for exported predicates during inter-modular analysis.
- process_libraries (on, off, no_engine) Whether to perform the analysis of Ciao system libraries when a modular user program is analyzed.
- initial_guess (botfirst, botbest, botall, bottom) The policy for obtaining initial guess when computing the analysis of a predicate from the current module.
- use_check_assrt (off, on) Whether to use check assertions for imported predicates as if they were trust assertions.
- depth (a non-negative integer) The maximum depth of abstractions in analyses based on term depth.
- type_eval (on, off) Whether to attempt concrete evaluation of types being inferred.
- type_precision (defined, all) to use during type analysis only types defined by the user or also types inferred anew.
- entry_points_auto (none, calls, all) What kind of assertions to use as entry points: entry/1 will always be used, calls/1 and calls/2 will be used if the flag is not set to none; and success/1, success/2, comp/1 and comp/2 will be used if the flag is set to all.
- entry_calls_scope (exported, all) What non-entry assertions to use as entry points. If the flag takes the value exported, only assertions from exported predicates will be used; if it takes the value all, exported and non-exported assertions will be used.
- for partial evaluation:
- global_control (off, id, inst, hom_emb) The abstraction function to use to control the creation of new patterns to analyze as a result of unfolding.
- comp_rule (leftmost, safe_jb, bind_ins_jb, no_sideff_jb, jump_builtin, eval_builtin, local_emb) The computation rule for the selection of atoms in a goal.
- local_control (off, orig, inst, det, det_la, depth, first_sol, first_sol_d, all_sol, hom_emb, hom_emb_anc, hom_emb_as, df_hom_emb_as, df_tree_hom_emb, df_hom_emb) The unfolding rule to use during partial evaluation.
- unf_depth (a non-negative integer) The depth limit for unfolding.
- rem_use_cls (off, pre, post, both) Whether to remove useless clauses.
- abs_spec_defs (off, rem, exec, all) Whether to exploit abstract substitutions while obtaining specialized definitions on unfolding.
- filter_nums (off, on) Whether to filter away numbers in partial evaluation.
- exec_unif (off, on) Whether to execute unifications during specialization time or not.
- pres_inf_fail (off, on) Whether infinite failure should be preserved in the specialized program.
- part_concrete (off, mono, multi) The kind of partial concretization to be performed.
- for parallelization and granularity control:
- granularity_threshold (a non-negative integer) The threshold on computational cost at which parallel execution pays off.
Flag is a valid preprocessor flag.