sys-devel/gcc: Sync with Gentoo

It's from Gentoo commit 04bdadefc60796a3179e475c6a5293db1954d2d5.
This commit is contained in:
Flatcar Buildbot 2025-03-17 07:11:43 +00:00 committed by Krzesimir Nowak
parent 5f35209488
commit fc77e09663
12 changed files with 260 additions and 21 deletions

View File

@ -5,30 +5,33 @@ DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0e
DIST gcc-11.5.0-patches-1.tar.xz 13664 BLAKE2B 64fd9c2d074aca58ecd8c0035ccf2d2b84d83b93b46367f3e068a95651a094a07b9aad7635bb9c7d2e5ea20dc5957bc19217ca32cbd6cf6f0344f4a3d943a60a SHA512 55828751008575fe89760a224477ee9e5132c0780fbe232e0b80b16ecd9854f85ae54bdcd216ae04de67f3a8b417ee2aad4f8bf9d9df5318613d3efb55bd92df
DIST gcc-11.5.0.tar.xz 82399864 BLAKE2B f4a61faad32aac9e9cb553c1a1a011df0a057f6e2cac92a13cc7e285d08191dd4a117f41a8faac2359c0e2a16f954c7fef354dda9df8c63bff1c5cefda82602c SHA512 88f17d5a5e69eeb53aaf0a9bc9daab1c4e501d145b388c5485ebeb2cc36178fbb2d3e49ebef4a8c007a05e88471a06b97cf9b08870478249f77fbfa3d4abd9a8
DIST gcc-12-20241219.tar.xz 79920016 BLAKE2B 71044352515f33eaf0bcc64cc6eacdecb8b7b1dbca6d8836b629f76e60320f5090178ff37b6804fbda0913c0f55afca37588647974fd72e9961edd338ccf6ffb SHA512 e0c08366f392083feb1ae242242e9bd335681234808ed44d4e75afe157be2814bef321d2327186d217f38bbb6176706e1258228904d31fdb3bb37c8e245dacb0
DIST gcc-12-20250220.tar.xz 79919964 BLAKE2B 01ac8e2865b46d8dde41b73b5b5dd8c6bd533dc1ecff9a05455ad10fc125ad1ba4bb15de637ca639a82057fbd354a6225c0dcd0144c313b91833aa712f2e133a SHA512 0ba3b3b1eca1a62da5f0f0238c5980bcb6f2efbc1e0dffefd04b107bc48d4dfaf72cc9037689d7725a4aa9e4478d0b43339eccfea718bb45a113aef14604d215
DIST gcc-12-20250227.tar.xz 79915940 BLAKE2B 0adb19847cb3f317316549f657434654b9923806366a4b95e496effea9c07995b7d3de65c40cc2f62ba1e87cfb0f8cd8a1a833284042fdc5e6fce2bd7e7e9543 SHA512 d01cad1771762f5b56c783d6a3b39415be1c7619229b5ff056fe40ef0bf821c67a2d1a2272c2227a44f92825582579625352d19e2342d11f76a079556dae0ae8
DIST gcc-12-20250306.tar.xz 79914120 BLAKE2B 52744beac63301b3e0f2564efc82384f6452cd05bb2543f3c421d14fdfc4eed107d25d24183e9d7045d33f1e9f14741b8cb8580bb0c7e8cda8b3e5b4dd5e0d4e SHA512 585aeab071fda880a6ad5c9e0e766164683faf4e84ad63764ad7dc0420fe5e355452338234f76f6f2cb2b25f4b39b059658323f53594c2c7da3db6631c69a14c
DIST gcc-12-20250313.tar.xz 79917528 BLAKE2B 2ce76d12f0d90d5728df2e14ece3c13e781005eac43dd10357602efc1dd3a9c939fee7640c1baae643df88354905bdbcd314d6bb7c7f384df9148074d8448afc SHA512 465a9923c8ebef98cf4590096afd44468993116cf38ba1e5bbbc70dfb57ec1716ad55a544dc12444011663dc8cd3c9a7c19326d69dfcea181d07783a0aceb73f
DIST gcc-12.4.0-musl-patches-1.tar.xz 3068 BLAKE2B e5e39c24934072ea89e4467d0dc5196f3dadfb5ffba0c856d051648a2fbf57d434a57e95227cdf2b8cea45f0f5555aec2bc372d2f6cb0b69efd87831d248d364 SHA512 b9db204845a25be043d76cae826d42eebeeb4f9be7c3049af6fe7601a552bedfd24731156a6a36b4b5e2e2af656a589a5c556d2b0b3ded33ba290a773ee87c62
DIST gcc-12.4.0-patches-1.tar.xz 15576 BLAKE2B 98c29888de7701b365be7ac9062f0cee3340d58c85485e26f0d02f1483ec64cc9c10651488a4fd937551afe30f4e19777e6766871a724ae3ba6c290c16f4fdf1 SHA512 3f7c5d36e56e07ea9dd143a5d13342a6c1ccbf0643abd1c0bcbfb46bb7c7b1308aef6e3e882031c9c191610f01af906b19be5aa2b139cf617614f46e97463aec
DIST gcc-12.4.0-patches-2.tar.xz 14876 BLAKE2B 6bf5abbb2abba4b9fe9fa153ac4112fe5f563e97cd4e1b885ccd0d88abf1124fa91f20d6be972e2242410447be73bca60014785f8551b8087ed0d4cc3e868225 SHA512 dfd5f02d4c1076fad4ee998b2f620171dd3eb65a1160312def9dae89b18327a06db853f569e0e3c049e5ab06c61488bb6faecec52bafe737fddeb43628c54a1f
DIST gcc-12.4.0.tar.xz 83377372 BLAKE2B 0d5aa9995bf53fa2dc976a846240cfb8fafd125ad6c54f45dc9d770215eae3e9ea0db82a9a4f79c51b4d5f8461a1d730c17db6841bc31bd96dba11d9ed7544ae SHA512 5bd29402cad2deb5d9388d0236c7146414d77e5b8d5f1c6c941c7a1f47691c3389f08656d5f6e8e2d6717bf2c81f018d326f632fb468f42925b40bd217fc4853
DIST gcc-13-20241220.tar.xz 84504500 BLAKE2B 60d6dcdcafa36399a0c0de7fef3a4eb4ca8e0b6780cd31c9eace2965c53115205bf64e8247b833a4375c1e3ad2d94820b5bdc97a4689be95d8ab55a676afa689 SHA512 10fe009dc3b8872b24350e4fb999f71b848bd5a03e48e8292f76e6eca3dbdef8383a3b13b813aada983ebdbe3ecab1642961b3210cd1e0063a86655a44493017
DIST gcc-13-20250221.tar.xz 84535136 BLAKE2B 8f56681b291231c7922680e77fa29f84510c37911713635cd3806a366fcc74f708c3c3dd6020cfcaf6a6adb84099a83e8de455ba201281264e9eff916c4b0c36 SHA512 4527db4becbe2a49c42e82fd817089cc4b861693560829350d0787685ccad0cd6c6ced2ec9a7ce538589f7b431c0e118dd2bc157435328065941e98e3facce96
DIST gcc-13-20250301.tar.xz 84525780 BLAKE2B c366f4de63b7956abb1bf2d1039acdf90c7a801adbb2793e4c199b0f743d143327aac9c2b078991f802da758ed4326dd913d9f60aec4fc471eff9af72f781a8e SHA512 075bfb3c5aeaf1c9bf7ab69ef117fcc1fd3ce1042edc9442d95df717e622c2ea9cfabbabf8be5eda32b3cf115d7d3e73907fd577a69f0beb6895f7ec2c5fc813
DIST gcc-13-20250307.tar.xz 84518416 BLAKE2B 2afe5b57ab2d6af1800c3c74ab629e9033ec4368471d103377958d5225912ffa259f1fbb9d04804f817df9527b7659913ff762b40147a40f65eaa1caaef2c4f5 SHA512 c2a63fcab70db6a5123347897a47a60d7423723e3e202e4c56c77f50caeb460b629d7fa3af9102467c73271273e7018fc431f2254993b039d5270ba093c7a865
DIST gcc-13-20250314.tar.xz 84540844 BLAKE2B 7e032e0fafeb9eb47f8acb387d49d024fb44ba54d782c0afce26b0751b099208212a5a977d3c027a9c5c0efc3d3a5ed99ad98e56b16f2cabf234cc8bca89e6de SHA512 51320889e0e959b763bdcb1334d38aff48ba6099e6bcc75055633d81a17e1f59c71e81597ec391eab95f86614b7b62cff37aa00827c61d949d6596f9ba36fb9c
DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69
DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c
DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7b370729dd203bda57d89c107edd657eeddc2fb1e69ea15c7b0323b961f46516c7f4af89a3ccf7fea84701be2 SHA512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2
DIST gcc-13.3.0-patches-2.tar.xz 44440 BLAKE2B ebde73f6c3cd1a5fdc5bbce36414a59dda0925cba9d422d3689fc9c14fece44ee2391982a674411aa99bf47ffd49200f3ce51cc908beb8298adfff78e709a84c SHA512 eb56e0d7e69b5c3cca21f4cbff21c1204cf64ede7e66d689f45cf5ff37de8a59f24eb1f4b30d9c4222fd4126654fe4ffc146851f504761014995553c1202e8fd
DIST gcc-14-20241221.tar.xz 88198252 BLAKE2B 7491c2e1c8885e201859143bdf5cae95af4c0db77709ec7d761ad535df30042f5deb8488ba7c508de3673e4b0f2af1de8d17476f39cd47b745ddccec6a9e4470 SHA512 91fe1e1d1f8e8fad64930a2eadf942a542bd42f841fceb49f475bccac00f04692b8cd38821ea9ee05f78b5c51001d8bd39df5f71f3a3d89aab8980019cea9be8
DIST gcc-14-20250222.tar.xz 88217556 BLAKE2B 38023332b91bf6ff50d06b0967f7c4ed2f511ffd6cf29cc09a429572a2a69db39f3e6e0e0067752012d105abbbd64c17d21f1c6086e7754c9e90fa94343384f9 SHA512 517abef61c8a45a19fc3bc5aec276a82bed3e4d3e1cd2f468c9a5e92b8b727bf90c5914507b1c5b58721ee29dc6e4756184bc6a1ebef7b4800ff2e08762e5fe4
DIST gcc-14-20250301.tar.xz 88230928 BLAKE2B 2b65e7cccbf431a74df73adac53995873e78240d7abd97e9c9c576806c389b3c1abb6d47710a25a26f2ee399de750a07c3fb7916a580875d08a3a83354d89c1c SHA512 6b2afe19ce95a595307ae10b89054927116d33b499f1ef8233936d719271c04cb8f66890068ef2252c59ab0276dd0e6210990cb88abdfb4965818c25949f431e
DIST gcc-14-20250308.tar.xz 88224372 BLAKE2B d5b76b553cc48aa16a4d00fb1ba232856a52deef32049a10b9d2ffe7a010a5afbc782ad1ebec0a2546ec74703e0afabea936d81180b19ce8c4786d07b0495bf2 SHA512 900a43be42471e6d9484dbfdc972065fcd342908d0115f28edb35ff371e3f4ae0e219e99a4ecd52bcd23a156b3df2da80d508e2236cbb7495ae3df655154dc9c
DIST gcc-14-20250315.tar.xz 88211476 BLAKE2B e99ef61416fc5fdec4e2c65257bf36e8d2e8f8a61e558dd989682e53c9d33253aca897834f0fd7060b1055f0cb7accd88a41db96e03d7f924d76cbd51dd8c1a8 SHA512 2c288ff52d730e2a8bb4600519cc2ddb1de140377c7dccefa7f268032b86c4f51b87f563abc0d6393bb7a2d7de5d0d2d6f7105869e9c998ae33479dcec7b0f39
DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25
DIST gcc-14.2.0-patches-7.tar.xz 14244 BLAKE2B 11236e91e1fe83fec8ffaa40ec0cdd4b52a00a951e9aa9a7a0a932b234b8f1a9603333a7ccf55859f4ef53dd4d8ad1fd5c1d2514b6e45fce5b86bb58622a0ecc SHA512 5a4d86d943e31fa068b5a784c0132bd83c23243dcb3cf972557a42e004469a415e1b3185f31b1bb36f916594d475f266a2fda031a414e4a15e0bbfe471269eee
DIST gcc-14.2.0-patches-8.tar.xz 14540 BLAKE2B 09f66035343d4cab694b8ab382170f8e2d546ddffedf3477f26edbd6a798ddf94294f569c2661729d40088d590bc17a4eb651710d8d9f66f33703734a1a82b67 SHA512 7a9a2724ef8db3c57b033d90751192969c16e5eaa8f4777b7f16470222ff3a18771b461bd89feaad701e7f0d573b883b487981588129933c732fb76117728b86
DIST gcc-15-20250216.tar.xz 91404792 BLAKE2B 1a007a432c7f7ac6ba0169caf2561e26267ae5c75403ecd52227dbee255eff4c1bca5db9d6ce2e772ee357dc06e648d7ebfb3629117b13d48343a474a17901c6 SHA512 8dcb3968e157a2cb6a06e4ba76a0fd95936025d99f48333aacc554f347d19df8e6b9a0c9c454acd730a5608122ff4c12a712ccdf09919f8e310cf6688c00df84
DIST gcc-15-20250223.tar.xz 91424896 BLAKE2B 0527c35ef3e24a9defe99bdccc39ba4c839cd867428f5424e3f8089381b3c3f68407bc2e8ddb9db72ea4860deed558b1ae584a41fa0623d127a055e9227d2216 SHA512 7e3296bcf7ed7868a5d4540525143995d6fd7d7144e223ae3666e3e4e716eef6ef1ea0389527df6d410442fc998ad5db6e07f52582819dfeadb0cba2d87d3208
DIST gcc-15-20250302.tar.xz 91196748 BLAKE2B d6eef1753179f813ef1908c4ddc56144161abde36e602930bf4e53cccc7c352ee882bfa376528f20c34aa3544b1cb703c0fa062bb67245b0a3499125d4dd2bfc SHA512 407857cfe454cfa690eab0b01183811c7ef618921b64152f322e67bd27b708e57ee3de57274827340e387c5f906643bf2dc362b541d4d08f6a7283bc3da8bcb3
DIST gcc-15-20250309.tar.xz 90853908 BLAKE2B 403b9b3a2eb1ed5d23558eff000784b8b6345c419b9050d68e38343a30ceb58c7ddaebb44c345668c98e19f66c1dd1edcc22a3a911754cb85f8fbfc6559ba3f1 SHA512 b20760997cf8111429524ca1400e1a23c328e303a8b4652cd859dcc3dc3e2dd11c72cf9e1b744c88374ebdb9fbb90f217ffe892eca24e581b781e2741b177d04
DIST gcc-15-20250316.tar.xz 91424124 BLAKE2B 4a33b98d04961a8dd2bdc2890d0e1547902fc6bba63cea1b995bc82c6ef1b384a0843792961cd77162cae948808d41c2d5758f526371bbc501143c575e683a10 SHA512 5bd5a524b76a523a1979054bebc10ddbe3dce4c1f905b123dc8da983506c4cefb34cc035234845c021d4f7b3110dd5a8383da9c134af0bc54a154a0cdac8eea5
DIST gcc-15.0.0-musl-patches-2.tar.xz 3076 BLAKE2B 0073248fe4f7dd827980559017b5aa1fb5c4c46acc9ad5c410dc152fd1e44966d3066bf7152338573cb45b1c36027de5f0c519abd414d97a37bccef07f6a5281 SHA512 295f1a669020bbe2874e9b03afd46b5d083073b276fca3543f3767a2d74f35df81cf0a67abad50c200cf7a3af36ec98ff9977cb7d5c19f334af7d3bb1926a3de
DIST gcc-15.0.0-patches-46.tar.xz 22212 BLAKE2B 159b2693ded0b1dbddd271ca56d7f6db3569a8f79155521737b968ad131eee2730d3441dacef821b9dcd31b17ca0bf16a7b24001e7cb4ae1b36c55750184a3f6 SHA512 26d293ee368c75570e606949480feed18a69baad4687beaf2f50629bfc72d542bbce4b1cb6580fe7e578409a108891dc9762bb15c53b611434c83db5dd83d695
DIST gcc-15.0.0-patches-47.tar.xz 16456 BLAKE2B c1b60eb5b0717f74ca528462e7cddfc6c2386cc122e8d0394152e974e092ae7c29bcfd96e7dbfde85aaa9194950dd867aef59fea17f1be1bb0f9f30eb192cd3f SHA512 c2f74c561eaa5b158de44b251116a923f3e81e5c5b6126d7cb387211c83697813fc22695ae36d245844e3e0dd2a6076fd710fbbed39965a151209a34812ba752
DIST gcc-8.5.0-patches-4.tar.xz 18616 BLAKE2B 7594cbaea5daecf1a0b3d526c06aeba0a84c6da66aee2e105a51fda6be8d30a37ccc3814281b284a4582d892a1d556bca063551584edfc2525bed8ea5b6888e7 SHA512 1aa5742c361186637e7855f06feb1a4547e7d4d5de6e51f3d049e0ef3c19e2eff179465f52781739f59422035b7f8e4c0efa3844849f920f3c96acfdc37ca6a6
DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8
DIST gcc-9.5.0-patches-2.tar.xz 14324 BLAKE2B 1d3bf3e673108ad2fcdcb86daefb4603d1c9f6aa815e34d1591054d466b76d6f50cce124ab4760528c4951ea16eb00888a3e6485417f81ebf250548732df4a8e SHA512 a6d6f650aaf0bd193a17ac279649f0544a282cea295824384c59341c3000eac4b574b60e00dd427585d928f9768166abf85168b47772132790ad98854acacbbf

