rjmccall added a comment. Okay. So the only real ABI here is the layout of the memory that the arguments are actually written into? And that memory needs to be treated as constant?
Unfortunately, I think `byval` just doesn't match what you want because of the mutability — the frontend *has* to have a copy into a local to get IR with correct semantics, because `byval` is assumed to be locally mutable by both IR-generation and (potentially) LLVM optimization. And I don't think you really want non-`byval` indirect. So I guess the question is what we can do in the frontend to get the optimizer behavior you need. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79744/new/ https://reviews.llvm.org/D79744 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits