rtl-optimization/98144 - tame REE memory usage
authorRichard Biener <rguenther@suse.de>
Fri, 29 Jan 2021 09:23:40 +0000 (10:23 +0100)
committerRichard Biener <rguenther@suse.de>
Fri, 29 Jan 2021 11:01:58 +0000 (12:01 +0100)
commita8c455bafdefdab0a7b8cdbcdb116c0086bae05e
treec318bcce8af65f7e9d2ad4a93cbea2376baa146a
parente7429bc9d60c0cb9809a8040bb63dbb9390f40f1
rtl-optimization/98144 - tame REE memory usage

This changes the REE dataflow to change the explicit all-ones
starting solution to be implicit via a visited flag, removing
the need to initially start with fully populated bitmaps for
all basic-blocks.  That reduces peak memory use when compiling
the RTL checking enabled insn-extract.c testcase from PR98144
from 6GB to less than 2GB.

2021-01-29  Richard Biener  <rguenther@suse.de>

PR rtl-optimization/98144
* df.h (df_mir_bb_info): Add con_visited member.
* df-problems.c (df_mir_alloc): Initialize con_visited,
do not fully populate IN and OUT.
(df_mir_reset): Likewise.
(df_mir_confluence_0): Set con_visited.
(df_mir_confluence_n): Properly handle implicitely
fully populated IN and OUT as designated by con_visited
and update con_visited accordingly.
gcc/df-problems.c
gcc/df.h