https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95792
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |compile-time-hog Ever confirmed|0 |1 Last reconfirmed| |2020-06-22 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- GCC doesn't try to do memcpy pattern detection when you manually produce such kind of initialization. In theory vectorizer dataref analysis figures it out but then there's no "vectorize with memset" implemented ;) store-merging only merges up to word-size stores. As expected most of the compile-time is spent funneling this through optimizers before the very late attempts to optimize it. Notably alias stmt walking : 35.95 ( 64%) 0.47 ( 65%) 36.60 ( 64%) 0 kB ( 0%) tree DSE : 16.08 ( 29%) 0.14 ( 19%) 16.28 ( 28%) 0 kB ( 0%) where the walking cut-off for DSE is likely too big (note the above is for a -O0 optimized cc1 with -O1 -fno-checking).