[all-commits] [llvm/llvm-project] a3fee3: [M68k][CODE_OWNERS](0/8) Add code owner for the M6...

Min-Yih Hsu via All-commits all-commits at lists.llvm.org
Mon Mar 8 12:33:53 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a3fee3993a0936f7ff462a94e469bb8127c82116
      https://github.com/llvm/llvm-project/commit/a3fee3993a0936f7ff462a94e469bb8127c82116
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/CODE_OWNERS.TXT

  Log Message:
  -----------
  [M68k][CODE_OWNERS](0/8) Add code owner for the M68k target

Assign yours truely as code owner for the upcoming M68k target

Differential Revision: https://reviews.llvm.org/D95315


  Commit: 503343191e12ccb9dad7e89072cd3e897caf4c2d
      https://github.com/llvm/llvm-project/commit/503343191e12ccb9dad7e89072cd3e897caf4c2d
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Target/Target.td
    M llvm/utils/TableGen/CMakeLists.txt
    A llvm/utils/TableGen/CodeBeadsGen.cpp
    M llvm/utils/TableGen/InstrInfoEmitter.cpp
    M llvm/utils/TableGen/TableGen.cpp
    M llvm/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  [M68k][TableGen](1/8) TableGen related changes

 - Add a new TableGen backend: CodeBeads
 - Add support to generate logical operand information

For the first item, it is currently a workaround of M68k's (complex)
instruction encoding. A typical architecture, especially CISC one like
X86, normally uses `MCInstrDesc::TSFlags` to carry instruction encoding
info. However, at the early days of M68k backend development, we found
it difficult to fit every possible encoding into the 64-bit
`MCInstrDesc::TSFlags`. Therefore CodeBeads was invented to provide
an alternative, arbitrary length container for instruciton encoding
info. However, in the long term we incline not to use a new TG
backend for less common pattern like what we encountered in M68k. A bug
has been created to host to discussion on migrating from CodeBeads to
more concise solution: https://bugs.llvm.org/show_bug.cgi?id=48792

