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

            Bug ID: 107831
           Summary: Missed optimization: -fclash-stack-protection causes
                    unnecessary code generation for dynamic stack
                    allocations that are clearly less than a page
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pskocik at gmail dot com
  Target Milestone: ---

I'm talking allocations such as

char buf [ (uint8_t)size ];

The resulting code for this should ideally be the same with or without
-fstack-clash-protection as this can clearly never skip a whole page.

But gcc generates a big loop trying to touch every page-sized subpart of that
allocation.

https://godbolt.org/z/G8EbzbshK

Reply via email to