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: Richard Biener <richard dot guenther at gmail dot com>
- Cc: renlin dot li at foss dot arm dot com, Jeff Law <law at redhat dot com>, "Vladimir N. 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>, kyrylo dot tkachov at arm dot com, Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- Date: Thu, 8 Nov 2018 08:29:00 -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> <191bf9ee-98c4-b87e-cc65-40e1fb5de0ea@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> <CAFiYyc30p5=RbShojcQTe394HsPA5yX+Ak9MtNiXCGAGAZfvFg@mail.gmail.com>
On 11/8/18 5:48 AM, Richard Biener wrote:
> Err, that looks very much like a hack that manages to hide the issue.
It's true we do not want to hide the issue by adding unneeded conflicts,
since that can lead to unnecessary spills. However, ...
> Esp. adding conflicts in a loop that says "See which defined values die here."
> is quite fishy.
..the original loop is dealing with some of the gory details you never read
about in academic RA papers. This code is used to catch the case where an insn
defines a register(s) that is never used. Because it is never used, it never
ends up in the "live" (ie, live and available) set, which can cause us to miss
some required conflicts.
That said, I still need to look at the RTL from the bad program before
determining whether the patch is correct or not. Computing accurate
conflict information is a delicate thing.
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