[all-commits] [llvm/llvm-project] 5ecc64: FunctionAttrs: Basic propagation of nofpclass

Matt Arsenault via All-commits all-commits at lists.llvm.org
Sat Feb 21 03:31:36 PST 2026


  Branch: refs/heads/users/arsenm/function-attrs/basic-propagate-nofpclass
  Home:   https://github.com/llvm/llvm-project
  Commit: 5ecc64aea3f9a20756583bd91de5e6bb2627165d
      https://github.com/llvm/llvm-project/commit/5ecc64aea3f9a20756583bd91de5e6bb2627165d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-02-21 (Sat, 21 Feb 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    A llvm/test/Transforms/FunctionAttrs/nofpclass.ll

  Log Message:
  -----------
  FunctionAttrs: Basic propagation of nofpclass

Perform caller->callee propagation of nofpclass on callsites. As
far as I can tell the only prior callsite to callee propagation here
was for norecurse. This doesn't handle transitive callers.

I was hoping to avoid doing this, and instead get attributor/attributor-light
enabled in the default pass pipeline. nofpclass propagation enabled by
default is the main blocker for eliminating the finite_only_opt global
check in device-libs, but this single level of propagation is most likely
sufficient for that use. Implemnting this here is probably the most expedient
path to removing the control library.


  Commit: aa13cd677e0c52a5a7f52c09db47ccf759eb8230
      https://github.com/llvm/llvm-project/commit/aa13cd677e0c52a5a7f52c09db47ccf759eb8230
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-02-21 (Sat, 21 Feb 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/nofpclass.ll

  Log Message:
  -----------
  Address comments


Compare: https://github.com/llvm/llvm-project/compare/a4107278677b...aa13cd677e0c

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