relevant_cst_profile_entry(cprofile(RT,WT,PropWT,Calls,PP,Kind,Ann,Phase,IDInfo,InstItself,ValInfo,InstList)) :-
(try_get_unique_constants_state(CstState) -> true ; CstState=[]),
(Category = constant_computation(Phase,IDInfo),
relevant_total_runtime(PP,Category,RT,WT,Calls,_MaxWT,_MaxWitnessID,_Min),
Phase \= propagate_value,
(abstract_constant(PP,_) -> Kind=abstract ; concrete_constant(PP,_) -> Kind=concrete ; Kind=unknown)
;
(constants_profiling_on -> Phase = no_equation_detected
; Phase = '-'), % constants profiling on needed to keep track of all equations (except arith. at the moment)
RT=0, WT=0, PropWT=0, Calls=0, IDInfo = [],
(abstract_constant(PP,_), Kind=abstract ; concrete_constant(PP,_), Kind=concrete),
\+ total_runtime(PP,constant_computation(_,_),_,_,_,_,_,_) % we have no profiling info at all for PP
),
(get_det_solution_for_constant_value_kind(PP,DetValInfo)
-> DetSolFound = true
; DetValInfo = '-', DetSolFound = false
),
( (DetSolFound=false ; DetValInfo='LARGE-VALUE'),
member(bind(PP,CstVal),CstState), translate_bvalue_kind(CstVal,ValInfo)
-> SolFound=true
; ValInfo=DetValInfo, SolFound=DetSolFound
),
% now check whether there are infos about propagation phase:
(total_runtime(PP,constant_computation(propagate_value,PropInfo),_,PropWT,_,_,_,_)
-> (member(instantiates(IList),PropInfo) ->
(select(PP,IList,InstList)
-> InstItself=yes
; (DetSolFound=true -> InstItself = 'delayed'
; SolFound=true -> InstItself = 'non-det' ; InstItself='NO'),
InstList=IList)
; % no instantiation list stored; performance monitoring not on
(SolFound=true -> InstItself='-' ; InstItself='NO'),
InstList = '-'
)
; PropWT = 0,
(DetSolFound=true -> InstItself='-' ; InstItself='NO'),
InstList='-'
),
(constant_variable_marked_as_expand(PP) -> Ann=expand
; constant_variable_marked_as_memo(PP) -> Ann=memo
; Ann = ''
).