On 11/16/20 6:44 PM, H.J. Lu wrote:
> On Mon, Nov 16, 2020 at 4:58 PM Jeff Law <l...@redhat.com> wrote:
>>
>> On 11/9/20 11:57 AM, H.J. Lu via Gcc-patches wrote:
>>> GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA
>>> levels:
>>>
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250
>>>
>>> Binutils has been updated to support GNU_PROPERTY_X86_ISA_1_V[234] marker:
>>>
>>> https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13
>>>
>>> with
>>>
>>> commit b0ab06937385e0ae25cebf1991787d64f439bf12
>>> Author: H.J. Lu <hjl.to...@gmail.com>
>>> Date:   Fri Oct 30 06:49:57 2020 -0700
>>>
>>>     x86: Support GNU_PROPERTY_X86_ISA_1_BASELINE marker
>>>
>>> and
>>>
>>> commit 32930e4edbc06bc6f10c435dbcc63131715df678
>>> Author: H.J. Lu <hjl.to...@gmail.com>
>>> Date:   Fri Oct 9 05:05:57 2020 -0700
>>>
>>>     x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker
>>>
>>> in x86 ELF binaries.
>>>
>>> Add -mneeded to emit GNU_PROPERTY_X86_ISA_1_NEEDED property to indicate
>>> the micro-architecture ISA level required to execute the binary.
>>>
>>> gcc/
>>>
>>>       * config.gcc: Replace cet.o with gnu-property.o.  Replace
>>>       i386/t-cet with i386/t-gnu-property.
>>>       * config/i386/cet.c: Renamed to ...
>>>       * config/i386/gnu-property.c: This.
>>>       (emit_gnu_property): New function.
>>>       (file_end_indicate_exec_stack_and_cet): Renamed to ...
>>>       (file_end_indicate_exec_stack_and_gnu_property): This.  Call
>>>       emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and
>>>       GNU_PROPERTY_X86_ISA_1_NEEDED properties.
>>>       * config/i386/i386.opt (mneeded): New.
>>>       * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet):
>>>       Renamed to ...
>>>       (file_end_indicate_exec_stack_and_gnu_property): This.
>>>       (TARGET_ASM_FILE_END): Updated.
>>>       * config/i386/t-cet: Renamed to ...
>>>       * config/i386/t-gnu-property: This.
>>>       (cet.o): Renamed to ...
>>>       (gnu-property.o): This.
>>>       * doc/invoke.texi: Document -mneeded.
>>>
>>> gcc/testsuite/
>>>
>>>       * gcc.target/i386/x86-needed-1.c: New test.
>>>       * gcc.target/i386/x86-needed-2.c: Likewise.
>>>       * gcc.target/i386/x86-needed-3.c: Likewise.
>> Would it make sense to have -mneeded on by default if we detect a
>> suitable assembler?  The goal being that on the distro level we'd have
>> the appropriate markup for everything in the distro without having to
>> worry about injecting the -mneeded flag into every build.
> It is OK to set the file level USED ISA bits.  But the file level NEEDED
> ISA bits should be set by developers.   Otherwise, function multiversioning
> with AVX512 will lead to output marked with ISA v4 needed which isn't
> true.
True.  Function multi-versioning does turn a lot of traditional thinking
in this space on its side.

OK for the trunk.

jeff

Reply via email to