{"old": "/home/jenkins/agent/workspace/multiarch/src-openeuler/aarch64/gcc-14/old_rpms/", "new": "/home/jenkins/agent/workspace/multiarch/src-openeuler/aarch64/gcc-14/new_rpms/", "compare_result": "not pass", "compare_details": {"same": {"same_details": {"old": ["gcc-toolset-14-libgccjit-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libitm-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libhwasan-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libubsan-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libubsan-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libhwasan-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-liblsan-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libtsan-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libgcc-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-liblsan-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libgfortran-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libatomic-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libitm-devel-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libatomic-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-devel-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libgfortran-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libtsan-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libasan-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libgomp-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libgccjit-devel-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libitm-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libasan-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-static-14.3.1-19.oe1.aarch64.rpm", "gcc-toolset-14-gcc-gdb-plugin-14.3.1-19.oe1.aarch64.rpm"], "new": ["gcc-toolset-14-libgccjit-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libitm-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libhwasan-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libubsan-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libubsan-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libhwasan-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-liblsan-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libtsan-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libgcc-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-liblsan-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libgfortran-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libatomic-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libitm-devel-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libatomic-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-devel-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libgfortran-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libtsan-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libasan-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libgomp-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libgccjit-devel-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libitm-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libasan-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-libstdc++-static-14.3.1-48.oe1.aarch64.rpm", "gcc-toolset-14-gcc-gdb-plugin-14.3.1-48.oe1.aarch64.rpm"]}, "same_num": 25}, "diff": {"diff_details": {"gcc-toolset-14-libgccjit": {"name": {"old": "gcc-toolset-14-libgccjit-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgccjit-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}, "gcc-toolset-14-gcc": {"name": {"old": "gcc-toolset-14-gcc-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-gcc-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm header": {"more": ["simdmath.h"]}, "rpm symbol": {}}, "gcc-toolset-14-libitm-static": {"name": {"old": "gcc-toolset-14-libitm-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libitm-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libhwasan-static": {"name": {"old": "gcc-toolset-14-libhwasan-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libhwasan-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libubsan-static": {"name": {"old": "gcc-toolset-14-libubsan-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libubsan-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libubsan": {"name": {"old": "gcc-toolset-14-libubsan-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libubsan-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libhwasan": {"name": {"old": "gcc-toolset-14-libhwasan-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libhwasan-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-gcc-plugin-devel": {"name": {"old": "gcc-toolset-14-gcc-plugin-devel-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-gcc-plugin-devel-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm header": {"diff": {"old": ["insn-attr-common.h", "ipa-param-manipulation.h", "profile.h", "symbol-summary.h", "coverage.h", "options.h", "value-prof.h", "aarch64-linux.h"], "new": ["insn-attr-common.h", "ipa-param-manipulation.h", "profile.h", "symbol-summary.h", "coverage.h", "options.h", "value-prof.h", "aarch64-linux.h"]}, "more": ["ipa-array-dse.h", "rtl-matcher.h"]}, "rpm symbol": {}}, "gcc-toolset-14-liblsan": {"name": {"old": "gcc-toolset-14-liblsan-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-liblsan-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libtsan-static": {"name": {"old": "gcc-toolset-14-libtsan-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libtsan-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-gcc-gfortran": {"name": {"old": "gcc-toolset-14-gcc-gfortran-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-gcc-gfortran-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm header": {}, "rpm symbol": {"diff": [{"old": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/f951", "new": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/f951", "details": {"count_result": {"Removed functions": 56}}}]}}, "gcc-toolset-14-cpp": {"name": {"old": "gcc-toolset-14-cpp-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-cpp-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {"diff": [{"old": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/cc1", "new": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/cc1", "details": {"count_result": {"Removed functions": 56}}}]}}, "gcc-toolset-14-libgcc": {"name": {"old": "gcc-toolset-14-libgcc-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgcc-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}, "gcc-toolset-14-liblsan-static": {"name": {"old": "gcc-toolset-14-liblsan-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-liblsan-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libgfortran-static": {"name": {"old": "gcc-toolset-14-libgfortran-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgfortran-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libatomic": {"name": {"old": "gcc-toolset-14-libatomic-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libatomic-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libitm-devel": {"name": {"old": "gcc-toolset-14-libitm-devel-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libitm-devel-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libatomic-static": {"name": {"old": "gcc-toolset-14-libatomic-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libatomic-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-gcc-c++": {"name": {"old": "gcc-toolset-14-gcc-c++-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-gcc-c++-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {"diff": [{"old": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/cc1plus", "new": "/opt/openEuler/gcc-toolset-14/root/usr/libexec/gcc/aarch64-openEuler-linux/14/cc1plus", "details": {"count_result": {"Removed functions": 56}}}]}}, "gcc-toolset-14-libstdc++-devel": {"name": {"old": "gcc-toolset-14-libstdc++-devel-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libstdc++-devel-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm header": {}}, "gcc-toolset-14-libgfortran": {"name": {"old": "gcc-toolset-14-libgfortran-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgfortran-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libtsan": {"name": {"old": "gcc-toolset-14-libtsan-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libtsan-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libasan": {"name": {"old": "gcc-toolset-14-libasan-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libasan-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm symbol": {}}, "gcc-toolset-14-libgomp": {"name": {"old": "gcc-toolset-14-libgomp-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgomp-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}, "gcc-toolset-14-libgccjit-devel": {"name": {"old": "gcc-toolset-14-libgccjit-devel-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libgccjit-devel-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm header": {}}, "gcc-toolset-14-libstdc++": {"name": {"old": "gcc-toolset-14-libstdc++-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libstdc++-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}, "gcc-toolset-14-libitm": {"name": {"old": "gcc-toolset-14-libitm-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libitm-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}, "gcc-toolset-14-libasan-static": {"name": {"old": "gcc-toolset-14-libasan-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libasan-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-libstdc++-static": {"name": {"old": "gcc-toolset-14-libstdc++-static-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-libstdc++-static-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}}, "gcc-toolset-14-gcc-gdb-plugin": {"name": {"old": "gcc-toolset-14-gcc-gdb-plugin-14.3.1-19.oe1.aarch64.rpm", "new": "gcc-toolset-14-gcc-gdb-plugin-14.3.1-48.oe1.aarch64.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {}, "rpm symbol": {}}}, "diff_num": 5}, "less": {"less_details": {}, "less_num": 0}, "more": {"more_details": {}, "more_num": 0}}, "pr_link": "https://gitcode.com/src-openeuler/gcc-14/pull/66", "pr_changelog": "* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-48\n- [Feature] Add alignment propagation, array localization and array DSE\n  (Patch1169)\n- -fipa-alignment-propagation carries a local variable's known alignment\n  along the call graph; -fipa-localize-array demotes a global calloced\n  pointer used inside one function to a local value; -fipa-array-dse\n  removes or narrows a callee's writes to a caller's array when the length\n  parameter's range proves them redundant.  All default off, need -O3\n- These passes add instances of ccp, cd_dce, early_vrp and forwprop, which\n  renumbers those dump names.  180 upstream tests are renamed with them,\n  and -fdisable-tree-evrp becomes -fdisable-tree-evrp1, as it already is\n  on openEuler's gcc-12\n- Validated on aarch64: tree-ssa 8236 passes, vect 9779, struct-reorg 586,\n  the openeuler suites 471, 29 and 46, nothing red\n- The CFGO bundle now names these three options, which it had carried as\n  comments while the passes were missing\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-47\n- [Feature] Add dynamic structure field compression (Patch1168)\n- -fipa-struct-dfc compresses structure fields whose values are read from\n  an input file and turn out to need fewer bits, cloning the function into\n  compressed and uncompressed paths with a runtime bounds check between\n  them; -fipa-struct-dfc-bitfield and -fipa-struct-dfc-shadow select the\n  bitfield and shadow variants.  All three default off, C only, need -O3\n  and -flto or -fwhole-program\n- 58 of the patch's 81 hunks rewrite existing struct-reorg code, static\n  field compression included.  Measured: the family's own suite goes from\n  532 passes and 20 xfails to 586 and 24, with the twenty unchanged\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-46\n- [Feature] Add the hip10a, hip10c and hip11 cores (Patch1167)\n- Pipeline descriptions, tuning models and core definitions for three HiSilicon\n  cores this tree was missing, and the two features hip12's definition had lost\n- The optimization stack carried so far runs Patch1141 to Patch1167.  Not\n  carried, each with the measurement behind the decision recorded: the cmlt\n  generation patch, the ccmp extension, the maxmin family, the SME test\n  adaptations, the split-complex pass, the transposed SLP pass\n- Validated on aarch64: the openeuler test suites pass with no failures,\n  unresolved tests or unexpected passes; upstream vect, tree-ssa, aarch64 and\n  the torture execute suite show no regression\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-45\n- [Feature] Backport the -march=native lookup fix (Patch1166)\n- PR target/124629: the core table and the architecture table stringified the\n  same identifier differently, so the lookup could never match and the option\n  was silently dropped\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-44\n- [Feature] Add CFGO, CSPGO and oeAware (Patch1165)\n- -fcfgo-profile-use turns on a bundle of openEuler optimisations alongside\n  profile use; -fcfgo-csprofile-* instruments a second time after inlining so\n  counts carry call context; -foeaware-policy emits a section a runtime tuner\n  reads.  All default off\n- branch_prob, init_node_map, coverage_finish and the rest of the coverage\n  reading path take an extra argument for context-sensitive PGO.  All inside\n  cc1, cc1plus and f951; none of them a published ABI\n- Two fixes to the option handlers, both carried from openEuler's gcc-12.  The\n  bare -fcfgo-profile-generate and -fcfgo-profile-use forms fell into the case\n  that requires a directory argument and called xstrdup on a null pointer.  And\n  neither bare form rejects negation, so the value was taken from the case the\n  two spellings share: -fno-cfgo-profile-use turned the whole bundle on, and\n  -fno-cfgo-profile-generate instrumented the translation unit it was asked not\n  to instrument\n- The bundle no longer enables -fselective-scheduling.  openEuler's gcc-12\n  removed it after measuring wrong code from the option combined with\n  profile instrumentation: a whole statement silently eliminated, no crash\n  and no diagnostic.  Pass it explicitly if you want it\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-43\n- [Feature] Add -fif-split and three vectorizer params (Patch1164)\n- -fif-split splits an OR condition that compares a variable against a constant\n  and clones the branch body so constant propagation can see it.  Default off,\n  needs -O3\n- --param vect-swap-operands, --param addr-expand-for-alias-check and\n  --param vect-register-size-check ride along, all off by default\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-42\n- [Feature] Add -ftree-slp-late (Patch1163)\n- Runs the SLP vectorizer a second time after reassociation.  Default off\n- -ftree-slp-transpose-vectorize, which shared this option's source patch,\n  is not carried: a build-time ICE was reported against it with no\n  reproducer available\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-41\n- [Feature] Add rtl-ifcvt register renaming (Patch1162)\n- --param ifcvt-allow-register-renaming lets RTL if-conversion rename registers\n  that would otherwise block the transformation, in two levels;\n  -fifcvt-allow-complicated-cmps admits complicated compares.  Both default off\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-40\n- [Feature] Add -floop-elim (Patch1161)\n- Removes a scanning loop whose only remaining use is asking whether it\n  advanced at all.  Default off\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-39\n- [Feature] Add -ffind-with-sve (Patch1160)\n- Recognises std::find over contiguous 64-bit integer ranges and rewrites it to\n  an SVE routine in libgcc.  Default off, needs SVE\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-38\n- [Feature] Add the Struct-Reorg family (Patch1159)\n- -fipa-struct-reorg=[0-6] selects field reordering, dead field elimination,\n  pointer compression and semi-relayout; -fipa-struct-sfc and its bitfield and\n  shadow variants add static field compression.  Tuned by\n  --param struct-reorg-cold-struct-ratio, --param compressed-pointer-size and\n  --param semi-relayout-level.  Default off, C only, needs -O3 and -flto or\n  -fwhole-program\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-37\n- [Feature] Add -fipa-prefetch (Patch1158)\n- Finds indirect memory accesses in loops and inserts prefetches, with\n  --param ipa-prefetch-distance-factor and --param ipa-prefetch-locality\n  controlling distance and locality.  Brings -fipa-ic, the interprocedural\n  analysis of indirect calls it depends on.  Default off, needs -O3 and\n  -flto or -fwhole-program\n- The copied address chain still dereferences, so the extrapolated address is\n  read before the program reaches it.  Each speculative access is guarded:\n  array forms that cannot be bounded are rejected, the original and the\n  extrapolated address are compared masked to --param ipa-prefetch-pagesize\n  and the access is skipped when they land on different pages, an array index\n  is bounded, and the resulting branches are wired into the CFG\n- Three upstream fixes the first inventory missed are carried: a prefetch\n  sequence is no longer inserted after a control statement, an induction\n  variable of reference type gets POINTER_PLUS_EXPR, and the page check\n  accepts a reference-typed address\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-36\n- [Feature] Add -floop-sve-mode-opt (Patch1157)\n- Offers SVE vector modes as additional candidates when vectorising loops.\n  Default off, needs SVE\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-35\n- [Feature] Add -floop-crc (Patch1156)\n- Recognises table-driven CRC32 loops and replaces them with the AArch64 CRC\n  instructions.  Default off, needs -O3 and a target with CRC32\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-34\n- [Feature] Retire -fchrec-mul-fold-strict-overflow (Patch1155)\n- The strict-overflow CHREC multiplication folding it enabled is built into\n  gcc-14 and always active.  Same treatment as the option above\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-33\n- [Feature] Retire -falias-analysis-expand-ssa (Patch1154)\n- The non-loop alias disambiguation it enabled is built into gcc-14 and always\n  active.  The positive form now errors with that explanation instead of\n  \"unrecognized command-line option\"; the negative form stays silent\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-32\n- [Feature] Add indirect call promotion (Patch1153)\n- -ficp and -ficp-speculatively promote indirect calls to direct ones.  Default\n  off, needs -flto or -fwhole-program\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-31\n- [Feature] Add -fuaddsub-overflow-match-all (Patch1152)\n- Matches unsigned add and subtract overflow even where the target has no\n  instruction for it.  Default off\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-30\n- [Feature] Add gimple if-conversion (Patch1151)\n- -fif-conversion-gimple converts conditional jumps to branchless equivalents\n  during the gimple passes.  Default off.  One pattern from the original\n  produced wrong code and is not carried\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-29\n- [Feature] Add AES pattern matching (Patch1150)\n- -fcrypto-accel-aes recognises the AES round structure in generic code and\n  emits the AArch64 crypto instructions.  Default off\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-28\n- [Feature] Extend AutoFDO (Patch1149)\n- Discriminator support and the MCF algorithm on the AutoFDO path, memory leak\n  fixes, and a correction to how PMU sampling sets numerator and denominator\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-27\n- [Feature] Add AutoBOLT (Patch1148)\n- -fauto-bolt and -fbolt-use emit function and branch information for the BOLT\n  binary optimiser and run it after linkage, through a linker plugin.  Both\n  default off\n- The plugin is behind a build switch: bolt-plugin builds only on aarch64 and\n  only with --enable-bolt, so one bcond drives both the configure option and\n  the file entry.  Default off; rpmbuild --with bolt turns both on.  Without\n  the plugin, -fauto-bolt and -fbolt-use fail at link time\n- %prep gives bolt-plugin/configure its executable bit back, which git records\n  and patch(1) cannot carry\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-26\n- [Feature] Add -farray-widen-compare (Patch1147)\n- Rewrites qualifying byte-compare loops to compare eight bytes at a time.\n  Default off, needs -O3\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-25\n- [Feature] Add -fbuiltin-will-return (Patch1146)\n- Treats built-ins that cannot loop, throw or exit - today only\n  __builtin_prefetch - as certain to return, so partial redundancy elimination\n  can hoist loads across them.  Default off; IPA prefetch depends on it\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-24\n- [Feature] Enable -moutline-atomics for libgomp (Patch1145)\n- libgomp is built with -moutline-atomics on aarch64 Linux, which measures\n  better under multi-threaded workloads.  The default for user code is\n  unchanged\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-23\n- [Feature] Add tsv110 tuning (Patch1144)\n- Pipeline description and cost model for the tsv110 core\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-22\n- [Feature] Add -fkernel-pgo (Patch1143)\n- Instrumentation variables stop using thread-local storage, which the kernel\n  does not provide.  Default off\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-21\n- [Feature] Add -mmul-widen128 (Patch1142)\n- Recognises 64-bit to 128-bit widening multiplication idioms on AArch64.\n  Default off\n- The retired -fmerge-mull spelling now errors with a pointer to it\n- The pass runs ahead of pass_sink_code.  Anchored after it, a high half\n  stored on only one path was sunk into the block that consumes it and no\n  longer matched, and the rewrite fell back to a plain 64-bit multiply\n\n* Fri Aug 21 2026 Cutie Deng <cutiedeng@icloud.com> - 14.3.1-20\n- [Feature] Add -fsimdmath, -ffp-model= and -mdaz-ftz (Patch1141)\n- -fsimdmath declares the vector variants of the math functions libmathlib\n  provides and links it; -ffp-model=[normal|fast|precise|except|strict] selects\n  a floating-point contract; -mdaz-ftz decides whether crtfastmath.o is linked.\n  All three default off\n- The retired spellings -fftz and -fp-model= now error with a pointer to their\n  replacement instead of being silently unrecognized\n- simdmath.h and simdmath_f.h are named in the file lists.  This spec\n  enumerates every header, so an unlisted one is installed and then dropped\n"}