https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81387
--- Comment #5 from Jakub Jelinek ---
Maybe we should just disable the REE pass if we can predict from number of
basic blocks, their sizes or number of edges that DF_UD_CHAIN + DF_DU_CHAIN
computation will be really expensive.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81387
--- Comment #4 from Richard Biener ---
There's a dup of this specific issue (workaround: -fno-ree), can't find it
right now.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81387
--- Comment #3 from Dmitry Babokin ---
Interesting that you've mentioned -fno-sanitize-recover, I haven't realized
that it has effect on the number of basic blocks. But by default I run
"-fsanitize=undefined -fno-sanitize-recover=undefined", so
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81387
--- Comment #2 from Martin Liška ---
Just for curiosity, I tried to use clang++ 4.0.0 and clang++ pr81387.ii -c -O2
-fsanitize=undefined took me about 180s and memory was ~2.5GB.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81387
--- Comment #1 from Jakub Jelinek ---
I'm afraid it is unfixable, if you want smaller memory consumption, you either
need smaller routines, or use -fno-sanitize-recover=all, or do multiple builds
with selected subsets of -fsanitize=undefined, so