diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-03 18:46:10 +0200 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-06 08:50:52 +0200 |
| commit | 5fccf5f5a85d01ca21d06675216345a182555cce (patch) | |
| tree | 2ff8f6a5e810588c4797f204a2fb04d65b0ce7a2 /validation/optim | |
| parent | c47f18c7699d0a9fbb8b8adbd2c3bf177214beb4 (diff) | |
| download | sparse-dev-5fccf5f5a85d01ca21d06675216345a182555cce.tar.gz | |
simplify linearize_logical()
The linearized code for logical expressions looks like:
.Lc
... condition 1 ...
cbr %c, .L1, .L2
.L1
%phisrc %phi1 <- $1
br .Lm
.L2
... condition 2 ...
%phisrc %phi2 <- %r
br .Lm
.Lm
%phi %r <- %phi1, %phi2
But .L1 can easily be merged with .Lc:
.Lc
... condition 1 ...
%phisrc %phi1 <- $1
cbr %c, .Lm, .L2
.L2
... condition 2 ...
%phisrc %phi2 <- %r
br .Lm
.Lm
%phi %r <- %phi1, %phi2
Do this simplification which:
* creates less basic blocks & branches
* do at linearization time a simplification not done later.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/optim')
0 files changed, 0 insertions, 0 deletions
