Dat3M
Dat3M copied to clipboard
Implicit knowledge
Reduces the memory usage of the Relation Analysis. The initial knowledge of base relations like ext
, int
, po
and X*Y
is not explicitly stored. This comes with hopefully-negligible runtime costs.
Performance-wise, this PR seems to give a slight degradation (from 170s to 200s on BBQ, subject to fluctuations). Memory-wise, I haven't checked the difference. It would be good to compare the number of implicitly represented tuples vs. totally represented one's to get a quantitative idea of how much improvement there is.
Apart from the above, I think the RelationAnalysis
is becoming far too complicated. The current version is already missing some high-level structure/description, but with all the new implicit representations, it just gets out-of-hand.
I think we need a more properly engineered solution that is better maintainable.