Optimize encodings of coherence and acyclicity (mostly IDL)#1015
Optimize encodings of coherence and acyclicity (mostly IDL)#1015ThomasHaas wants to merge 4 commits into
Conversation
|
See |
c7d559f to
95b96b4
Compare
95b96b4 to
900e97e
Compare
|
What do you mean by base version? The changes affect the encoding of acyclicity axioms (both IDL and SAT) and the IDL encoding for co (not the SAT encoding). So the only totally unaffected configuration should be idl2sat + lazy. I think we should also get rid of all the benchmarks below 1 sec (or even below 10 sec) when evaluating changes. For many of them, the best solution is to not do analysis at all and just solve directly because processing/analyses are the biggest bottleneck. The numbers of RC11 look interesting. I'm wondering how often the optimization even applies there. |
|
|
Then the SVCOMP evaluation shows improvements in the 10% range, no? |
Signed-off-by: Hernan Ponce de Leon <hernanl.leon@huawei.com> Co-authored-by: Hernan Ponce de Leon <hernanl.leon@huawei.com>
Added optimization also to idl2Sat encoding
900e97e to
92877ed
Compare
But the EDIT says you also optimized the SAT-based version, and in that case the evaluation suggests a regression for SVCOMP benchmarks |
|
The optimizations is likely more effective for IDL. The SVCOMP regressions for idl2sat are mostly due to overhead in the encoding stage: there are many benchmarks where the analysis + encoding time is higher than the actual solving time, hence, adding even more analyses is almost always going to be bad. |
ad14351 to
094c38f
Compare



This PR adds a little trick to make the ordering constraints of some must-edges unconditional, i.e., it changes the encoding from
exec(x) /\ exec(y) => clk(x) < clk(y)toclk(x) < clk(y)if possible.The argument for when this can be done is quite subtle.
Most benefit is expected on eager encodings, especially for SC where I saw improvements in the range of 10-30%.
I think it might be worth having an SVCOMP run with this branch.
The optimization might also be applicable to the SAT encodings for acyclicty. I have not thought about this yet though.EDIT: I have added the same optimization to the SAT encoding for acyclicity. I also saw some improvement, but not as big as in the IDL case.