[all-commits] [llvm/llvm-project] 5cb097: [X86][AMX] Split greedy RA for tile register

Luo, Yuanke via All-commits all-commits at lists.llvm.org
Tue Jun 28 19:36:04 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5cb09798700aecff1f9f61b7cd80852c61e10fa8
      https://github.com/llvm/llvm-project/commit/5cb09798700aecff1f9f61b7cd80852c61e10fa8
  Author: Luo, Yuanke <yuanke.luo at intel.com>
  Date:   2022-06-29 (Wed, 29 Jun 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetPassConfig.h
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.h
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/lib/Target/X86/X86TileConfig.cpp
    M llvm/test/CodeGen/X86/AMX/amx-across-func.ll
    A llvm/test/CodeGen/X86/AMX/amx-greedy-ra-spill-shape.ll
    A llvm/test/CodeGen/X86/AMX/amx-greedy-ra.ll
    M llvm/test/CodeGen/X86/AMX/amx-lower-tile-copy.ll
    M llvm/test/CodeGen/X86/AMX/amx-spill-merge.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/statepoint-ra.ll

  Log Message:
  -----------
  [X86][AMX] Split greedy RA for tile register

When we fill the shape to tile configure memory, the shape is gotten
from AMX pseudo instruction. However the register for the shape may be
split or spilled by greedy RA. That cause we fill the shape to config
memory after ldtilecfg is executed, so that the shape configuration
would be wrong.
This patch is to split the tile register allocation from greedy register
allocation, so that after tile registers are allocated the shape
registers are still virtual register. The shape register only may be
redefined or multi-defined by phi elimination pass, two address pass.
That doesn't affect tile register configuration.

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




More information about the All-commits mailing list