memory: fix spurious assertion crash in gzip since mem refinement function can be called on src/src pairs from fncall mkaxioms
MODIFY
ir/memory.cpp
ir/memory.cpp
@@ -1583,8 +1583,10 @@ Memory::refined(const Memory &other,
m.non_local_blk_nonwritable.end();
};
+ if (state->isSource() && !other.state->isSource()) {
for (unsigned bid = IR::num_nonlocals_src; bid < IR::num_nonlocals; ++bid)
assert(!is_constglb(*this, bid) && is_constglb(other, bid));
+ }
#endif
// restrict refinement check to set of request blocks
@@ -1691,6 +1693,13 @@ ostream& operator<<(ostream &os, const Memory &m) {
}
os << "\nLOCAL BLOCK ADDR: " << m.local_blk_addr << '\n';
}
+ if (!m.non_local_blk_nonwritable.empty()) {
+ os << "CONST NON-LOCALS:";
+ for (auto bid : m.non_local_blk_nonwritable) {
+ os << ' ' << bid;
+ }
+ os << '\n';
+ }
return os;
}

memory: fix spurious assertion crash in gzip since mem refinement function can be called on src/src pairs from fncall mkaxioms