Discussion about arm testcase failures seen with patch for PR111673
Hi Richard, I had submitted a patch for review (https://gcc.gnu.org/pipermail/gcc-patches/2023-October/631849.html) regarding scaling save/restore costs of callee save registers with block frequency in the IRA pass (PR111673). This patch has been approved by VMakarov (https://gcc.gnu.org/pipermail/gcc-patches/2023-October/632089.html). With this patch, we are seeing performance improvements with spec on x86 (exchange: 5%, xalancbmk: 2.5%) and on Power (perlbench: 5.57%). I received a mail from Linaro about some failures seen in the CI pipeline with this patch. I have analyzed the failures and I wish to discuss the analysis with you. One failure reported by the Linaro CI is: FAIL: gcc.target/arm/pr111235.c scan-assembler-times ldrexd\tr[0-9]+, r[0-9]+, \\[r[0-9]+\\] 2 The diff in the assembly between trunk and patch is: 93c93 < push{r4, r5} --- > push{fp} 95c95 < ldrexd r4, r5, [r0] --- > ldrexd fp, ip, [r0] 99c99 < pop {r4, r5} --- > ldr fp, [sp], #4 The test fails with patch because the ldrexd insn uses fp & ip registers instead of r[0-9]+ But the code produced by patch is better because it is pushing and restoring only one register (fp) instead of two registers (r4, r5). Hence, this test can be modified to allow it to pass on arm. Please let me know what you think. If you need more information, please let me know. I will be sending separate mails for the other test failures. Regards, Surya
Question about the changing the default behavior of ipa-inline
Hi, I recently ran into an inline-related issue and would like to ask about it. This is about the ipa-inline. I'd like to make my function be inlined, but it trapped in the function 'want_inline_small_function_p', more specificly, in the conditional statement 'growth_positive_p (callee, e, growth)'. The offline size of the function is too small and the growth is much bigger. But I still hope it will be inlined. Besides, the reason for its failure in the report file was CIF_MAX_INLINE_INSNS_AUTO_LIMIT. But I don't seem to be able to fix that by modifying the value of that parameter. Is there another way to solve it? Or can I only change the source code to make it? Thanks Hanke Zhang
gcc-12-20231103 is now available
Snapshot gcc-12-20231103 is now available on https://gcc.gnu.org/pub/gcc/snapshots/12-20231103/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 12 git branch with the following options: git://gcc.gnu.org/git/gcc.git branch releases/gcc-12 revision 99a087034436393d9a000480398535a8fd29bec5 You'll find: gcc-12-20231103.tar.xz Complete GCC SHA256=5b1980c79bf876859055c0ec11c5179bb85be68eb26dafe9aba93e8151ec9022 SHA1=6a89177230316708ef0fb230fade28b234e220c0 Diffs from 12-20231027 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-12 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.