> I really don't like this to be done outside of SRA (and it is written in a > non-MEM_REF way).
Could you elaborate on the latter point? If it can be improved, even in its current form... > For the testcase in question we scalarize back > 'i' in SRA (other scalars are optimized away already, but as SRA runs > before DSE it still gets to see stores to FRAME.i). Now I wonder > why we generate reasonable debug info even without inlining, > thus there has to be a association to the original decls with > the frame FIELD_DECLs. That is, lookup_decl_for_field should not be > necessary and what we use for debug info generation should be used by SRA > to assign a name to scalarized fields. The testcase is a toy example of course. > That alone would not solve your issue because of the 'arr' field in > the structure which cannot be scalarized (moved to a stand-alone > decl) by SRA. That's one missed feature of SRA though, and generally > useful. The improved scalarization of aggregates is the main point and what yielded the performance boost for SPARKSkein. > So no, I don't think this patch is the right approach. OK, but I came to the opposite conclusion when I first tried to do it in SRA and I don't think I will change my mind in the near future. Never mind then. -- Eric Botcazou