MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / blockRefined

Method blockRefined

ir/memory.cpp:2572–2584  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2570}
2571
2572expr Memory::blockRefined(const Pointer &src, const Pointer &tgt) const {
2573 expr aligned(true);
2574 expr src_align = src.blockAlignment();
2575 expr tgt_align = tgt.blockAlignment();
2576 // if they are both non-const, then the condition holds per the precondition
2577 if (src_align.isConst() || tgt_align.isConst())
2578 aligned = src_align.ule(tgt_align);
2579
2580 return src.isBlockAlive() == tgt.isBlockAlive() &&
2581 src.blockSize() == tgt.blockSize() &&
2582 src.getAllocType() == tgt.getAllocType() &&
2583 aligned;
2584}
2585
2586expr Memory::blockValRefined(const Pointer &src, const Memory &tgt,
2587 unsigned bid, set<expr> &undef,

Callers

nothing calls this directly

Calls 6

blockAlignmentMethod · 0.80
uleMethod · 0.80
blockSizeMethod · 0.80
getAllocTypeMethod · 0.80
isConstMethod · 0.45
isBlockAliveMethod · 0.45

Tested by

no test coverage detected