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

Reply via email to