[PATCH] D122091: [amdgpu] Elide module lds allocation in kernels with no callees

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 21 06:01:08 PDT 2022


arsenm added a comment.

I don't like using an attribute for this (especially one set to a negative value). Ultimately the passes need to understand how much will be allocated.

Plus, it turns out you can't rely so heavily on the call graph analysis for correctness since it doesn't see calls through aliases.



================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:380
+          const CallGraphNode *N = CG[&Func];
+          const bool CalleesRequireModuleLDS = N->size() > 0;
+
----------------
I don't think this actually works for indirect calls (or even calls through aliases)


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp:36
+  const char *Attr = "amdgpu-requires-module-lds";
+  if (F.hasFnAttribute(Attr))
+    CalleeRequiresModuleLDS = F.getFnAttribute(Attr).getValueAsBool();
----------------
You can just do getFnAttribute, you don't need a second query


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122091/new/

https://reviews.llvm.org/D122091



More information about the llvm-commits mailing list