https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114578
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Time variable usr sys wall GGC phase setup : 0.00 ( 0%) 0.03 ( 0%) 0.10 ( 0%) 1903k ( 0%) phase parsing : 114.74 ( 95%) 45.79 (100%) 160.53 ( 95%) 6159M (100%) phase lang. deferred : 0.07 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 9312 ( 0%) phase opt and generate : 6.36 ( 5%) 0.10 ( 0%) 6.46 ( 4%) 293k ( 0%) phase finalize : 0.00 ( 0%) 0.06 ( 0%) 1.72 ( 1%) 0 ( 0%) |name lookup : 0.00 ( 0%) 0.01 ( 0%) 0.00 ( 0%) 109k ( 0%) garbage collection : 1.89 ( 2%) 0.00 ( 0%) 1.89 ( 1%) 0 ( 0%) callgraph construction : 6.35 ( 5%) 0.09 ( 0%) 6.44 ( 4%) 13k ( 0%) preprocessing : 30.74 ( 25%) 24.93 ( 54%) 55.53 ( 33%) 2047M ( 33%) parser (global) : 81.10 ( 67%) 20.86 ( 45%) 102.10 ( 60%) 4111M ( 67%) constant expression evaluation : 1.08 ( 1%) 0.00 ( 0%) 1.08 ( 1%) 304 ( 0%) post expand cleanups : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 2728 ( 0%) initialize rtl : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 9032 ( 0%) rest of compilation : 0.01 ( 0%) 0.01 ( 0%) 0.00 ( 0%) 16k ( 0%) TOTAL : 121.17 45.98 168.88 6161M Extra diagnostic checks enabled; compiler may run slowly. For x86_64-linux-gnu (but with checking enabled). Definitely a front-end issue. Preprocessing takes 2G is even more shocking.