On Tue, Jul 18, 2023 at 7:50 PM Jiang, Haochen via Gcc <gcc@gcc.gnu.org> wrote: > > Hi all, > > As you all know that we are continuously working on new ISA implementation > for i386 backend. > > There is one thing that I am really curious about when I read the code. > > In gcc/config/i386/i386-cpuinfo.h, we have such comment: > > /* ISA Features supported. New features have to be inserted at the end. */ > > Why new features have to be inserted at the end? I did a quick investigation > and found that it was > added at this mailing thread originally at libgcc/config/i386/cpuinfo.c: > > https://gcc.gnu.org/pipermail/gcc-patches/2015-September/428915.html > > In the thread, it seems that it might cause unwanted ABI change. Could anyone > kindly tell me something > more about that? Should this rule still be kept for now after about eight > years since then?
YES we should keep it. ___builtin_cpu_supports uses those #s so the ABI is exposed to the object level even if those #s are not exposed to the user directly those are still exposed as an ABI that needs to be expandable that way. Thanks, Andrew > > Thx, > Haochen >