This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- From: Peter Bergner <bergner at linux dot ibm dot com>
- To: Renlin Li <renlin dot li at foss dot arm dot com>
- Cc: Jeff Law <law at redhat dot com>, Vladimir Makarov <vmakarov at redhat dot com>, Christophe Lyon <christophe dot lyon at linaro dot org>, gcc Patches <gcc-patches at gcc dot gnu dot org>, Segher Boessenkool <segher at kernel dot crashing dot org>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>, Kyrill Tkachov <kyrylo dot tkachov at arm dot com>, Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- Date: Thu, 8 Nov 2018 11:52:33 -0600
- Subject: Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- References: <db00fba8-f392-510f-7f75-31dd1eed6f87@linux.ibm.com> <CAKdteOZy3BBGy5LW1Lf+sdhsLZtK08VEGNvwnZtBXoON6YuNJQ@mail.gmail.com> <c232f957-f5e1-ea5c-f5bf-77622f01f0e9@redhat.com> <bb4202ae-efae-9bc6-9bd4-7129f64c5992@linux.ibm.com> <478a817c-719b-9c3c-5b38-de7b277d9f93@linux.ibm.com> <13a249ee-160b-2b28-151c-bed3faacbfc1@linux.ibm.com> <0363139a-01af-b0eb-0941-111c1d7395b5@redhat.com> <f2c1737a-6323-214b-91bf-140e5fc983f5@linux.ibm.com> <3cdd23c9-5d07-c26d-9a10-42a4a9d6f77a@foss.arm.com> <b7518a7d-bdd6-679f-c077-89f044444b90@linux.ibm.com> <90073537-824d-697c-0ed8-9b611f9064c5@redhat.com> <e1646057-b120-dfe2-5cc3-8eb4eb19f84a@linux.ibm.com> <db5cb080-6b34-88a4-7c81-4d938006f843@redhat.com> <57966a2f-6dfd-7f10-266e-2732d0df6874@foss.arm.com> <576b4545-69b9-5418-1635-a2668b8e6613@redhat.com> <61550a92-b5d1-9b45-3401-3e7c96f98088@foss.arm.com> <3f8c636b-06fd-8f64-ba00-00d7e8bdba54@linux.ibm.com> <780be720-c80e-c45a-d56e-7265cd5174da@foss.arm.com>
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
- References:
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register
- Re: [PATCH 2/2 v3][IRA,LRA] Fix PR86939, IRA incorrectly creates an interference between a pseudo register and a hard register