[llvm] [Mips] Fix compiler crash when returning fp128 after calling a functi… (PR #117525)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 16 18:13:28 PST 2024
yingopq wrote:
> I looked into this in more detail, and as far as I understand, the problem here is a confusion between the call return type and the function return type in CanLowerReturn. This function is used both for function returns and call return values, and we analyze the wrong one. This needs to be fixed by analyzing the correct type. Adding additional registers will change the actual calling convention to no longer use sret demotion.
Yes, your analysis above is right, the issue reason was "This function is used both for function returns and call return values, and we analyze the wrong one. "
I have considered to add a new parameter (eg, call return type) in function `CanLowerReturn`, but this would require to change every backend. I thought this change is bigger or would trigger other trouble, so I did not choose this method.
Now, did you support this above method?
Thanks!
https://github.com/llvm/llvm-project/pull/117525
More information about the llvm-commits
mailing list