[clang] [llvm] target ABI: improve call parameters extensions handling (PR #100757)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Sat Jul 27 11:06:30 PDT 2024


================
@@ -1185,6 +1189,9 @@ Currently, only the following parameter attributes are defined:
     value should be sign-extended to the extent required by the target's
     ABI (which is usually 32-bits) by the caller (for a parameter) or
     the callee (for a return value).
+``noext`` This indicates to the code generator that the parameter or return
+    value has the high bits undefined, as for a struct in register, and
+    therefore does not need to be sign or zero extended.
----------------
efriedma-quic wrote:

"Skipped ABI computations", meaning code that assumes that C int(int) can be blindly translated to i32(i32).  Like https://reviews.llvm.org/D133949.  The goal is to get some sort of error from code like that, instead of an obscure miscompile.

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


More information about the cfe-commits mailing list