62 Commits

Author SHA1 Message Date
Hongyu Wang
79c6c64bfe [Sync] 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:

	* gcc.dg/guality/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.
2023-08-11 11:25:18 +08:00
Cui,Lili
8cf4a6a8c3 [Sync] 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.
2023-08-11 11:24:59 +08:00
huang-xiaoquan
a84864a09a [SPEC] Enable libquadmath on kunpeng 2023-07-17 09:36:54 +08:00
huang-xiaoquan
199eae7853 [Sync] Enable libquadmath on kunpeng 2023-07-14 18:21:47 +08:00
huang-xiaoquan
375fae7b07 [Sync] Set version to 12.3.1 2023-07-11 23:10:33 +08:00
huang-xiaoquan
6b4316197e [Init] Init GCC 12.3.0 repository
Initialize the GCC 12.3.0 repository with gcc-12.3.0.tar.xz
and the gcc.spec.
2023-07-11 20:49:28 +08:00
huang-xiaoquan
1e715174c3 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20230522
2023-05-22 11:27:59 +08:00
huang-xiaoquan
725f6d7286 [SPEC] Enable isl and add --with-isl
(cherry picked from commit 3911186fc058bc0e03d9a2de6fa58e67f3f12ffa)
2023-04-13 11:46:19 +08:00
huang-xiaoquan
3901d8a9c1 [SPEC] Enable-languages uses variables
In enable-languages, switch non-default languages to use variables
2023-03-25 10:33:37 +08:00
huang-xiaoquan
430515b4b4 [Revert] Revert without pie option
Revert without pie option in OPT_LDFLAGS
2023-03-24 11:11:59 +08:00
huang-xiaoquan
3691b150f1 [RPM] Add pie and delete rpath in libgfortran
(cherry picked from commit d1eef1aca9003ee64cd3d50b9bdc566a1e3486ac)
2023-03-09 19:15:34 +08:00
huitailangzju
ff72fea4ac [Backport] State --sysroot option as validated once processed
[Reference] https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=8e86086bd33134467cc9c2a75327d1238dc71df9
State --sysroot option as validated once processed
2023-02-26 21:26:07 +08:00
liyancheng
15f0df8aa0 [Backport] libsanitizer: cherry-pick 9cf13067cb5088626ba7 from upstream
[Reference] https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=2701442d0cf6292f6624443c15813d6d1a3562fe
[sanitizer] Remove #include <linux/fs.h> to resolve
fsconfig_command/mount_attr conflict with glibc 2.36
2023-01-10 19:23:47 +08:00
xiongzhou4
1cf8937271 [Sync] Sync patch from openeuler/gcc.
(cherry picked from commit 312a836cd881325790aa341a08161bb5b7bfdd2a)
2023-01-06 10:51:31 +08:00
benniaobufeijiushiji
3df8980f1f [Sync] Sync patch from openeuler/gcc
Bugfix for loop-distribution, semi-relayout and MULL64.

(cherry picked from commit 206c98c7c8ceca539ffc063e8c09135fb5cf1248)
2023-01-06 10:47:41 +08:00
liyancheng
ef9a21e6f1 [RPM] Delete rpath in liblsan libasan libubsan libtsan
(cherry picked from commit e21ed8e40c1f9d306aed9e8b3007fdc37b292911)
2023-01-06 10:45:56 +08:00
liyancheng
c5632ba4ef [Sync] Sync patch from openeuler/gcc and fix wrong date
Sync patch from openeuler/gcc - 20221208 and fix wrong date

