From 9afc3bff35048780187da80bc2053b740740ad7d Mon Sep 17 00:00:00 2001 From: jefft0 Date: Thu, 14 Apr 2022 12:11:05 +0200 Subject: [PATCH] PrimaryMDLController: In assume_lhs, call EvaluateFWDTimings. See pull request #219. --- r_exec/mdl_controller.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/r_exec/mdl_controller.cpp b/r_exec/mdl_controller.cpp index 51068d14..091288cb 100644 --- a/r_exec/mdl_controller.cpp +++ b/r_exec/mdl_controller.cpp @@ -2632,6 +2632,11 @@ void PrimaryMDLController::assume(_Fact *input) { void PrimaryMDLController::assume_lhs(HLPBindingMap *bm, bool opposite, _Fact *input, float32 confidence) { // produce an assumption and inject in primary; no rdx. + // retrieve_imdl_bwd needs the forward timings so evaluate them from the backward guards. We can't call + // evaluate_bwd_guards here because some variables from the requirement need to be bound by retrieve_imdl_bwd. + if (!HLPOverlay::EvaluateFWDTimings(this, bm)) + return; + P f_imdl = get_f_ihlp(bm, false); Fact *ground; switch (retrieve_imdl_bwd(bm, f_imdl, ground)) {