https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95264

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2020-05-22
     Ever confirmed|0                           |1

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So with the [[gnu::flatten]] attributes removed -O1 needs 80 seconds to compile
and about 3GB of memory, -O2 needs around 2 minutes (same memory), -O3
is the same as -O2.

Maybe instead of [[gnu::flatten]] you want to bump --param inline-unit-growth
or --param large-function-growth more moderately in case you can measure an
effect on runtime.

Note multiple [[gnu::flatten]] can really exponentially grow program size
since it is not appearant which functions might be used from another
translation unit until you can use -fwhole-program (single CU program)
or -flto (but there [[gnu::flatten]] is applied to early to avoid such
growth - sth we might want to fix).  Placing things not used from outside
in anonymous namespaces might help.

Reply via email to