[llvm] [AMDGPU][SplitModule] Cleanup CallsExternal Handling (PR #106528)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 24 03:42:44 PDT 2024


================
@@ -103,6 +104,15 @@ static cl::opt<bool> NoExternalizeGlobals(
     cl::desc("disables externalization of global variable with local linkage; "
              "may cause globals to be duplicated which increases binary size"));
 
+static cl::opt<bool> NoExternalizeOnAddrTaken(
+    "amdgpu-module-splitting-no-externalize-address-taken", cl::Hidden,
+    cl::desc(
+        "disables externalization of functions whose addresses are taken"));
+
+static cl::opt<bool> InlineAsmIsIndirectCall(
+    "amdgpu-module-splitting-inline-asm-is-indirect-call", cl::Hidden,
+    cl::desc("consider inline assembly as an indirect call"));
----------------
arsenm wrote:

I don't think this option is useful as defined, and it introduces an inconsistency with the attributor treatment. While probably incorrect, the attributor currently assumes inline asm doesn't contain a call of any kind. If we really want a cl::opt, it should be used everywhere 

We probably should fix that though; we even assume there's no call if the asm directly refers to a function as a pointer argument 



https://github.com/llvm/llvm-project/pull/106528


More information about the llvm-commits mailing list