diff options
author | Ian Romanick <[email protected]> | 2018-11-26 15:12:30 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2018-12-16 14:39:56 -0800 |
commit | 9dc135efa1f3edf344ba57e1bbe076c805c8903a (patch) | |
tree | e8a0ddd22ff43d1e7acb0e182be8bdf8ddafd12f /src/compiler/nir/nir_sweep.c | |
parent | 7adafd6e1c94f3730e9233a34b2e970090e508fd (diff) |
nir: Release per-block metadata in nir_sweep
nir_sweep already marks all metadata invalid, so it is safe to release
the memory here too.
mean soft fp64 using uint64: 1,342,759,331 => 1,010,670,475
gfxbench5 aztec ruins high 11: 63,555,571 => 61,889,811
deus ex mankind divided 148: 62,845,304 => 62,829,640
deus ex mankind divided 2890: 71,922,686 => 71,922,686
dirt showdown 676: 69,238,607 => 69,238,607
dolphin ubershaders 210: 77,822,072 => 77,822,072
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir_sweep.c')
-rw-r--r-- | src/compiler/nir/nir_sweep.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_sweep.c b/src/compiler/nir/nir_sweep.c index aab641388db..b6b56aa078c 100644 --- a/src/compiler/nir/nir_sweep.c +++ b/src/compiler/nir/nir_sweep.c @@ -63,6 +63,15 @@ sweep_block(nir_shader *nir, nir_block *block) { ralloc_steal(nir, block); + /* sweep_impl will mark all metadata invalid. We can safely release all of + * this here. + */ + ralloc_free(block->live_in); + block->live_in = NULL; + + ralloc_free(block->live_out); + block->live_out = NULL; + nir_foreach_instr(instr, block) { ralloc_steal(nir, instr); |