Re: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0
Bin Cheng wrote: Thanks for reviewing, I modified the ChangeLog. Is it ok for trunk and 4.7? Yes, this is OK for trunk. Once it has been in trunk for a week or so and nobody reported any regressions, it would also be OK to backport to 4.7. Thanks, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com
RE: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0
-Original Message- From: Ulrich Weigand [mailto:uweig...@de.ibm.com] Sent: Thursday, May 03, 2012 6:11 PM To: Bin Cheng Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0 Bin Cheng wrote: Thanks for reviewing, I modified the ChangeLog. Is it ok for trunk and 4.7? Yes, this is OK for trunk. Committed to trunk. As in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52804 Thanks. Once it has been in trunk for a week or so and nobody reported any regressions, it would also be OK to backport to 4.7. Thanks, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com
RE: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0
Ping. Hi, could anyone help me with this bug please, if you have time? Any comments will be appreciated. Thanks very much. -Original Message- From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On Behalf Of Bin Cheng Sent: Friday, April 20, 2012 1:51 PM To: gcc-patches@gcc.gnu.org Subject: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0 Hi, Previously I reported pr52804 in bugzilla about reload pass reloads wrong register. After investigation I believe it is a bug in reload pass and here comes the patch. You can refer to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52804 for details. In short, I think the confliction of reloads with type RELOAD_FOR_INPADDR_ADDRESS and type RELOAD_FOR_INPUT_ADDRESS should be handled in reload_reg_reaches_end_p. Also I think RELOAD_FOR_OUTPUT_ADDRESS/RELOAD_FOR_OUTADDR_ADDRESS have the issue symmetrically, though I have no test case for it. I have tested the patch for x86 and arm. Is it OK? I think it is a bug of reload, and I understand reload pass should be rarely touched, so any comments are highly appreciated on this topic. Thanks very much. 2012-04-20 Bin Cheng bin.ch...@arm.com PR target/52804 * reload1.c (reload_reg_reaches_end_p): Check whether successor reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register of current one with type RELOAD_FOR_INPADDR_ADDRESS.
Re: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0
Bin Cheng wrote: In short, I think the confliction of reloads with type RELOAD_FOR_INPADDR_ADDRESS and type RELOAD_FOR_INPUT_ADDRESS should be handled in reload_reg_reaches_end_p. Also I think RELOAD_FOR_OUTPUT_ADDRESS/RELOAD_FOR_OUTADDR_ADDRESS have the issue symmetrically, though I have no test case for it. Yes, I agree with your reasoning here. This looks like an oversight. PR target/52804 * reload1.c (reload_reg_reaches_end_p): Check whether successor reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register of current one with type RELOAD_FOR_INPADDR_ADDRESS. This is OK. (You also ought to mention the RELOAD_FOR_OUTADDR_ADDRESS part of the change in the ChangeLog.) Thanks, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com
RE: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0
-Original Message- From: Ulrich Weigand [mailto:uweig...@de.ibm.com] Sent: Thursday, May 03, 2012 12:05 AM To: Bin Cheng Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH, reload] Fix bug pr52804, RELOAD pass reloads wrong register on ARM for cortex-m0 Bin Cheng wrote: In short, I think the confliction of reloads with type RELOAD_FOR_INPADDR_ADDRESS and type RELOAD_FOR_INPUT_ADDRESS should be handled in reload_reg_reaches_end_p. Also I think RELOAD_FOR_OUTPUT_ADDRESS/RELOAD_FOR_OUTADDR_ADDRESS have the issue symmetrically, though I have no test case for it. Yes, I agree with your reasoning here. This looks like an oversight. PR target/52804 * reload1.c (reload_reg_reaches_end_p): Check whether successor reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register of current one with type RELOAD_FOR_INPADDR_ADDRESS. This is OK. (You also ought to mention the RELOAD_FOR_OUTADDR_ADDRESS part of the change in the ChangeLog.) Thanks for reviewing, I modified the ChangeLog. Is it ok for trunk and 4.7? I am not sure whether this can be treated as a regression in 4.7 branch since PR52804 has not been confirmed yet. 2012-05-03 Bin Cheng bin.ch...@arm.com PR target/52804 * reload1.c (reload_reg_reaches_end_p): Check whether successor reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register of current one with type RELOAD_FOR_INPADDR_ADDRESS. Same stands for RELOAD_FOR_OUTPUT_ADDRESS and RELOAD_FOR_OUTADDR_ADDRESS.