(cherry picked from commit 95b5a6d0f08784a98daa5650f0597617aa64a27c)
2023-01-06 10:41:26 +08:00
benniaobufeijiushiji
a41360f2fb [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20221201

(cherry picked from commit 5487e8942c694fd317f2cbf1662e9eaf33f2f612)
2022-12-01 11:56:57 +08:00
eastb233
3c6b009f79 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220916

(cherry picked from commit cee88578d148dee16a4afc86a51e60fafbe95755)
2022-09-23 15:28:25 +08:00
benniaobufeijiushiji
60d1565517 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220908

(cherry picked from commit 7709b3554c276ea273838e29fa6db318ca41f187)
2022-09-15 20:15:05 +08:00
benniaobufeijiushiji
b63e4c9f9a [Revert] Remove 2 patches
Remove 2 backport patches

(cherry picked from commit 55e6b3c41ff8ff81578079da330ae919f7a0b7fc)
2022-09-15 20:13:21 +08:00
benniaobufeijiushiji
1080ba4291 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220808

(cherry picked from commit 3d663928609a23db4fc8b4ba1039a53a943ac1ed)
2022-09-13 10:18:57 +08:00
zhaomengmeng
72209e0643 [SPEC] Add support for libgccjit. 2022-07-08 17:01:07 +08:00
liyancheng
f084694152 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220506
Including:
  [Backport] sanitizer: Fix asan against glibc 2.34 [PR100114]
2022-05-06 14:33:53 +08:00
benniaobufeijiushiji
8721999032 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220322

(cherry picked from commit f5f215d1e83483976021d60dd23ae5bd534420c8)
2022-03-23 10:14:32 +08:00
benniaobufeijiushiji
635a0d4206 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220302
2022-03-02 14:52:11 +08:00
benniaobufeijiushiji
fd39bb4457 [SPEC] Remove date info
Remove date in release info and some lib file names
2022-03-01 15:22:31 +08:00
benniaobufeijiushiji
9cc7c99d7c [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20220223
2022-02-23 20:55:42 +08:00
xiezhiheng
432628ced3 [SPEC] Delete gdb/auto-load folder ownership
Return the ownership of gdb/auto-load folder to gdb-headless.
2022-01-05 15:10:17 +08:00
eastb233
0363047aa1 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20210914
2021-09-14 11:33:04 +08:00
eastb233
9c6dd0cd80 [RISC-V] Adapts to the RISC-V backend construction
Adapts to the RISC-V backend construction.
2021-08-27 11:35:43 +08:00
eastb233
d397375062 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20210819
2021-08-19 19:25:23 +08:00
eastb233
5335700c03 [Sync] Sync patch from openeuler/gcc
Sync patch from openeuler/gcc - 20210728
2021-07-28 11:42:49 +08:00
eastb233
37f96cd1b2 [Init] Init GCC 10.3.0 repository
Init GCC 10.3.0 repository with gcc-10.3.0.tar.xz
and its gcc.spec.
2021-07-27 18:33:19 +08:00
eastb233
31e4bf31f8 [Revert] Revert modification for complete-struct-reorg.patch
- complete-struct-reorg.patch: Revert modification
2021-06-28 21:27:07 +08:00
eastb233
db04e724dd [Build] Optimize building time
- gcc.spec: Disable bootstrap to reduce building time
2021-05-28 21:14:28 +08:00
xiezhiheng
ae8eb7c877 [Upload patch] Upload patches to add new features
and fix bugs

- add-fp-model-options.patch: New file
- enable-simd-math.patch: Enable simd math library in C and Fortran
- fix-CTOR-vectorization.patch: New file
- fix-range-set-by-vectorization-on-niter-IVs.patch: New file
- medium-code-mode.patch: Fix bugs when used with fpic
- optabs-Dont-use-scalar-conversions-for-vectors.patch: New file
- PR92429-do-not-fold-when-updating.patch: New file
- redundant-loop-elimination.patch: Fix some programming specifications
- fix-ICE-in-vect.patch: New file
- Fix-type-mismatch-in-SLPed-constructors.patch: New file
- add-check-for-pressure-in-sche1.patch: New file
- revert-moutline-atomics.patch: New file
- fix-ICE-in-eliminate-stmt.patch: New file
- revise-type-before-build-MULT.patch: New file
- Simplify-X-C1-C2.patch: New file
- gcc.spec: Add new patches
2021-04-29 10:30:11 +08:00
xiezhiheng
8f5cb80497 Bugfix 2021-04-21 18:27:09 +08:00
liudabo
c7c0048ebf add SP and FS for x86 2021-03-15 14:54:17 +08:00
eastb233
cc3e134b7c Fix compilation error when building vsftpd and sleef
- Handle-POLY_INT_CSTs-in-declare_return_value.patch: New file
- Handle-POLY_INT_CST-in-copy_reference_ops_from_ref.patch: New file
- fix-strncpy-inline-warning.patch: New file
2021-02-07 09:38:04 +08:00
eastb233
93ebb71f07 [C++] Fix interaction between aka changes and DR1558 (PR92206)
- Fix-interaction-between-aka-changes-and-DR1558.patch: New file
2021-01-15 11:08:23 +08:00
eastb233
a3577f8991 Pack external head file in aarch64 port
- gcc.spec: Pack arm_bf16.h and arm_sve.h in aarch64 port
2021-01-04 16:15:42 +08:00
eastb233
01e0ec8ea6 Upload GCC feature and bugfix patches.
- avoid-cycling-on-vertain-subreg-reloads.patch: Add patch source comment
- change-gcc-BASE-VER.patch: Likewise
- dont-generate-IF_THEN_ELSE.patch: Likewise
- fix-ICE-in-compute_live_loop_exits.patch: Likewise
- fix-ICE-in-eliminate_stmt.patch: Likewise
- fix-ICE-in-vect_create_epilog_for_reduction.patch: Likewise
- fix-ICE-in-vect_stmt_to_vectorize.patch: Likewise
- fix-ICE-in-verify_ssa.patch: Likewise
- fix-ICE-when-vectorizing-nested-cycles.patch: Likewise
- fix-cost-of-plus.patch: Likewise
- ipa-const-prop-self-recursion-bugfix.patch: Likewise
- simplify-removing-subregs.patch: Likewise
- medium-code-mode.patch: Bugfix
- fix-when-peeling-for-alignment.patch: Move to ...
- fix-PR-92351-When-peeling-for-alignment.patch: ... this
- AArch64-Fix-constraints-for-CPY-M.patch: New file
- Apply-maximum-nunits-for-BB-SLP.patch: New file
- Fix-EXTRACT_LAST_REDUCTION-segfault.patch: New file
- Fix-up-push_partial_def-little-endian-bitfield.patch: New file
- Fix-zero-masking-for-vcvtps2ph.patch: New file
- IRA-Handle-fully-tied-destinations.patch: New file
- SLP-VECT-Add-check-to-fix-96837.patch: New file
- aarch64-Fix-ash-lr-lshr-mode-3-expanders.patch: New file
- aarch64-Fix-bf16-and-matrix-g++-gfortran.patch: New file
- aarch64-Fix-mismatched-SVE-predicate-modes.patch: New file
- aarch64-fix-sve-acle-error.patch: New file
- adjust-vector-cost-and-move-EXTRACT_LAST_REDUCTION-costing.patch: New file
- bf16-and-matrix-characteristic.patch: New file
- fix-ICE-IPA-compare-VRP-types.patch: New file
- fix-ICE-in-affine-combination.patch: New file
- fix-ICE-in-pass-vect.patch: New file
- fix-ICE-in-vect_update_misalignment_for_peel.patch: New file
- fix-addlosymdi-ICE-in-pass-reload.patch: New file
- fix-an-ICE-in-vect_recog_mask_conversion_pattern.patch: New file
- fix-avx512vl-vcvttpd2dq-2-fail.patch: New file
- fix-issue499-add-nop-convert.patch: New file
- fix-issue604-ldist-dependency-fixup.patch: New file
- modulo-sched-Carefully-process-loop-counter-initiali.patch: New file
- re-PR-target-91124-gcc.target-i386-avx512vl-vpshldvd.patch: New file
- reduction-paths-with-unhandled-live-stmt.patch: New file
- redundant-loop-elimination.patch: New file
- sccvn-Improve-handling-of-load-masked-with-integer.patch: New file
- speed-up-DDG-analysis-and-fix-bootstrap-compare-debug.patch: New file
- store-merging-Consider-also-overlapping-stores-earlier.patch: New file
- tree-optimization-96920-another-ICE-when-vectorizing.patch: New file
- tree-optimization-97812-fix-range-query-in-VRP-asser.patch: New file
- vectorizable-comparison-Swap-operands-only-once.patch: New file
- x86-Fix-bf16-and-matrix.patch: New file
2020-12-30 09:54:10 +08:00
eastb233
fe95502b07 Add URL and Source0 url 2020-10-20 09:45:39 +08:00
eastb233
9cba9b0c22 FIO bugfix 2020-09-22 23:16:39 +08:00
eastb233
ad93c37c0f Delete GCC pkgversion 2020-09-22 21:05:36 +08:00
eastb233
6d5481c8fc Push bugfix patches - part 2 2020-09-21 19:40:05 +08:00
eastb233
6544004a2b Push bugfix patches 2020-09-15 20:11:16 +08:00
hht8
66ecc8ad2c revert patches to fix build errors 2020-09-15 02:14:58 +08:00
eastb233
b9bd16e197 Push bugfix patches 2020-09-12 12:07:23 +08:00