diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2021-03-26 00:41:22 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2021-04-02 20:50:34 +0200 |
| commit | 8b89204e0d7e2caaaa03ff8ed79da5bf6f2e1b36 (patch) | |
| tree | b8b7390e92c502e625d3af68268382637ec4c76a /ir.c | |
| parent | 78183a155b833ded168e9f72055a8a0f01a5ad46 (diff) | |
| download | sparse-dev-8b89204e0d7e2caaaa03ff8ed79da5bf6f2e1b36.tar.gz | |
fix remove_merging_phisrc()
The current implementation of remove_merging_phisrc() can't work correctly
when these phi-sources belong to a basic block with several children
to the same target basic block (this happens commonly with OP_SWITCH).
Fix this by directly scanning the source basic block for the presence
of any phi-source. Once identified, the processing is kept unchanged:
remove these phi-sources if a sibling phi-source will 'overwrite' them
in the target block.
Fixes: 2fdaca9e7175e62f08d259f5cb3ec7c9725bba68
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'ir.c')
0 files changed, 0 insertions, 0 deletions
