On Thu, May 25, 2023 at 4:42 PM Jeff Law <jeffreya...@gmail.com> wrote: > > > > On 5/25/23 06:35, Manolis Tsamis wrote: > > > > This pass tries to optimize memory offset calculations by moving them > > from add immediate instructions to the memory loads/stores. > > For example it can transform this: > > > > addi t4,sp,16 > > add t2,a6,t4 > > shl t3,t2,1 > > ld a2,0(t3) > > addi a2,1 > > sd a2,8(t2) > > > > into the following (one instruction less): > > > > add t2,a6,sp > > shl t3,t2,1 > > ld a2,32(t3) > > addi a2,1 > > sd a2,24(t2) > > > > Although there are places where this is done already, this pass is more > > powerful and can handle the more difficult cases that are currently not > > optimized. Also, it runs late enough and can optimize away unnecessary > > stack pointer calculations. > > > > The first patch in the series contains the implementation of this pass > > while the second is a minor change that enables cprop_hardreg's > > propgation of the stack pointer, because this pass depends on cprop > > to do the propagation of optimized operations. If preferred I can split > > this into two different patches (in which cases some of the testcases > > included will fail temporarily). > Thanks Manolis. Do you happen to know if this includes the fixes I > passed along to Philipp a few months back? My recollection is one fixed > stale DF data which prevented an ICE during bootstrapping, the other > needed to ignore debug insns in one or two places so that the behavior > didn't change based on the existence of debug insns. >
Hi Jeff, Yes this does include your fixes for DF and debug insns, along with some other minor improvements. Also, thanks for catching these! Manolis > > Jeff