diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-03-11 09:42:24 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-03-14 23:19:54 +0100 |
| commit | dc0297e9166f42f9f27e9c5958c06feb16b95ce8 (patch) | |
| tree | fd94f4d996d09e2d622834fb4b70afb374575c45 /validation/optim | |
| parent | b3875dcaf628705a65adf3c815f52fcffcd280bb (diff) | |
| download | sparse-dev-dc0297e9166f42f9f27e9c5958c06feb16b95ce8.tar.gz | |
optim: kill unreachable BBS after CFG simplification
Normal instruction simplification & CSE must not be done
on dead block (otherwise it's possible to have unsound
situations like having an instruction defining its own
operand with possible infinite loops as consequence).
This is insured by the main optimization loop but not after
BB packing or flow simplification.
Fix this by calling kill_unreachabe_bbs() after BB packing
and flow simplification.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/optim')
| -rw-r--r-- | validation/optim/dup-cond0.c | 1 | ||||
| -rw-r--r-- | validation/optim/phi-ret.c | 1 |
2 files changed, 0 insertions, 2 deletions
diff --git a/validation/optim/dup-cond0.c b/validation/optim/dup-cond0.c index dc4991cb..0525250c 100644 --- a/validation/optim/dup-cond0.c +++ b/validation/optim/dup-cond0.c @@ -13,7 +13,6 @@ static int foo(struct s *s) /* * check-name: dup-cond0 * check-command: test-linearize -Wno-decl $file - * check-known-to-fail * * check-output-ignore * check-output-contains: select diff --git a/validation/optim/phi-ret.c b/validation/optim/phi-ret.c index 204366a9..bc3e0474 100644 --- a/validation/optim/phi-ret.c +++ b/validation/optim/phi-ret.c @@ -15,7 +15,6 @@ int foo(int p, int q, int v) /* * check-name: phi-ret * check-command: test-linearize -Wno-decl $file - * check-known-to-fail * * check-output-ignore * check-output-excludes: phi\\. |
