Currently, the following items are supported: __attribute__ ((target ("{no-}strict-align"))) __attribute__ ((target ("cmodel="))) __attribute__ ((target ("arch="))) __attribute__ ((target ("tune="))) __attribute__ ((target ("{no-}lsx"))) __attribute__ ((target ("{no-}lasx")))
v1 -> v2: 1. Correct clerical errors as follows: --- a/gcc/config/loongarch/loongarch-target-attr.cc +++ b/gcc/config/loongarch/loongarch-target-attr.cc @@ -120,7 +120,7 @@ loongarch_handle_option (struct gcc_options *opts, case OPT_mlasx: opts->x_la_opt_simd = val ? ISA_EXT_SIMD_LASX - : (la_opt_simd == ISA_EXT_SIMD_LSX || la_opt_simd == ISA_EXT_SIMD_LSX + : (la_opt_simd == ISA_EXT_SIMD_LASX || la_opt_simd == ISA_EXT_SIMD_LSX 2. Add example to doc. Lulu Cheng (2): LoongArch: Implement target attribute. LoongArch: Implement target pragma. gcc/attr-urls.def | 6 + gcc/config.gcc | 2 +- gcc/config/loongarch/loongarch-protos.h | 5 + gcc/config/loongarch/loongarch-target-attr.cc | 472 ++++++++++++++++++ gcc/config/loongarch/loongarch.cc | 41 +- gcc/config/loongarch/loongarch.h | 2 + gcc/config/loongarch/t-loongarch | 6 + gcc/doc/extend.texi | 88 ++++ .../gcc.target/loongarch/arch-func-attr-1.c | 20 + .../gcc.target/loongarch/arch-pragma-attr-1.c | 7 + .../loongarch/attr-check-error-message.c | 30 ++ .../gcc.target/loongarch/cmodel-func-attr-1.c | 21 + .../loongarch/cmodel-pragma-attr-1.c | 7 + .../gcc.target/loongarch/lasx-func-attr-1.c | 19 + .../gcc.target/loongarch/lasx-func-attr-2.c | 12 + .../gcc.target/loongarch/lasx-pragma-attr-1.c | 7 + .../gcc.target/loongarch/lasx-pragma-attr-2.c | 12 + .../gcc.target/loongarch/lsx-func-attr-1.c | 19 + .../gcc.target/loongarch/lsx-func-attr-2.c | 12 + .../gcc.target/loongarch/lsx-pragma-attr-1.c | 7 + .../gcc.target/loongarch/lsx-pragma-attr-2.c | 12 + .../gcc.target/loongarch/pragma-push-pop.c | 22 + .../loongarch/strict_align-func-attr-1.c | 21 + .../loongarch/strict_align-func-attr-2.c | 21 + .../loongarch/strict_align-pragma-attr-1.c | 7 + .../loongarch/strict_align-pragma-attr-2.c | 7 + .../gcc.target/loongarch/vector-func-attr-1.c | 19 + .../loongarch/vector-pragma-attr-1.c | 7 + 28 files changed, 901 insertions(+), 10 deletions(-) create mode 100644 gcc/config/loongarch/loongarch-target-attr.cc create mode 100644 gcc/testsuite/gcc.target/loongarch/arch-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/arch-pragma-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/attr-check-error-message.c create mode 100644 gcc/testsuite/gcc.target/loongarch/cmodel-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/cmodel-pragma-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lasx-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lasx-func-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lsx-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lsx-func-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lsx-pragma-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/lsx-pragma-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/pragma-push-pop.c create mode 100644 gcc/testsuite/gcc.target/loongarch/strict_align-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/strict_align-func-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/strict_align-pragma-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/strict_align-pragma-attr-2.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector-func-attr-1.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector-pragma-attr-1.c -- 2.34.1