In working on the in-memory sret tail-calling problem, I ran into this. As I want to adjust this code for sret, I figured it best to get this change in first. It turns out that there are no paths into LowerFormalParms that have already specified the sret register. We always materialize a virtual and then assign it to the physical reg at the point of the return. Thus the 'if (!reg)' body is always reachable. Tested by (a) grepping for setSRetReturnReg calls (there are no others), and (b) building and testing with this assert added.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo