[all-commits] [llvm/llvm-project] 85c9c1: [RISCV] Support load clustering in the MachineSche...

Alex Bradbury via All-commits all-commits at lists.llvm.org
Wed Nov 29 02:02:37 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 85c9c16895082dfaee3e8440440c83ba9b436da0
      https://github.com/llvm/llvm-project/commit/85c9c16895082dfaee3e8440440c83ba9b436da0
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
    A llvm/test/CodeGen/RISCV/misched-load-clustering.ll

  Log Message:
  -----------
  [RISCV] Support load clustering in the MachineScheduler (off by default) (#73754)

This adds minimal support for load clustering, but disables it by
default. The intent is to iterate on the precise heuristic and the
question of turning this on by default in a separate PR. Although
previous discussion indicates hope that the MachineScheduler would
replace most uses of the SelectionDAG scheduler, it does seem most
targets aren't using MachineScheduler load clustering right now:
PPC+AArch64 seem to just use it to help with paired load/store formation
and although AMDGPU uses it for general clustering it also implements
ShouldScheduleLoadsNear for the SelectionDAG scheduler's clustering.




More information about the All-commits mailing list