Discussion about arm testcase failures seen with patch for PR111673

2023-11-03 Thread Surya Kumari Jangala via Gcc
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

2023-11-03 Thread Hanke Zhang via Gcc
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

2023-11-03 Thread GCC Administrator via Gcc
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.