https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90930
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- OK, so this is UA_StatusCode ua_namespace0(UA_Server *server) { UA_StatusCode retVal = 0x00; UA_UInt16 ns[1]; ns[0] = UA_Server_addNamespace(server, "http://opcfoundation.org/UA/"); retVal |= function_ua_namespace0_0_begin(server, ns); retVal |= function_ua_namespace0_1_begin(server, ns); retVal |= function_ua_namespace0_2_begin(server, ns); retVal |= function_ua_namespace0_3_begin(server, ns); ... retVal |= function_ua_namespace0_3832_begin(server, ns); retVal |= function_ua_namespace0_3833_begin(server, ns); retVal |= function_ua_namespace0_3834_begin(server, ns); retVal |= function_ua_namespace0_3834_finish(server, ns); retVal |= function_ua_namespace0_3833_finish(server, ns); retVal |= function_ua_namespace0_3832_finish(server, ns); retVal |= function_ua_namespace0_3831_finish(server, ns); ... retVal |= function_ua_namespace0_3_finish(server, ns); retVal |= function_ua_namespace0_2_finish(server, ns); retVal |= function_ua_namespace0_1_finish(server, ns); retVal |= function_ua_namespace0_0_finish(server, ns); return retVal; } And on aarch64 before reassoc we have _69005 = _80495 | _80496; _26564 = MEM[(UA_UInt16 *)&ns]; _22992 = function_ua_namespace0_7_finish.isra.0 (server_3(D), _26564); _26565 = MEM[(UA_UInt16 *)&ns]; _22995 = function_ua_namespace0_6_finish.isra.0 (server_3(D), _26565); _69006 = _22995 | _22992; _57512 = _69005 | _69006; thus non-left-associative |s which we first linearize and then re-write into two-assoc-width. The latter process is what leaves stmts not marked as visited and thus we re-process things over and over... reproducible on x86 with --param tree-reassoc-width=2. tree reassociation : 23.01 ( 55%) 8.65 ( 57%) 31.25 ( 55%) 444709 kB ( 64%) and with the fix: tree reassociation : 0.04 ( 1%) 0.02 ( 8%) 0.06 ( 1%) 949 kB ( 7%)