The second item was also served for similar purpose. It created utility
functions that tell you the index of a `MachineOperand` in a
`MachineInst` given a logical operand index. In normal cases a logical
operand is the same as `MachineOperand`, but for operands using complex
addressing mode a logical operand might be consisting of multiple
`MachineOperand`. The TableGen-ed `getLogicalOperandIdx`, for instance,
can give you the mapping between these two concepts. Nevertheless, we
hope to remove this feature in the future if possible. Since it's not
really useful for the targets supported by LLVM now either.

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88385


  Commit: 6dcc325ce04541a766bef8217d7063ab2063caf0
      https://github.com/llvm/llvm-project/commit/6dcc325ce04541a766bef8217d7063ab2063caf0
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp

  Log Message:
  -----------
  [M68k][MIR](2/8) Changes in the target-independent MIR part

 - Add new callback in `TargetInstrInfo` --
  `isPCRelRegisterOperandLegal` -- to query whether pc-rel
   register MachineOperand is legal.
 - Add new function to search DebugLoc in a reverse ordering

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88386


  Commit: bec7b166923bbaf0882ff4665224d7a8a7320aa0
      https://github.com/llvm/llvm-project/commit/bec7b166923bbaf0882ff4665224d7a8a7320aa0
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/cmake/config-ix.cmake
    M llvm/include/llvm/ADT/Triple.h
    M llvm/lib/Support/Triple.cpp
    A llvm/lib/Target/M68k/CMakeLists.txt
    A llvm/lib/Target/M68k/M68k.td
    A llvm/lib/Target/M68k/M68kCallingConv.td
    A llvm/lib/Target/M68k/M68kInstrArithmetic.td
    A llvm/lib/Target/M68k/M68kInstrBits.td
    A llvm/lib/Target/M68k/M68kInstrCompiler.td
    A llvm/lib/Target/M68k/M68kInstrControl.td
    A llvm/lib/Target/M68k/M68kInstrData.td
    A llvm/lib/Target/M68k/M68kInstrFormats.td
    A llvm/lib/Target/M68k/M68kInstrInfo.td
    A llvm/lib/Target/M68k/M68kInstrShiftRotate.td
    A llvm/lib/Target/M68k/M68kRegisterInfo.td
    A llvm/lib/Target/M68k/M68kSchedule.td
    A llvm/lib/Target/M68k/M68kTargetMachine.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/CMakeLists.txt
    A llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
    A llvm/lib/Target/M68k/TargetInfo/CMakeLists.txt
    A llvm/lib/Target/M68k/TargetInfo/M68kTargetInfo.cpp

  Log Message:
  -----------
  [M68k](3/8) Skeleton and target description files

 - Infrastructure for the target (i.e. build files, target triple etc.)
 - All of the target description TableGen file

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88389


  Commit: 8dddc15297f1101f7e312dd0fd9cd57246dbc8bb
      https://github.com/llvm/llvm-project/commit/8dddc15297f1101f7e312dd0fd9cd57246dbc8bb
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELF.h
    A llvm/include/llvm/BinaryFormat/ELFRelocs/M68k.def
    M llvm/include/llvm/IR/CallingConv.h
    M llvm/include/llvm/Object/ELFObjectFile.h
    M llvm/include/llvm/module.modulemap
    M llvm/lib/Object/ELF.cpp
    M llvm/lib/ObjectYAML/ELFYAML.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/CMakeLists.txt
    A llvm/lib/Target/M68k/MCTargetDesc/M68kAsmBackend.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h
    A llvm/lib/Target/M68k/MCTargetDesc/M68kELFObjectWriter.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/M68kFixupKinds.h
    A llvm/lib/Target/M68k/MCTargetDesc/M68kInstPrinter.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/M68kInstPrinter.h
    A llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.h
    A llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
    A llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.h
    M llvm/lib/Target/M68k/TargetInfo/M68kTargetInfo.cpp

  Log Message:
  -----------
  [M68k](4/8) MC layer and object file support

 - Add the M68k-specific MC layer implementation
 - Add ELF support for M68k
 - Add M68k-specifc CC and reloc

