On 11/8/18 10:19 AM, Renlin Li wrote: >> Yes, this is the problem. We see from the dump, that r2040 does not >> conflict with >> hard reg r1: >> >> ;; a2040(r1597,l0) conflicts: <list of pseudo regs> >> ;; total conflict hard regs: >> ;; conflict hard regs: > I think you should look for axxx(r2040, ..)? > > Maybe I am wrong (not an expert of RA), from what I observed, it is the LRA > makes the code more complex. It decides to split the live range and spill > r2040. > It creates multiple instructions to reload it. > r2944 in LRA dump is the register which starts to go wrong. It is assigned as > r1.
Yes, IRA and LRA have similar code to compute conflicts. We need them both to compute that r2040 (and the reload pseudo(s) generated for it by LRA) conflict with r1. Peter