35 Commits

Author SHA1 Message Date
openeuler-ci-bot
c664b36473
!26 [sync] PR-25: AArch64: Fix issue #I9DE8T
From: @openeuler-sync-bot 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2024-04-09 11:12:27 +00:00
eastb233
788f9f4073 AArch64: Fix issue https://gitee.com/src-openeuler/gcc-12/issues/I9DE8T
(cherry picked from commit 6a604c5e0da4948c7048c897f1c90002567dd1b6)
2024-04-09 17:02:25 +08:00
openeuler-ci-bot
de06e39b02
!24 [sync] PR-23: AArch64: Support SME intrinsics
From: @openeuler-sync-bot 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2024-03-20 06:17:59 +00:00
eastb233
dbbaf1198d AArch64: Support SME intrinsics
(cherry picked from commit 5a8b1f3fd450f440943ca1eabccdfe6e9abdf668)
2024-03-20 09:15:24 +08:00
openeuler-ci-bot
b06699990b
!22 [sync] Sync 22.03-sp3 branch, upgrade GCC version 12.2.1 to 12.3.1
From: @zhaoshujian 
Reviewed-by: @xiongzhou4 
Signed-off-by: @xiongzhou4
2024-02-20 11:56:49 +00:00
openeuler-ci-bot
e76dec4265
!21 fix rpath error
From: @zhangxianting 
Reviewed-by: @zhaoshujian, @li-yancheng 
Signed-off-by: @li-yancheng
2023-12-18 11:09:04 +00:00
zhangxianting
5305e902fb fix chrpath error 2023-12-18 16:09:21 +08:00
openeuler-ci-bot
b44a63dd06
!20 [Upgrade ] Upgrade GCC version 12.2.1 to 12.3.1
From: @zhaoshujian 
Reviewed-by: @xiongzhou4, @eastb233 
Signed-off-by: @eastb233
2023-11-22 08:05:42 +00:00
zhaoshujian
6a5bf83c9b Upgrade GCC version 12.2.1 to 12.3.1 2023-11-20 11:28:21 +08:00
openeuler-ci-bot
03ce43df40
!17 i386: Avoid fma_chain for -march=alderlake and sapphirerapids.
From: @github-27907959 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2022-12-15 03:29:35 +00:00
Hongyu Wang
57239231b9 i386: Avoid fma_chain for -march=alderlake and sapphirerapids.
For Alderlake there is similar issue like PR 81616, enable
avoid_fma256_chain will also benefit on Intel latest platforms
Alderlake and Sapphire Rapids.

gcc/ChangeLog:

	* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Add
	m_SAPPHIRERAPIDS, m_ALDERLAKE.
2022-12-14 11:00:26 +08:00
openeuler-ci-bot
eb34b0fb56
!14 Small loop unrolling in O2.
From: @github-27907959 
Reviewed-by: @li-yancheng, @eastb233 
Signed-off-by: @eastb233
2022-12-07 01:57:29 +00:00
openeuler-ci-bot
c7f246f05b
!13 [RPM] Remove hard code 'openEuler' in spec file
From: @li-yancheng 
Reviewed-by: @cf-zhao 
Signed-off-by: @cf-zhao
2022-11-30 02:56:18 +00:00
Hongyu Wang
5603bb17fc [SPR] i386: Only enable small loop unrolling in backend [PR 107692]
Followed by the discussion in pr107692, -munroll-only-small-loops
Does not turns on/off -funroll-loops, and current check in
pass_rtl_unroll_loops::gate would cause -fno-unroll-loops do not take
effect. Revert the change about targetm.loop_unroll_adjust and apply
the backend option change to strictly follow the rule that
-funroll-loops takes full control of loop unrolling, and
munroll-only-small-loops just change its behavior to unroll small size
loops.

gcc/ChangeLog:

	PR target/107692
	* common/config/i386/i386-common.cc (ix86_optimization_table):
	Enable loop unroll O2, disable -fweb and -frename-registers
       	by default.
       	* config/i386/i386-options.cc
       	(ix86_override_options_after_change):
       	Disable small loop unroll when funroll-loops enabled, reset
       	cunroll_grow_size when it is not explicitly enabled.
       	(ix86_option_override_internal): Call
       	ix86_override_options_after_change instead of calling
       	ix86_recompute_optlev_based_flags and ix86_default_align
       	separately.
	* config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll
	factor if -munroll-only-small-loops enabled.
	* loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable
	loop unrolling for -O2-speed.
	(pass_rtl_unroll_loops::execute): Rmove
	targetm.loop_unroll_adjust check.

