memory: enable constant folding of nonlocal liveness
MODIFY
ir/memory.cpp
ir/memory.cpp
@@ -728,7 +728,9 @@ expr Memory::alloc(const expr &size, unsigned align, BlockKind blockKind,
} else {
state->addAxiom(blockKind == CONSTGLOBAL ? !p.is_writable()
: p.is_writable());
- // The memory block was initially alive.
+ non_local_block_liveness
+ = non_local_block_liveness.store(short_bid, allocated);
+ // TODO: benchmark; the following line is redundant
state->addAxiom(mk_liveness_array().load(short_bid) == allocated);
state->addAxiom(p.block_size() == size_zext);
state->addAxiom(p.is_aligned(align, true));

MODIFY
tests/alive-tv/memory/punning-ptrint.src.ll
tests/alive-tv/memory/punning-ptrint.src.ll
-; TEST-ARGS: -disable-undef-input -smt-to=10000
+; TEST-ARGS: -disable-undef-input -disable-poison-input -smt-to=10000
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

memory: enable constant folding of nonlocal liveness