On Fri, Oct 02, 2026 at 11:18:51AM +0200, Christophe Leroy (CS GROUP) wrote: > > > Le 01/10/2026 à 12:48, Jason A. Donenfeld a écrit : > > On Thu, Oct 01, 2026 at 12:20:59PM +0200, Nathan Chancellor wrote: > >> control. The change that introduced -max-store-memset only did it to > >> "allow fine-tuning of the inlining threshold for performance analysis > >> and optimization". If they decide to remove it for whatever reason, > >> we're back to square one. > > > > I suppose all the more reason to get -finline-stringops=memset added to > > clang. Then the dual-default thing you came up with below will naturally > > start choosing the first option when it becomes available. > > > >> I know something like below would be uglier due to the ifdef but it > >> would avoid changing anything for GCC while clearing up the issue at > >> hand for clang in a guaranteed stable and succinct manner. > > > > But then we're back to the byte-by-byte codegen that Christophe pointed > > out. > > > >> If that is not acceptable, something like the following does appear to > >> work for me. > > > > Okay, great, let's do that. > > > > Does this commit seem okay with you? I used the diff you sent below and > > adjusted the commit message: > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.zx2c4.com%2Flinux-rng%2Fcommit%2F%3Fid%3D56ff95ee85715047eb5b5220243778af657778c8&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cd89b4de22ff94b6be71208df1fa9839a%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639264485055490029%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=Vxf8xRCdLavtw4Dmi%2B49FY1lJDWtm%2BjKv7f8BxKTGq4%3D&reserved=0 > > > > The commit message says: Similarly, GCC has -finline-stringops=memset to > do the same [4], should this issue ever hit future version of GCC. > > Why default "-finline-stringops=memset" if > $(cc-option,-finline-stringops=memset), have we identified cases where > build fail without that or is it just for future provision ? > > As shown in my previous email, with GCC 16 on powerpc32 we get a > slightly better code without this option. No, that patch tested this option + actually calling builtin_memset. This new patch has the original code of zeroing a long at a time, but has the inline memset option to prevent future GCC from recognizing that pattern and making it outline. Codegen should be the same.
Jason
