[all-commits] [llvm/llvm-project] f80b29: [X86] AMX programming model.

Luo, Yuanke via All-commits all-commits at lists.llvm.org
Thu Dec 10 01:07:44 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f80b29878b0448efb306b9c93c49e5deb9ba2738
      https://github.com/llvm/llvm-project/commit/f80b29878b0448efb306b9c93c49e5deb9ba2738
  Author: Luo, Yuanke <yuanke.luo at intel.com>
  Date:   2020-12-10 (Thu, 10 Dec 2020)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86_64.def
    M clang/lib/Headers/amxintrin.h
    A clang/test/CodeGen/X86/amx_api.c
    M llvm/include/llvm/CodeGen/LiveIntervalUnion.h
    M llvm/include/llvm/CodeGen/LiveRegMatrix.h
    M llvm/include/llvm/CodeGen/Passes.h
    A llvm/include/llvm/CodeGen/TileShapeInfo.h
    M llvm/include/llvm/CodeGen/VirtRegMap.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsX86.td
    M llvm/lib/CodeGen/InlineSpiller.cpp
    M llvm/lib/CodeGen/LiveIntervalUnion.cpp
    M llvm/lib/CodeGen/LiveRegMatrix.cpp
    M llvm/lib/CodeGen/VirtRegMap.cpp
    M llvm/lib/Target/X86/CMakeLists.txt
    M llvm/lib/Target/X86/X86.h
    M llvm/lib/Target/X86/X86ExpandPseudo.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrAMX.td
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    A llvm/lib/Target/X86/X86LowerAMXType.cpp
    A llvm/lib/Target/X86/X86PreTileConfig.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.h
    M llvm/lib/Target/X86/X86RegisterInfo.td
    M llvm/lib/Target/X86/X86Subtarget.h
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    A llvm/lib/Target/X86/X86TileConfig.cpp
    A llvm/test/CodeGen/X86/AMX/amx-across-func.ll
    A llvm/test/CodeGen/X86/AMX/amx-config.ll
    A llvm/test/CodeGen/X86/AMX/amx-spill.ll
    A llvm/test/CodeGen/X86/AMX/amx-type.ll
    M llvm/test/CodeGen/X86/O0-pipeline.ll
    M llvm/test/CodeGen/X86/ipra-reg-usage.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/statepoint-fixup-invoke.mir
    M llvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir

  Log Message:
  -----------
  [X86] AMX programming model.
 This patch implements amx programming model that discussed in llvm-dev
 (http://lists.llvm.org/pipermail/llvm-dev/2020-August/144302.html).
 Thank Hal for the good suggestion in the RA. The fast RA is not in the patch yet.
 This patch implemeted 7 components.

1. The c interface to end user.
2. The AMX intrinsics in LLVM IR.
3. Transform load/store <256 x i32> to AMX intrinsics or split the
   type into two <128 x i32>.
4. The Lowering from AMX intrinsics to AMX pseudo instruction.
5. Insert psuedo ldtilecfg and build the def-use between ldtilecfg to amx
   intruction.
6. The register allocation for tile register.
7. Morph AMX pseudo instruction to AMX real instruction.

Change-Id: I935e1080916ffcb72af54c2c83faa8b2e97d5cb0

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




More information about the All-commits mailing list