public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v5 00/12] Add LoongArch support
@ 2022-01-22  7:55 Chenghua Xu
  2022-01-22  7:55 ` [PATCH v5 01/12] LoongArch Port: Regenerate configure Chenghua Xu
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Chenghua Xu @ 2022-01-22  7:55 UTC (permalink / raw)
  To: gcc-patches; +Cc: joseph, paul.hua.gm, xuchenghua, chenglulu

The LoongArch architecture (LoongArch) is an Instruction Set
Architecture (ISA) that has a Reduced Instruction Set Computer (RISC)
style.
The documents are on
https://loongson.github.io/LoongArch-Documentation/README-EN.html

The ELF ABI Documents are on:
https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html

The binutils has been merged into trunk:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=560b3fe208255ae909b4b1c88ba9c28b09043307

Note: We split -mabi= into -mabi=lp64d/f/s, the new options not support by upstream binutils yet,
this GCC port requires the following patch applied to binutils to build.
https://github.com/loongson/binutils-gdb/commit/aacb0bf860f02aa5a7dcb76dd0e392bf871c7586
(will be submitted to upstream after gcc side comfirmed)


We have compiled more than 300 CLFS packages with this compiler.
The CLFS are currently used on Cfarm machines gcc400 and gcc401.

We know it is stage4, I think it is ok for a new prot.
The kernel side upstream waiting for a approval by gcc side,
if it is blocked by stage4, a approval for GCC13 will be appreciation.


Thanks.



changelog:

v1 -> v2
1. Split patch set.
2. Change some code style.
3. Add -mabi=lp64d/f/s options.
4. Change GLIBC_DYNAMIC_LINKER_LP64 name.

v2 -> v3
1. Change some code style.
2. Bug fix.

v3 -> v4
1. Change some code style.
2. Bug fix.
3. Delete some builtin macros.

v4 -> v5
1. delete wrong insn zero_extendsidi2_internal.
2. Adjust some build options.
3. Change some .c files to .cc.


*** BLURB HERE ***

chenglulu (12):
  LoongArch Port: Regenerate configure
  LoongArch Port: gcc build
  LoongArch Port: Regenerate gcc/configure.
  LoongArch Port: Machine Decsription files.
  LoongArch Port: Machine description C files and .h files.
  LoongArch Port: Builtin functions.
  LoongArch Port: Builtin macros.
  LoongArch Port: libgcc
  LoongArch Port: Regenerate libgcc/configure.
  LoongArch Port: libgomp
  LoongArch Port: gcc/testsuite
  LoongArch Port: Add doc.

 config/picflag.m4                             |    3 +
 configure                                     |   10 +-
 configure.ac                                  |   10 +-
 contrib/config-list.mk                        |    5 +-
 .../config/loongarch/loongarch-common.cc      |   73 +
 gcc/config.gcc                                |  410 +-
 gcc/config/host-linux.cc                      |    2 +
 gcc/config/loongarch/constraints.md           |  212 +
 gcc/config/loongarch/generic.md               |  132 +
 gcc/config/loongarch/genopts/genstr.sh        |   91 +
 .../loongarch/genopts/loongarch-strings       |   58 +
 gcc/config/loongarch/genopts/loongarch.opt.in |  189 +
 gcc/config/loongarch/gnu-user.h               |   84 +
 gcc/config/loongarch/la464.md                 |  132 +
 gcc/config/loongarch/larchintrin.h            |  413 ++
 gcc/config/loongarch/linux.h                  |   50 +
 gcc/config/loongarch/loongarch-builtins.cc    |  511 ++
 gcc/config/loongarch/loongarch-c.cc           |  109 +
 gcc/config/loongarch/loongarch-cpu.cc         |  206 +
 gcc/config/loongarch/loongarch-cpu.h          |   30 +
 gcc/config/loongarch/loongarch-def.c          |  164 +
 gcc/config/loongarch/loongarch-def.h          |  151 +
 gcc/config/loongarch/loongarch-driver.cc      |  187 +
 gcc/config/loongarch/loongarch-driver.h       |   69 +
 gcc/config/loongarch/loongarch-ftypes.def     |  106 +
 gcc/config/loongarch/loongarch-modes.def      |   29 +
 gcc/config/loongarch/loongarch-opts.cc        |  580 ++
 gcc/config/loongarch/loongarch-opts.h         |   86 +
 gcc/config/loongarch/loongarch-protos.h       |  241 +
 gcc/config/loongarch/loongarch-str.h          |   57 +
 gcc/config/loongarch/loongarch-tune.h         |   72 +
 gcc/config/loongarch/loongarch.cc             | 6326 +++++++++++++++++
 gcc/config/loongarch/loongarch.h              | 1271 ++++
 gcc/config/loongarch/loongarch.md             | 3702 ++++++++++
 gcc/config/loongarch/loongarch.opt            |  189 +
 gcc/config/loongarch/predicates.md            |  553 ++
 gcc/config/loongarch/sync.md                  |  574 ++
 gcc/config/loongarch/t-linux                  |   53 +
 gcc/config/loongarch/t-loongarch              |   59 +
 gcc/configure                                 |   66 +-
 gcc/configure.ac                              |   33 +-
 gcc/doc/install.texi                          |   47 +-
 gcc/doc/invoke.texi                           |  201 +
 gcc/doc/md.texi                               |   55 +
 gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C    |    2 +-
 gcc/testsuite/g++.old-deja/g++.abi/ptrmem.C   |    2 +-
 gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C   |    2 +-
 gcc/testsuite/gcc.dg/20020312-2.c             |    2 +
 gcc/testsuite/gcc.dg/loop-8.c                 |    2 +-
 .../torture/stackalign/builtin-apply-2.c      |    2 +-
 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c     |    2 +-
 .../gcc.target/loongarch/loongarch.exp        |   40 +
 .../gcc.target/loongarch/tst-asm-const.c      |   16 +
 gcc/testsuite/go.test/go-test.exp             |    3 +
 gcc/testsuite/lib/target-supports.exp         |   14 +
 libgcc/config.host                            |   28 +-
 libgcc/config/loongarch/crtfastmath.c         |   52 +
 libgcc/config/loongarch/crti.S                |   43 +
 libgcc/config/loongarch/crtn.S                |   39 +
 libgcc/config/loongarch/lib2funcs.c           |    0
 libgcc/config/loongarch/linux-unwind.h        |   80 +
 libgcc/config/loongarch/sfp-machine.h         |  152 +
 libgcc/config/loongarch/t-crtstuff            |    5 +
 libgcc/config/loongarch/t-elf                 |    3 +
 libgcc/config/loongarch/t-loongarch           |    9 +
 libgcc/config/loongarch/t-loongarch64         |    1 +
 libgcc/config/loongarch/t-softfp-tf           |    3 +
 libgcc/configure                              |    5 +-
 libgcc/configure.ac                           |    2 +-
 libgomp/configure.tgt                         |    4 +
 70 files changed, 18086 insertions(+), 28 deletions(-)
 create mode 100644 gcc/common/config/loongarch/loongarch-common.cc
 create mode 100644 gcc/config/loongarch/constraints.md
 create mode 100644 gcc/config/loongarch/generic.md
 create mode 100755 gcc/config/loongarch/genopts/genstr.sh
 create mode 100644 gcc/config/loongarch/genopts/loongarch-strings
 create mode 100644 gcc/config/loongarch/genopts/loongarch.opt.in
 create mode 100644 gcc/config/loongarch/gnu-user.h
 create mode 100644 gcc/config/loongarch/la464.md
 create mode 100644 gcc/config/loongarch/larchintrin.h
 create mode 100644 gcc/config/loongarch/linux.h
 create mode 100644 gcc/config/loongarch/loongarch-builtins.cc
 create mode 100644 gcc/config/loongarch/loongarch-c.cc
 create mode 100644 gcc/config/loongarch/loongarch-cpu.cc
 create mode 100644 gcc/config/loongarch/loongarch-cpu.h
 create mode 100644 gcc/config/loongarch/loongarch-def.c
 create mode 100644 gcc/config/loongarch/loongarch-def.h
 create mode 100644 gcc/config/loongarch/loongarch-driver.cc
 create mode 100644 gcc/config/loongarch/loongarch-driver.h
 create mode 100644 gcc/config/loongarch/loongarch-ftypes.def
 create mode 100644 gcc/config/loongarch/loongarch-modes.def
 create mode 100644 gcc/config/loongarch/loongarch-opts.cc
 create mode 100644 gcc/config/loongarch/loongarch-opts.h
 create mode 100644 gcc/config/loongarch/loongarch-protos.h
 create mode 100644 gcc/config/loongarch/loongarch-str.h
 create mode 100644 gcc/config/loongarch/loongarch-tune.h
 create mode 100644 gcc/config/loongarch/loongarch.cc
 create mode 100644 gcc/config/loongarch/loongarch.h
 create mode 100644 gcc/config/loongarch/loongarch.md
 create mode 100644 gcc/config/loongarch/loongarch.opt
 create mode 100644 gcc/config/loongarch/predicates.md
 create mode 100644 gcc/config/loongarch/sync.md
 create mode 100644 gcc/config/loongarch/t-linux
 create mode 100644 gcc/config/loongarch/t-loongarch
 create mode 100644 gcc/testsuite/gcc.target/loongarch/loongarch.exp
 create mode 100644 gcc/testsuite/gcc.target/loongarch/tst-asm-const.c
 create mode 100644 libgcc/config/loongarch/crtfastmath.c
 create mode 100644 libgcc/config/loongarch/crti.S
 create mode 100644 libgcc/config/loongarch/crtn.S
 create mode 100644 libgcc/config/loongarch/lib2funcs.c
 create mode 100644 libgcc/config/loongarch/linux-unwind.h
 create mode 100644 libgcc/config/loongarch/sfp-machine.h
 create mode 100644 libgcc/config/loongarch/t-crtstuff
 create mode 100644 libgcc/config/loongarch/t-elf
 create mode 100644 libgcc/config/loongarch/t-loongarch
 create mode 100644 libgcc/config/loongarch/t-loongarch64
 create mode 100644 libgcc/config/loongarch/t-softfp-tf

-- 
2.27.0


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-01-23  9:28 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-22  7:55 [PATCH v5 00/12] Add LoongArch support Chenghua Xu
2022-01-22  7:55 ` [PATCH v5 01/12] LoongArch Port: Regenerate configure Chenghua Xu
2022-01-22  7:55 ` [PATCH v5 02/12] LoongArch Port: gcc build Chenghua Xu
2022-01-22  8:33   ` Xi Ruoyao
2022-01-22  8:41     ` Jakub Jelinek
2022-01-22  8:46       ` Xi Ruoyao
2022-01-22  8:56         ` 程璐璐
2022-01-22  9:05           ` Xi Ruoyao
2022-01-22  9:16             ` 程璐璐
2022-01-22  9:24             ` Andreas Schwab
2022-01-22  9:31             ` Jakub Jelinek
2022-01-22 10:35               ` 程璐璐
2022-01-23  8:16               ` 程璐璐
2022-01-22  8:34   ` Xi Ruoyao
2022-01-22  8:42   ` Xi Ruoyao
2022-01-23  8:39     ` 程璐璐
2022-01-23  9:00       ` Xi Ruoyao
2022-01-23  9:28         ` 程璐璐
2022-01-22  7:55 ` [PATCH v5 03/12] LoongArch Port: Regenerate gcc/configure Chenghua Xu
2022-01-22  7:55 ` [PATCH v5 04/12] LoongArch Port: Machine Decsription files Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 05/12] LoongArch Port: Machine description C files and .h files Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 06/12] LoongArch Port: Builtin functions Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 07/12] LoongArch Port: Builtin macros Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 08/12] LoongArch Port: libgcc Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 09/12] LoongArch Port: Regenerate libgcc/configure Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 10/12] LoongArch Port: libgomp Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 11/12] LoongArch Port: gcc/testsuite Chenghua Xu
2022-01-22  7:56 ` [PATCH v5 12/12] LoongArch Port: Add doc Chenghua Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).