Adding relaxation on the maximum free set constraint

This commit is contained in:
aletempiac 2024-02-27 17:47:43 +01:00
parent d3f140f1df
commit 44a65c23ed
1 changed files with 7 additions and 1 deletions

View File

@ -111,6 +111,12 @@ public:
uint32_t late_arriving = __builtin_popcount( delay_profile );
/* relax maximum number of free set variables if a function has more variables */
if ( num_vars > ps.max_free_set_vars + ps.lut_size )
{
ps.max_free_set_vars = num_vars - ps.lut_size;
}
/* return a high cost if too many late arriving variables */
if ( late_arriving > ps.lut_size - 1 || late_arriving > ps.max_free_set_vars )
{
@ -1444,7 +1450,7 @@ private:
std::vector<std::array<uint32_t, 2>> support_minimization_encodings;
uint32_t num_vars;
ac_decomposition_params const& ps;
ac_decomposition_params ps;
ac_decomposition_stats* pst;
std::array<uint32_t, max_num_vars> permutations;
};