diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-03-06 01:50:18 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-03-18 19:02:28 +0100 |
| commit | 334bae855c8e24f30bfaa911265c0d64cab3432d (patch) | |
| tree | 037049f47af9a5880ec68a2f10193a016c937703 /Documentation | |
| parent | 1609176c9dbddd280c20a49fce81c9e1dd9b9c78 (diff) | |
| download | sparse-dev-334bae855c8e24f30bfaa911265c0d64cab3432d.tar.gz | |
avoid deadborn loads & stores
During linearization, most kinds of instruction are not generated
if there is no active BB (which mean that these instructions can
never be executed).
However, loads & stores are generated anyway. These dead loads
and stores will then need to be removed which is a bit tricky:
- memops are special and more complex to be removed than
instructions like 'add' and such.
- these instructions exist in 'phantom basic blocks': a BB
which has ia null bb->ep and which doesn't belong to then
entrypoint's ep->bbs. Such blocks are considered as removed
and are never scanned or anything.
Keep things simple and avoid to generate memops in inactive
basic blocks.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions
