[all-commits] [llvm/llvm-project] f138e3: [SelectionDAG][RISCV] Avoid store merging across f...

Mikhail R. Gadelha via All-commits all-commits at lists.llvm.org
Sat Mar 22 06:35:46 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f138e36d522ea5b7d6e8cb614246cc457b696df6
      https://github.com/llvm/llvm-project/commit/f138e36d522ea5b7d6e8cb614246cc457b696df6
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2025-03-22 (Sat, 22 Mar 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/test/CodeGen/RISCV/rvv/stores-of-loads-merging.ll

  Log Message:
  -----------
  [SelectionDAG][RISCV] Avoid store merging across function calls (#130430)

This patch improves DAGCombiner's handling of potential store merges by
detecting function calls between loads and stores. When a function call
exists in the chain between a load and its corresponding store, we avoid
merging these stores if the spilling is unprofitable.

We had to implement a hook on TLI, since TTI is unavailable in
DAGCombine. Currently, it's only enabled for riscv.

This is the DAG equivalent of PR #129258



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