gcc/testsuite/ChangeLog:

	PR target/107692
       	* gcc.dg/guality/loop-1.c: Remove additional option for ia32.
       	* gcc.target/i386/pr86270.c: Add -fno-unroll-loops.
       	* gcc.target/i386/pr93002.c: Likewise.

url:https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8caf155a3d6e23e47bf55068ad23c23d4655a054
2022-11-30 09:17:52 +08:00
Hongyu Wang
70bccee5fa [SPR] Enable small loop unrolling for O2
Modern processors has multiple way instruction decoders
For x86, icelake/zen3 has 5 uops, so for small loop with <= 4
instructions (usually has 3 uops with a cmp/jmp pair that can be
macro-fused), the decoder would have 2 uops bubble for each iteration
and the pipeline could not be fully utilized.

Therefore, this patch enables loop unrolling for small size loop at O2
to fullfill the decoder as much as possible. It turns on rtl loop
unrolling when targetm.loop_unroll_adjust exists and O2 plus speed only.
In x86 backend the default behavior is to unroll small loops with less
than 4 insns by 1 time.

This improves 548.exchange2 by 9% on icelake and 7.4% on zen3 with
0.9% codesize increment. For other benchmarks the variants are minor
and overall codesize increased by 0.2%.

The kernel image size increased by 0.06%, and no impact on eembc.

