Hi Xionghu, Yes, I'm pretty sure both of the fixes you mentioned are applicable to GCC 10. I'm not sure what the bar is for backporting fixes. Jan, can you comment on that? The fixes that Xionghu mentioned are:
Fix indirect call inlining with AutoFDO https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=285aa6895d479bed8e72ad363290846645b6faa0 AutoFDO: Don't try to promote indirect calls that result in recursive direct calls https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ba125745d9e9fe90a18a2af8701b3269c5fdd468 Thanks, Eugene -----Original Message----- From: Xionghu Luo <yinyuefen...@gmail.com> Sent: Tuesday, July 26, 2022 6:41 PM To: Eugene Rozenfeld <eugene.rozenf...@microsoft.com>; Andi Kleen <a...@linux.intel.com>; Joseph Myers <jos...@codesourcery.com>; Jan Hubicka <hubi...@ucw.cz>; gcc <gcc@gcc.gnu.org> Subject: [EXTERNAL] Re: State of AutoFDO in GCC [You don't often get email from yinyuefen...@gmail.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] On 2022/7/27 09:31, Xionghu Luo wrote: > > > On 2022/7/27 04:12, Eugene Rozenfeld via Gcc wrote: >> Hello GCC community. >> >> I started this thread on the state of AutoFDO in GCC more than a year >> ago. Here is the first message in the thread: >> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc >> .gnu.org%2Fpipermail%2Fgcc%2F2021-April%2F235860.html&data=05%7C0 >> 1%7CEugene.Rozenfeld%40microsoft.com%7Ccda1f6374c584732950e08da6f7126 >> 83%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637944829019804556%7C >> Unknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1 >> haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=t%2B94vOYKb8SDZ9i86Fnin >> iYXt7LTGXqbrbftH1TVqEs%3D&reserved=0 >> >> Since then I committed a number of patches to revive AutoFDO in GCC: >> >> Fix a typo in an AutoFDO error >> string<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2 >> F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3D23691ddd3aa >> 3ffe55892b2bff54f9a15a89de2b4&data=05%7C01%7CEugene.Rozenfeld%40m >> icrosoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91a >> b2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8ey >> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C30 >> 00%7C%7C%7C&sdata=4WD%2FgKxeXEFz7V6pcqDsYxvAbSOP3ldxXHb%2FoMxV5kc >> %3D&reserved=0> >> >> Update gen_autofdo_event.py and >> gcc-auto-profile.<https://nam06.safelinks.protection.outlook.com/?url >> =https%3A%2F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3D >> 01d402c5e0ac1ddf5618bbe316b50067625fda46&data=05%7C01%7CEugene.Ro >> zenfeld%40microsoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf >> 86f141af91ab2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWF >> pbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6 >> Mn0%3D%7C3000%7C%7C%7C&sdata=TA%2FhV%2FKsRF3MUZmUL%2FpTWbESdx03VK >> PIudXrrBjAMvQ%3D&reserved=0> >> >> Fixes for AutoFDO >> tests<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F >> %2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3Df9ad3d5339fa >> aaed6e15a7b27d90fbc66eb72f37&data=05%7C01%7CEugene.Rozenfeld%40mi >> crosoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91ab >> 2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8eyJ >> WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C300 >> 0%7C%7C%7C&sdata=AvWCTytUxlcXq%2BpjkWJmhkmV0nH%2Fn0CzC4alU9XA9%2F >> 4%3D&reserved=0> >> >> Fix indir-call-prof-2.c with >> AutoFDO<https://nam06.safelinks.protection.outlook.com/?url=https%3A% >> 2F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3D0ed093c7c3 >> f755bc1cd80e5186abeb2f5c50ee0c&data=05%7C01%7CEugene.Rozenfeld%40 >> microsoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91 >> ab2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8e >> yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 >> 000%7C%7C%7C&sdata=3dlTtTfe4XOOm6BEy5YLWG0l3WlQdfbCyFiXs3Q7W1I%3D >> &reserved=0> >> >> Fixes for AutoFDO >> testing<https://nam06.safelinks.protection.outlook.com/?url=https%3A% >> 2F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3D9265b37853 >> 1391498ec1727f67a45da72a6c07e9&data=05%7C01%7CEugene.Rozenfeld%40 >> microsoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91 >> ab2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8e >> yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 >> 000%7C%7C%7C&sdata=ZWSIQ0jb6t2DZQpDb%2F7e5FqKM6KKskM%2FAYzLpxbUkp >> 4%3D&reserved=0> >> >> Fix indirect call inlining with >> AutoFDO<https://nam06.safelinks.protection.outlook.com/?url=https%3A% >> 2F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3D285aa6895d >> 479bed8e72ad363290846645b6faa0&data=05%7C01%7CEugene.Rozenfeld%40 >> microsoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91 >> ab2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8e >> yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 >> 000%7C%7C%7C&sdata=W8kTuSjC188BYd3fkZvCK5UxWrYutosB%2FeZnWbmAbPI% >> 3D&reserved=0> >> > > This "indirect call inlining with AutoFDO" patch need to be backported > to at least gcc-10 as it will caused stack overflow for some cases > I've met... Sorry, should be this: AutoFDO: Don't try to promote indirect calls that result in recursive direct calls<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fgit%2F%3Fp%3Dgcc.git%3Ba%3Dcommit%3Bh%3Dba125745d9e9fe90a18a2af8701b3269c5fdd468&data=05%7C01%7CEugene.Rozenfeld%40microsoft.com%7Ccda1f6374c584732950e08da6f712683%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637944829019804556%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tNqkTMULm5eS4ZZTb15Pd1bOtRj%2BvM9cGRzsW4gGJZQ%3D&reserved=0>, Though the "indirect call inlining with AutoFDO" also need verify on old branches. indirect call format is updated with Martin's dynamic topn patch. > > Xionghu