[PATH] Enable GCC support for SERIALIZE

Hongtao Liu crazylht@gmail.com
Wed Apr 1 07:29:07 GMT 2020


Hi:
  This patch is about to enable GCC support for SERIALIZE which would
be in GLC. There's only 1 instruction: SERIALIZE, more details please
refer to https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
  I know it's stage4 right now, and patches are approved only for bug
fixed, but since many users prefer to use release version other than
build from trunk, i'd like to see this patch landed on GCC10, after
all it's only 1 instruction, without any significant changes.

  Bootstrap ok, regression test on i386/x86 backend is ok.

gcc/Changelog:
        * gcc/common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
        OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
        (ix86_handle_option): Handle -mserialize.
        * gcc/config.gcc (serializeintrin.h): New header file.
        * gcc/config/i386/cpuid.h (bit_SERIALIZE): New bit.
        * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect
        -mserialize.
        * gcc/config/i386/i386-builtin.def: Add new builtin.
        * gcc/config/i386/i386-c.c (__SERIALIZE__): New macro.
        * gcc/config/i386/i386-options.c (ix86_target_opts_isa2_opts):
          Add -mserialize.
        * (ix86_valid_target_attribute_inner_p): Add target attribute
        * for serialize.
        * gcc/config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
          New macros.
        * gcc/config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
          (serialize): New define_insn.
        * gcc/config/i386/i386.opt (mserialize): New option
        * gcc/config/i386/immintrin.h: Include serailizeintrin.h.
        * gcc/config/i386/serializeintrin.h: New header file.
        * gcc/doc/invoke.texi: Add documents for -mserialize.

gcc/testsuite/Changelog
        * gcc/testsuite/gcc.target/i386/serialize-1.c: New test.
        * gcc/testsuite/g++.dg/other/i386-2.C: Add -mserialize.
        * gcc/testsuite/g++.dg/other/i386-3.C: Ditto.
        * gcc/testsuite/gcc.target/i386/sse-12.c: Ditto.
        * gcc/testsuite/gcc.target/i386/sse-13.c: Ditto.
        * gcc/testsuite/gcc.target/i386/sse-14.c: Ditto.
        * gcc/testsuite/gcc.target/i386/sse-22.c: Ditto.
        * gcc/testsuite/gcc.target/i386/sse-23.c: Ditto.



-- 
BR,
Hongtao
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Enable-GCC-support-for-SERIALIZE.patch
Type: text/x-patch
Size: 28201 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20200401/cfccaa04/attachment-0001.bin>


More information about the Gcc-patches mailing list