View File

@ -0,0 +1,99 @@
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f22e89167b3abfbf6d67f42fc4d689d8ffdc1810
https://gcc.gnu.org/PR119067
From f22e89167b3abfbf6d67f42fc4d689d8ffdc1810 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Mon, 3 Mar 2025 09:54:15 +0100
Subject: [PATCH] ipa/119067 - bogus TYPE_PRECISION check on VECTOR_TYPE
odr_types_equivalent_p can end up using TYPE_PRECISION on vector
types which is a no-go. The following instead uses TYPE_VECTOR_SUBPARTS
for vector types so we also end up comparing the number of vector elements.
PR ipa/119067
* ipa-devirt.cc (odr_types_equivalent_p): Check
TYPE_VECTOR_SUBPARTS for vectors.
* g++.dg/lto/pr119067_0.C: New testcase.
* g++.dg/lto/pr119067_1.C: Likewise.
---
gcc/ipa-devirt.cc | 10 +++++++++-
gcc/testsuite/g++.dg/lto/pr119067_0.C | 22 ++++++++++++++++++++++
gcc/testsuite/g++.dg/lto/pr119067_1.C | 10 ++++++++++
3 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/g++.dg/lto/pr119067_0.C
create mode 100644 gcc/testsuite/g++.dg/lto/pr119067_1.C
diff --git a/gcc/ipa-devirt.cc b/gcc/ipa-devirt.cc
index c31658f57ef2..532e25e87c60 100644
--- a/gcc/ipa-devirt.cc
+++ b/gcc/ipa-devirt.cc
@@ -1259,13 +1259,21 @@ odr_types_equivalent_p (tree t1, tree t2, bool warn, bool *warned,
|| TREE_CODE (t1) == OFFSET_TYPE
|| POINTER_TYPE_P (t1))
{
- if (TYPE_PRECISION (t1) != TYPE_PRECISION (t2))
+ if (!VECTOR_TYPE_P (t1) && TYPE_PRECISION (t1) != TYPE_PRECISION (t2))
{
warn_odr (t1, t2, NULL, NULL, warn, warned,
G_("a type with different precision is defined "
"in another translation unit"));
return false;
}
+ if (VECTOR_TYPE_P (t1)
+ && maybe_ne (TYPE_VECTOR_SUBPARTS (t1), TYPE_VECTOR_SUBPARTS (t2)))
+ {
+ warn_odr (t1, t2, NULL, NULL, warn, warned,
+ G_("a vector type with different number of elements "
+ "is defined in another translation unit"));
+ return false;
+ }
if (TYPE_UNSIGNED (t1) != TYPE_UNSIGNED (t2))
{
warn_odr (t1, t2, NULL, NULL, warn, warned,
diff --git a/gcc/testsuite/g++.dg/lto/pr119067_0.C b/gcc/testsuite/g++.dg/lto/pr119067_0.C
new file mode 100644
index 000000000000..e0f813ceffed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr119067_0.C
@@ -0,0 +1,22 @@
+/* { dg-lto-do link } */
+/* { dg-skip-if "" { ! { x86_64-*-* i?86-*-* } } } */
+/* { dg-require-effective-target avx2 } */
+/* { dg-require-effective-target shared } */
+/* { dg-lto-options { { -O2 -fPIC -flto } } } */
+/* { dg-extra-ld-options { -shared } } */
+
+#pragma GCC push_options
+#pragma GCC target("avx2")
+typedef char __v32qi __attribute__ ((__vector_size__ (32)));
+struct ff
+{
+ __v32qi t;
+};
+__v32qi g(struct ff a);
+
+__v32qi h(__v32qi a)
+{
+ struct ff t = {a};
+ return g(t);
+}
+#pragma GCC pop_options
diff --git a/gcc/testsuite/g++.dg/lto/pr119067_1.C b/gcc/testsuite/g++.dg/lto/pr119067_1.C
new file mode 100644
index 000000000000..d8e2935fa24d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr119067_1.C
@@ -0,0 +1,10 @@
+/* { dg-options "-mavx2" } */
+
+typedef char __v32qi __attribute__ ((__vector_size__ (32)));
+struct ff
+{
+ __v32qi t;
+};
+__v32qi g(struct ff a) {
+ return a.t;
+}
--
2.43.5

View File

@ -0,0 +1,58 @@
https://inbox.sourceware.org/gcc-patches/ri6bjui45il.fsf@virgil.suse.cz/
From 833d679c3c071b78dfb22015fe03d2cecfd650ec Mon Sep 17 00:00:00 2001
Message-ID: <833d679c3c071b78dfb22015fe03d2cecfd650ec.1741019831.git.sam@gentoo.org>
From: Martin Jambor <mjambor@suse.cz>
Date: Mon, 3 Mar 2025 14:18:10 +0100
Subject: [PATCH] ipa-cp: Avoid ICE when redistributing nodes among edges to
recursive clones (PR 118318)
Hi,
PR 118318 reported an ICE during PGO build of Firefox when IPA-CP, in
the final stages of update_counts_for_self_gen_clones where it
attempts to guess how to distribute profile count among clones created
for recursive edges and the various edges that are created in the
process. If one such edge has profile count of kind GUESSED_GLOBAL0,
the compatibility check in the operator+ will lead to an ICE. After
discussing the situation with Honza, we concluded that there is little
more we can do other than check for this situation before touching the
edge count, so this is what this patch does.
Bootstrapped and LTO-profile-bootstrapped and tested on x86_64. OK for
master? (Should I then backport this to active release branches? I
guess it would make sense.)
Thanks,
Martin
gcc/ChangeLog:
2025-02-28 Martin Jambor <mjambor@suse.cz>
PR ipa/118318
* ipa-cp.cc (adjust_clone_incoming_counts): Add a compatible_p check.
---
gcc/ipa-cp.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc
index 3c994f24f540..264568989a96 100644
--- a/gcc/ipa-cp.cc
+++ b/gcc/ipa-cp.cc
@@ -4638,7 +4638,8 @@ adjust_clone_incoming_counts (cgraph_node *node,
cs->count = cs->count.combine_with_ipa_count (sum);
}
else if (!desc->processed_edges->contains (cs)
- && cs->caller->clone_of == desc->orig)
+ && cs->caller->clone_of == desc->orig
+ && cs->count.compatible_p (desc->count))
{
cs->count += desc->count;
if (dump_file)
base-commit: f1c30c6213fb228f1e8b5973d10c868b834a4acd
--
2.48.1

View File

@ -0,0 +1,65 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
TOOLCHAIN_HAS_TESTS=1
PATCH_GCC_VER="12.4.0"
PATCH_VER="2"
MUSL_VER="1"
MUSL_GCC_VER="12.4.0"
PYTHON_COMPAT=( python3_{10..12} )
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -5,13 +5,25 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
TOOLCHAIN_HAS_TESTS=1
PATCH_GCC_VER="15.0.0"
PATCH_VER="46"
PATCH_GCC_VER="13.3.0"
MUSL_GCC_VER="13.2.0"
PATCH_VER="2"
MUSL_VER="2"
MUSL_GCC_VER="15.0.0"
PYTHON_COMPAT=( python3_{10..12} )
if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
@ -24,7 +36,7 @@ inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=master
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
@ -48,6 +60,7 @@ src_prepare() {
done
toolchain_src_prepare
eapply "${FILESDIR}"/${P}-c-Fix-range-for-with-PMFs-PR118923.patch
eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
eapply_user
}

View File

@ -5,10 +5,10 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
TOOLCHAIN_HAS_TESTS=1
PATCH_GCC_VER="15.0.0"
PATCH_VER="46"
MUSL_VER="2"
MUSL_GCC_VER="15.0.0"
PATCH_GCC_VER="14.2.0"
PATCH_VER="8"
MUSL_VER="1"
MUSL_GCC_VER="14.1.0"
PYTHON_COMPAT=( python3_{10..12} )
if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
@ -24,10 +24,10 @@ inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=master
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
# m68k doesnt build (ICE, bug 932733)
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
@ -49,5 +49,6 @@ src_prepare() {
toolchain_src_prepare
eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
eapply_user
}

View File

@ -6,7 +6,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
TOOLCHAIN_HAS_TESTS=1
PATCH_GCC_VER="15.0.0"
PATCH_VER="46"
PATCH_VER="47"
MUSL_VER="2"
MUSL_GCC_VER="15.0.0"
PYTHON_COMPAT=( python3_{10..12} )
@ -48,6 +48,5 @@ src_prepare() {
done
toolchain_src_prepare
eapply_user
}

View File

@ -34,6 +34,7 @@
On arm64, GCC will set -mbranch-protection=standard by default
when building software.
</flag>
<flag name="cobol">Enable support for the COBOL programming language</flag>
<flag name="d">Enable support for the D programming language</flag>
<flag name="debug">
Enables GCC's 'checking' facility via --enable-checking=yes,extra,rtl.