JonPsson1 wrote:

> I'm not sure I really follow what's going on here. Can you update the PR 
> description and explain what's going on here, what's the motivation of doing 
> this, and what's the plan of using them?

So on some targets, like SystemZ, any argument passed (or returned) is per the 
C calling conventioned expected to be extended to the full register width. So 
passing an i32 requires an extension to i64. So when a call is emitted 
somewhere, it is important (for legality reasons) that such attributes are 
added. If missing, wrong-code problems might result as the receiving end is 
allowed to assume that such extensions are made (i.e. can optimize them away on 
their side if present). 

This is a general concern across multiple parts of the compiler, see 
https://github.com/llvm/llvm-project/pull/223755 where other patches are listed 
in completely unrelated areas but with the same concern of the arguments.

https://github.com/llvm/llvm-project/pull/232938
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to