TODO: Currently AsmParser and disassembler are not implemented yet.
Please use this bug to track the status:
https://bugs.llvm.org/show_bug.cgi?id=48976

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88390


  Commit: 5ac19e0acf86ec2b080aaee6dd9226d64778ce83
      https://github.com/llvm/llvm-project/commit/5ac19e0acf86ec2b080aaee6dd9226d64778ce83
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/lib/Target/M68k/CMakeLists.txt
    A llvm/lib/Target/M68k/M68k.h
    A llvm/lib/Target/M68k/M68kAsmPrinter.cpp
    A llvm/lib/Target/M68k/M68kAsmPrinter.h
    A llvm/lib/Target/M68k/M68kCallingConv.h
    A llvm/lib/Target/M68k/M68kCollapseMOVEMPass.cpp
    A llvm/lib/Target/M68k/M68kExpandPseudo.cpp
    A llvm/lib/Target/M68k/M68kFrameLowering.cpp
    A llvm/lib/Target/M68k/M68kFrameLowering.h
    A llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp
    A llvm/lib/Target/M68k/M68kISelLowering.cpp
    A llvm/lib/Target/M68k/M68kISelLowering.h
    A llvm/lib/Target/M68k/M68kInstrBuilder.h
    A llvm/lib/Target/M68k/M68kInstrInfo.cpp
    A llvm/lib/Target/M68k/M68kInstrInfo.h
    A llvm/lib/Target/M68k/M68kMCInstLower.cpp
    A llvm/lib/Target/M68k/M68kMCInstLower.h
    A llvm/lib/Target/M68k/M68kMachineFunction.cpp
    A llvm/lib/Target/M68k/M68kMachineFunction.h
    A llvm/lib/Target/M68k/M68kRegisterInfo.cpp
    A llvm/lib/Target/M68k/M68kRegisterInfo.h
    A llvm/lib/Target/M68k/M68kSubtarget.cpp
    A llvm/lib/Target/M68k/M68kSubtarget.h
    M llvm/lib/Target/M68k/M68kTargetMachine.cpp
    A llvm/lib/Target/M68k/M68kTargetMachine.h
    A llvm/lib/Target/M68k/M68kTargetObjectFile.cpp
    A llvm/lib/Target/M68k/M68kTargetObjectFile.h

  Log Message:
  -----------
  [M68k](5/8) Target-specific lowering

 - TargetMachine implementation for M68k
 - ISel, ISched for M68k
 - Other lowering (e.g. FrameLowering)
 - AsmPrinter

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88391


  Commit: c23a780c306c410008ab127009cda26c7d9e5966
      https://github.com/llvm/llvm-project/commit/c23a780c306c410008ab127009cda26c7d9e5966
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    A llvm/test/CodeGen/M68k/Alloc/dyn_alloca_aligned.ll
    A llvm/test/CodeGen/M68k/Arith/add-with-overflow.ll
    A llvm/test/CodeGen/M68k/Arith/add.ll
    A llvm/test/CodeGen/M68k/Arith/divide-by-constant.ll
    A llvm/test/CodeGen/M68k/Arith/imul-neg.ll
    A llvm/test/CodeGen/M68k/Arith/imul.ll
    A llvm/test/CodeGen/M68k/Arith/lshr.ll
    A llvm/test/CodeGen/M68k/Arith/mul64.ll
    A llvm/test/CodeGen/M68k/Arith/sdiv-exact.ll
    A llvm/test/CodeGen/M68k/Arith/smul-with-overflow.ll
    A llvm/test/CodeGen/M68k/Arith/sub-with-overflow.ll
    A llvm/test/CodeGen/M68k/Arith/sub.ll
    A llvm/test/CodeGen/M68k/Arith/umul-with-overflow.ll
    A llvm/test/CodeGen/M68k/CConv/c-args-inreg.ll
    A llvm/test/CodeGen/M68k/CConv/c-args.ll
    A llvm/test/CodeGen/M68k/CConv/c-call.ll
    A llvm/test/CodeGen/M68k/CConv/fastcc-args.ll
    A llvm/test/CodeGen/M68k/CConv/fastcc-call.ll
    A llvm/test/CodeGen/M68k/CodeModel/medium-pic.ll
    A llvm/test/CodeGen/M68k/CodeModel/medium-pie-global-access.ll
    A llvm/test/CodeGen/M68k/CodeModel/medium-pie.ll
    A llvm/test/CodeGen/M68k/CodeModel/medium-static.ll
    A llvm/test/CodeGen/M68k/CodeModel/small-pic.ll
    A llvm/test/CodeGen/M68k/CodeModel/small-pie-global-access.ll
    A llvm/test/CodeGen/M68k/CodeModel/small-pie.ll
    A llvm/test/CodeGen/M68k/CodeModel/small-static.ll
    A llvm/test/CodeGen/M68k/CollapseMOVEM.mir
    A llvm/test/CodeGen/M68k/Control/cmp.ll
    A llvm/test/CodeGen/M68k/Control/long-setcc.ll
    A llvm/test/CodeGen/M68k/Control/setcc.ll
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_FMI.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_FMR.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRI.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRI_xEA.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRM.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRRF.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRR_EAd.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxBiArOp_RFRR_xEA.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxCMP_BI.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxCMP_MI.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxCMP_RI.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxCMP_RM.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxCMP_RR.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxDiMu.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxExt.mir
    A llvm/test/CodeGen/M68k/Encoding/Arith/Classes/MxNEG.mir
    A llvm/test/CodeGen/M68k/Encoding/Bits/Classes/MxBTST_MI.mir
    A llvm/test/CodeGen/M68k/Encoding/Bits/Classes/MxBTST_MR.mir
    A llvm/test/CodeGen/M68k/Encoding/Bits/Classes/MxBTST_RI.mir
    A llvm/test/CodeGen/M68k/Encoding/Bits/Classes/MxBTST_RR.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxBRA.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxBcc.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxCALL.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxJMP.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxNOP.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxRTS.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/Classes/MxScc.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/branch-pc-rel.mir
    A llvm/test/CodeGen/M68k/Encoding/Control/call-pc-rel.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxLEA.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMOVEM_MR.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMOVEM_RM.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMoveCCR.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_MI.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_MM.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_MR.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_RI.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_RM.mir
    A llvm/test/CodeGen/M68k/Encoding/Data/Classes/MxMove_RR.mir
    A llvm/test/CodeGen/M68k/Encoding/README.md
    A llvm/test/CodeGen/M68k/Encoding/Relaxations/branch.mir
    A llvm/test/CodeGen/M68k/Encoding/Relocations/data-abs.mir
    A llvm/test/CodeGen/M68k/Encoding/Relocations/data-gotoff.mir
    A llvm/test/CodeGen/M68k/Encoding/Relocations/data-gotpcrel.mir
    A llvm/test/CodeGen/M68k/Encoding/Relocations/data-pc-rel.mir
    A llvm/test/CodeGen/M68k/Encoding/Relocations/text-plt.mir
    A llvm/test/CodeGen/M68k/Encoding/ShiftRotate/Classes/MxSR_DD.mir
    A llvm/test/CodeGen/M68k/Encoding/ShiftRotate/Classes/MxSR_DI.mir
    A llvm/test/CodeGen/M68k/lit.local.cfg
    A llvm/test/CodeGen/M68k/varargs.ll
    M llvm/utils/UpdateTestChecks/asm.py
    A llvm/utils/extract-section.py

  Log Message:
  -----------
  [M68k][test](6/8) Add all of the tests

