aboutsummaryrefslogtreecommitdiff
path: root/gcc/df.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-01-29 10:23:40 +0100
committerRichard Biener <rguenther@suse.de>2021-01-29 12:01:58 +0100
commita8c455bafdefdab0a7b8cdbcdb116c0086bae05e (patch)
treec318bcce8af65f7e9d2ad4a93cbea2376baa146a /gcc/df.h
parente7429bc9d60c0cb9809a8040bb63dbb9390f40f1 (diff)
downloadgcc-a8c455bafdefdab0a7b8cdbcdb116c0086bae05e.zip
gcc-a8c455bafdefdab0a7b8cdbcdb116c0086bae05e.tar.gz
gcc-a8c455bafdefdab0a7b8cdbcdb116c0086bae05e.tar.bz2
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.
Diffstat (limited to 'gcc/df.h')
-rw-r--r--gcc/df.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/df.h b/gcc/df.h
index 88d35e4..5effefa 100644
--- a/gcc/df.h
+++ b/gcc/df.h
@@ -929,6 +929,7 @@ public:
/* The results of the dataflow problem. */
bitmap_head in; /* At the top of the block. */
bitmap_head out; /* At the bottom of the block. */
+ bool con_visited; /* Visited by con_fun_{0,n}. */
};