[llvm] [LangRef] Add a description of the semantics of call signatures. (PR #136189)
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 18 10:23:01 PDT 2025
joker-eph wrote:
>Statically determinable undefined behavior is not invalid IR, nor should it be.
I agree with this in general, but I don't think you're applying the right reasoning here. We had something that until LLVM 15 was a clear invalid IR by construction: it's not a "runtime behavior" that we'd have to guess here but a static construct by definition. The change in LLVM 15 dropped the structural information on the floor without attempting to preserve it, causing this regression.
> If we were to mandate that callsite types match, it now introduces special case that imposes restrictions on what IR transforms are possible, which brings API complexity and compile time costs to avoid. Any IR transform that touches a pointer cannot simply do a RAUW or other propagation of the value
Well, how was this working until LLVM 16?
https://github.com/llvm/llvm-project/pull/136189
More information about the llvm-commits
mailing list