Re: [PATCH] sra: SRA of non-escaped aggregates passed by reference to calls

2023-11-24 Thread Martin Jambor
(EAF_NO_DIRECT_CLOBBER | EAF_NO_INDIRECT_CLOBBER)) >> + return true; > > Why both EAF_NO_DIRECT_CLOBBER and EAF_NO_INDIRECT_CLOBBER? I think > EAF_NO_DIRECT_CLOBBER is enough unless you think that you didn't rule > out the decl to point to itself by the escaping means? Warran

Re: [PATCH] sra: SRA of non-escaped aggregates passed by reference to calls

2023-11-16 Thread Richard Biener
On Thu, 16 Nov 2023, Martin Jambor wrote: > Hello, > > PR109849 shows that a loop that heavily pushes and pops from a stack > implemented by a C++ std::vec results in slow code, mainly because the > vector structure is not split by SRA and so we end up in many loads > and stores into it. This is

[PATCH] sra: SRA of non-escaped aggregates passed by reference to calls

2023-11-16 Thread Martin Jambor
Hello, PR109849 shows that a loop that heavily pushes and pops from a stack implemented by a C++ std::vec results in slow code, mainly because the vector structure is not split by SRA and so we end up in many loads and stores into it. This is because it is passed by reference to (re)allocation me