================
@@ -62,6 +62,13 @@ namespace llvm {
                      LibFunc TheLibFunc, AttributeList AttributeList,
                      FunctionType *Invalid, ArgsTy... Args) = delete;
 
+  // Handle -mregparm for the given function.
+  // FIXME: This should likely be implemented in
+  // CodeGenModule::SetLLVMFunctionAttributes() since callers of
+  // markRegisterParameterAttributes() will not have gotten appropriate
+  // attributes for things like sign/zero-extension, etc.
----------------
efriedma-quic wrote:

This doesn't really properly capture the divide between clang, the frontend, 
and LLVM the optimizer.

What we want here is basically a warning: this interface shouldn't be used 
unless you know exactly what you're doing.  Then a FIXME on the clang side to 
indicate we plan to revise the CreateRuntimeFunction() interface at some point.

Suggested text on the LLVM API:

Note that this function is a rough approximation that only works for simple 
function signatures.  Note this does not apply other relevant attributes for 
function signatures, including sign/zero-extension for arguments and return 
values.

https://github.com/llvm/llvm-project/pull/89707
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to