[all-commits] [llvm/llvm-project] 0c5319: [ModuloSchedule][AArch64] Implement modulo variabl...

Yuta Mukai via All-commits all-commits at lists.llvm.org
Tue Jun 11 18:27:56 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0c5319e546321d7a766999e49e0ccf801ff2b3dc
      https://github.com/llvm/llvm-project/commit/0c5319e546321d7a766999e49e0ccf801ff2b3dc
  Author: Yuta Mukai <mukai.yuta at fujitsu.com>
  Date:   2024-06-12 (Wed, 12 Jun 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/ModuloSchedule.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/ModuloSchedule.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/test/CodeGen/AArch64/sms-acceptable-loop3.mir
    M llvm/test/CodeGen/AArch64/sms-acceptable-loop4.mir
    A llvm/test/CodeGen/AArch64/sms-mve1.mir
    A llvm/test/CodeGen/AArch64/sms-mve10.mir
    A llvm/test/CodeGen/AArch64/sms-mve11.mir
    A llvm/test/CodeGen/AArch64/sms-mve12.mir
    A llvm/test/CodeGen/AArch64/sms-mve2.mir
    A llvm/test/CodeGen/AArch64/sms-mve3.mir
    A llvm/test/CodeGen/AArch64/sms-mve4.mir
    A llvm/test/CodeGen/AArch64/sms-mve5.mir
    A llvm/test/CodeGen/AArch64/sms-mve6.mir
    A llvm/test/CodeGen/AArch64/sms-mve7.mir
    A llvm/test/CodeGen/AArch64/sms-mve8.mir
    A llvm/test/CodeGen/AArch64/sms-mve9.mir
    A llvm/test/CodeGen/AArch64/sms-unacceptable-loop3.mir
    M llvm/test/CodeGen/AArch64/sms-unpipeline-insts2.mir

  Log Message:
  -----------
  [ModuloSchedule][AArch64] Implement modulo variable expansion for pipelining (#65609)

Modulo variable expansion is a technique that resolves overlap of
variable lifetimes by unrolling. The existing implementation solves it
by making a copy by move instruction for processors with ordinary
registers such as Arm and x86. This method may result in a very large
number of move instructions, which can cause performance problems.

Modulo variable expansion is enabled by specifying -pipeliner-mve-cg. A
backend must implement some newly defined interfaces in
PipelinerLoopInfo. They were implemented for AArch64.

Discourse thread:
https://discourse.llvm.org/t/implementing-modulo-variable-expansion-for-machinepipeliner



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list