And a small utilities -- extract-section.py -- that helps extracting
specific object file section and printing in textual format. This
utility is just a workaround for tests inside `Encoding`. Hopefully in
the future we can replace dependencies in those tests with existing tools
(e.g. llvm-readobj). Please refer to this bug for more context:
https://bugs.llvm.org/show_bug.cgi?id=49245

Note that since we don't have AsmParser for now, we are testing the MC
part using MIR as input and put those tests under the `Encoding` folder.
In the future when AsmParser (and disassembler) is finished, those tests
will be moved to `test/MC/M68k`.

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88392


  Commit: 5eb7a5814a5c629378ba2a4a45fc65cd7f183c9c
      https://github.com/llvm/llvm-project/commit/5eb7a5814a5c629378ba2a4a45fc65cd7f183c9c
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/lib/Basic/CMakeLists.txt
    M clang/lib/Basic/Targets.cpp
    A clang/lib/Basic/Targets/M68k.cpp
    A clang/lib/Basic/Targets/M68k.h
    M clang/lib/CodeGen/TargetInfo.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp

  Log Message:
  -----------
  [cfe][M68k](7/8) Clang basic support

This is the first patch supporting M68k in Clang
 - Register M68k as a target
 - Target specific CodeGen support
 - Target specific attribute support

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88393


  Commit: 5509748f2ce5e06bda7da754297d09a0e68a1f30
      https://github.com/llvm/llvm-project/commit/5509748f2ce5e06bda7da754297d09a0e68a1f30
  Author: Min-Yih Hsu <minyihh at uci.edu>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/CMakeLists.txt
    A clang/lib/Driver/ToolChains/Arch/M68k.cpp
    A clang/lib/Driver/ToolChains/Arch/M68k.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Driver/ToolChains/Linux.cpp
    A clang/test/Driver/m68k-features.cpp
    A clang/test/Driver/m68k-sub-archs.cpp

  Log Message:
  -----------
  [cfe][driver][M68k](8/8) Clang driver support

Add M68k-specific toolchain and driver configurations / options.

Authors: myhsu, m4yers, glaubitz

Differential Revision: https://reviews.llvm.org/D88394


Compare: https://github.com/llvm/llvm-project/compare/e81d813717b2...5509748f2ce5


More information about the All-commits mailing list