[Bug rtl-optimization/92264] [10 Regression] Compile time hog in 521.wrf_r with -Ofast -march=znver2 -g since r276318
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 20 17:25:23 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92264
--- Comment #31 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 48073
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48073&action=edit
gcc10-pr92264-wip.patch
WIP patch to try special casing cselib handling of stack pointer VALUEs.
The intent is that when we first cselib_lookup the stack pointer (e.g. at the
start of a bb), we mark the created VALUE as SP_DERIVED_VALUE_P and when we
lookup sp + CONST_INT, we try to canonicalize that lookup into lookup of that
VALUE + adjusted offset. Grepping e.g. -fdump-rtl-postreload-cselib or
-fdump-rtl-dse2-cselib for ^cselib.value shows that with -O2 -m32 we create
significantly fewer new VALUEs as we can share the VALUEs that are that
SP_DERIVED_VALUE_P VALUE + offset.
Unfortunately, this ICEs during var-tracking due to VALUE canonicalization and
PRESERVED_VALUE_P.
More information about the Gcc-bugs
mailing list