gcc/ChangeLog:

	* common/config/i386/i386-common.cc (ix86_optimization_table):
	Enable small loop unroll at O2 by default.
	* config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll
	factor if -munroll-only-small-loops enabled and -funroll-loops/
	-funroll-all-loops are disabled.
	* config/i386/i386.h (struct processor_costs): Add 2 field
	small_unroll_ninsns and small_unroll_factor.
	* config/i386/i386.opt: Add -munroll-only-small-loops.
	* doc/invoke.texi: Document -munroll-only-small-loops.
	* loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl
	loop unrolling for -O2-speed and above if target hook
	loop_unroll_adjust exists.
	(pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag
	when target hook loop_unroll_adjust exists.
	* config/i386/x86-tune-costs.h: Update all processor costs
	with small_unroll_ninsns = 4 and small_unroll_factor = 2.

gcc/testsuite/ChangeLog:

	# Please ety/loop-1.c: Add additional option
	-mno-unroll-only-small-loops.
	* gcc.target/i386/pr86270.c: Add -mno-unroll-only-small-loops.
	* gcc.target/i386/pr93002.c: Likewise.

url:https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=071e428c24ee8c1ed062597a093708bba29509c9
2022-11-30 09:16:59 +08:00
liyancheng
6ef7dfd48c [RPM] Remove hard code 'openEuler' in spec file
Remove hard code 'openEuler' with %{vendor} in spec file
2022-11-28 20:26:50 +08:00
openeuler-ci-bot
c65c01bb4d
!11 为GCC-12软件包增加更多包名,文件的定制化选项
From: @chenxi-mao 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2022-11-23 08:30:17 +00:00
Chenxi Mao
0fce60c9dc Support program-suffix configuration
Add "--program-suffix" in configuration stage via binsuffix defination.

For example, if binsuffix is set to "-12" the binary will be compiled
as below format:
gcc-12
cpp-12
...

The binsuffix is set to %{nil} to make sure the files name are same
with previous release.

Signed-off-by: Chenxi Mao <chenxi.mao@suse.com>
2022-11-18 19:39:07 +08:00
Chenxi Mao
a63c1aaaf9 Customized package name
Current default package name is scl_prefix-*, some product need to
customized the package name under specific product policy.

After this change, if we set the configuration as below:
%global scl_prefix %{nil}
%global gcc_ver %{gcc_major}

gcc12/cpp12 will be the new package name.

Signed-off-by: Chenxi Mao <chenxi.mao@suse.com>
2022-11-18 14:21:01 +08:00
openeuler-ci-bot
b8a6ad7cad
!10 修复GCC-12中安装包中软链接文件失效的问题
From: @chenxi-mao 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2022-11-16 06:41:15 +00:00
Chenxi Mao
55cfa61071 Fix invalid link file issue
Below link file cannot find the target after installation:
find -xtype l | xargs ls -l --color
lrwxrwxrwx. 1 root root 19 Nov 14 19:09 ./libexec/getconf/default -> POSIX_V6_LP64_OFF64
lrwxrwxrwx. 1 root root 36 Nov 14 19:09 ./lib/gcc/x86_64-suse-linux/12/libatomic.so -> ../../../../lib64/libatomic.so.1.2.0
lrwxrwxrwx. 1 root root 35 Nov 14 19:09 ./lib/gcc/x86_64-suse-linux/12/libubsan.so -> ../../../../lib64/libubsan.so.1.0.0

To fix this issue, modify spec file as below:
1. Remove libatomic.so libubsan.so to its package
2. Change the ./libexec/getconf/default target path

Signed-off-by: Chenxi Mao <chenxi.mao@suse.com>
2022-11-16 12:54:53 +08:00
openeuler-ci-bot
e586fcabde
!8 Backport some SPR patches to GCC-12
From: @github-27907959 
Reviewed-by: @li-yancheng, @eastb233 
Signed-off-by: @eastb233
2022-11-16 02:28:02 +00:00
Cui,Lili
4dc52e5c19 [SPR] Add attribute hot judgement for INLINE_HINT_known_hot hint.
We set up INLINE_HINT_known_hot hint only when we have profile feedback,
now add function attribute judgement for it, when both caller and callee
have __attribute__((hot)), we will also set up INLINE_HINT_known_hot hint
for it.

With this patch applied,
ADL Multi-copy:    538.imagic_r  16.7%
ICX Multi-copy:    538.imagic_r  15.2%
CLX Multi-copy:    538.imagic_r  12.7%
Znver3 Multi-copy: 538.imagic_r  10.6%
Arm Multi-copy:    538.imagic_r  13.4%

gcc/ChangeLog

	* ipa-inline-analysis.cc (do_estimate_edge_time): Add function attribute
	judgement for INLINE_HINT_known_hot hint.

gcc/testsuite/ChangeLog:

	* gcc.dg/ipa/inlinehint-6.c: New test.

url:https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=1b9a5cc9ec08e9f239dd2096edcc447b7a72f64a
2022-11-16 09:35:15 +08:00
Cui,Lili
db41342444 [SPR] Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
gcc/ChangeLog:

	* config/i386/driver-i386.cc (host_detect_local_cpu):
	Move sapphirerapids out of AVX512_VP2INTERSECT.
	* config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
	* doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS

url: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=11c72f20d4d7ba1862a257cef05dc3a5e84a276d
2022-11-16 09:35:10 +08:00
Haochen Jiang
7954b2133e [SPR] i386: Add syscall to enable AMX for latest kernels
gcc/testsuite/ChangeLog:

	* gcc.target/i386/amx-check.h (request_perm_xtile_data):
	New function to check if AMX is usable and enable AMX.
	(main): Run test if AMX is usable.

url:https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5e377d21f1f345d8b157b9bc306e02bb9bd45e01
2022-11-16 09:34:27 +08:00
openeuler-ci-bot
96e2f15137
!7 [GCC-12] Upgrade GCC to 12.2.1 and change isl dependency from Source to BuildRequire
From: @li-yancheng 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2022-11-11 02:20:37 +00:00
liyancheng
d9127a6b3f [RPM] Change isl dependency from Source to BuildRequire 2022-11-10 12:00:55 +08:00
liyancheng
25e20dc298 [RPM] Upgrade GCC to 12.2.1 2022-11-02 10:28:23 +08:00
openeuler-ci-bot
c0dc71ee1b
!4 [RPM] delete bundled(*) Provides in case of conflict with default gcc
From: @eastb233 
Reviewed-by: @peilin-guo 
Signed-off-by: @peilin-guo
2022-08-25 12:39:16 +00:00
eastb233
cc00d8055c [RPM] delete bundled(*) Provides in case of conflict with default gcc 2022-08-25 19:58:11 +08:00
openeuler-ci-bot
c70b57b1b4
!3 [RPM] delete the Provides of lib.* files in rpm package
From: @eastb233 
Reviewed-by: @peilin-guo 
Signed-off-by: @peilin-guo
2022-08-25 03:15:56 +00:00
eastb233
822355ee81 [RPM] delete the Provides of lib.* files in rpm package 2022-08-24 19:46:35 +08:00
openeuler-ci-bot
f7ff7656f0
!2 gcc 12 多版本支持
From: @eastb233 
Reviewed-by: @peilin-guo 
Signed-off-by: @peilin-guo
2022-08-11 01:13:22 +00:00
eastb233
9f63bc52eb [Init] Initialize with gcc toolset 12.1.1
Initialize repo with multi-version gcc toolset.
2022-08-10 18:49:39 +08:00
openeuler-ci-bot
c494c665d2
Initial commit 2022-08-01 14:28:55 +00:00