[all-commits] [llvm/llvm-project] 42fd2b: [LoongArch 1/6] Add triples loongarch{32, 64} for t...

Lu Weining via All-commits all-commits at lists.llvm.org
Thu Feb 10 02:24:02 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 42fd2bfc90653d67607f83a2bf569a9fc8fae7b8
      https://github.com/llvm/llvm-project/commit/42fd2bfc90653d67607f83a2bf569a9fc8fae7b8
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/CODE_OWNERS.TXT
    M llvm/docs/CompilerWriterInfo.rst
    M llvm/include/llvm/ADT/Triple.h
    M llvm/lib/Support/Triple.cpp
    M llvm/unittests/ADT/TripleTest.cpp

  Log Message:
  -----------
  [LoongArch 1/6] Add triples loongarch{32,64} for the upcoming LoongArch target

This is the first patch to incrementally add an MC layer for LoongArch to LLVM.
This patch also adds unit testcases for these new triples.

RFC for adding this new backend:
https://lists.llvm.org/pipermail/llvm-dev/2021-December/154371.html

Differential revision: https://reviews.llvm.org/D115857


  Commit: e53e6ec6ef749c2a9b922a1dc6e14e0538292643
      https://github.com/llvm/llvm-project/commit/e53e6ec6ef749c2a9b922a1dc6e14e0538292643
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELF.h
    A llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def
    M llvm/include/llvm/Object/ELFObjectFile.h
    M llvm/lib/Object/ELF.cpp
    M llvm/lib/ObjectYAML/ELFYAML.cpp
    A llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp
    M llvm/unittests/Object/ELFObjectFileTest.cpp
    M llvm/unittests/Object/ELFTest.cpp

  Log Message:
  -----------
  [LoongArch 2/6] Add ELF machine flag and relocs for upcoming LoongArch target

This patch adds necessary definitions for LoongArch ELF files, including
relocation types. Also adds initial support to ELFYaml, llvm-objdump,
and llvm-readobj in order to work with LoongArch ELFs.

Differential revision: https://reviews.llvm.org/D115859


  Commit: 444c6d261a913bc4f05ac166357af8afa584da73
      https://github.com/llvm/llvm-project/commit/444c6d261a913bc4f05ac166357af8afa584da73
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    A llvm/lib/Target/LoongArch/CMakeLists.txt
    A llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
    A llvm/lib/Target/LoongArch/LoongArchTargetMachine.h
    A llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp
    A llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt
    A llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp
    A llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.h
    A llvm/test/CodeGen/LoongArch/lit.local.cfg
    A llvm/test/CodeGen/LoongArch/target_support.ll

  Log Message:
  -----------
  [LoongArch 3/6] Add target stub for LoongArch

This patch registers the 'loongarch32' and 'loongarch64' targets. Also adds a
simple testcase to check the output of llc --vesion containing the targets.

Differential revision: https://reviews.llvm.org/D115860


  Commit: 33388ae866cf76065b56490a8bafa676152b97f3
      https://github.com/llvm/llvm-project/commit/33388ae866cf76065b56490a8bafa676152b97f3
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/lib/Target/LoongArch/CMakeLists.txt
    A llvm/lib/Target/LoongArch/LoongArch.h
    A llvm/lib/Target/LoongArch/LoongArch.td
    A llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
    A llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h
    A llvm/lib/Target/LoongArch/LoongArchCallingConv.td
    A llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    A llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
    A llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp
    A llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h
    A llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    A llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    A llvm/lib/Target/LoongArch/LoongArchInstrFormats.td
    A llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    A llvm/lib/Target/LoongArch/LoongArchInstrInfo.h
    A llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    A llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
    A llvm/lib/Target/LoongArch/LoongArchMachineFunctionInfo.h
    A llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp
    A llvm/lib/Target/LoongArch/LoongArchRegisterInfo.h
    A llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td
    A llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp
    A llvm/lib/Target/LoongArch/LoongArchSubtarget.h
    M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
    M llvm/lib/Target/LoongArch/LoongArchTargetMachine.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp
    A llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h
    M llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp
    M llvm/test/CodeGen/LoongArch/target_support.ll

  Log Message:
  -----------
  [LoongArch 4/6] Add basic tablegen infra for LoongArch

This patch introduces basic tablegen infra such as
LoongArch{InstrFormats,InstrInfo,RegisterInfo,CallingConv,}.td.

For now, only add instruction definitions for LoongArch basic integer
operations.
Our initial target is a working MC layer rather than codegen,
so appropriate SelectionDAG patterns will come later.

Differential revision: https://reviews.llvm.org/D115861


  Commit: 6caee4890971fc4dea2a76028967484b620513f6
      https://github.com/llvm/llvm-project/commit/6caee4890971fc4dea2a76028967484b620513f6
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/utils/extract-section.py

  Log Message:
  -----------
  [Utils][LoongArch](5/6) Add a --bits-endian option to extract-section.py

This is a split patch of D115862 which adds a --bits-endian option to
extract-section to make it possible to print bits in specified endianness.
It means that we can print instruction encoding of some targets like LoongArch
as bits[0] to bits[31] from right to left by specifing --bits-endian little.

Differential revision: https://reviews.llvm.org/D116100


  Commit: af3bc0d76265eec1de2e170c663fbd3d0ed80f84
      https://github.com/llvm/llvm-project/commit/af3bc0d76265eec1de2e170c663fbd3d0ed80f84
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    A llvm/test/CodeGen/LoongArch/1ri.mir
    A llvm/test/CodeGen/LoongArch/2r.mir
    A llvm/test/CodeGen/LoongArch/2ri.mir
    A llvm/test/CodeGen/LoongArch/3r.mir
    A llvm/test/CodeGen/LoongArch/3ri.mir
    M llvm/test/CodeGen/LoongArch/lit.local.cfg
    A llvm/test/CodeGen/LoongArch/misc.mir

  Log Message:
  -----------
  [LoongArch][test] (6/6) Add encoding and mnemonics tests

With the benefit of D88392, instruction encoding and mnemonic testing can be
achieved within MIR files before AsmParser is ready. This patch adds such
tests which cover all basic integer instructions we defined in previous patch.
Similarly those tests will be rewrote by .s and moved to test/MC/LoongArch.

Differential revision: https://reviews.llvm.org/D115862


Compare: https://github.com/llvm/llvm-project/compare/fe0bf7d4694e...af3bc0d76265


More information about the All-commits mailing list