On Mon, Feb 16, 2015 at 11:26 AM, Thomas Preud'homme <thomas.preudho...@arm.com> wrote: > Hi, > > The RTL cprop pass in GCC operates by doing a local constant/copy propagation > first and then a global one. In the local one, if a constant cannot be > propagated (eg. due to constraints of the destination instruction) a copy > propagation is done instead. However, at the global level copy propagation is > only tried if no constant can be propagated, ie. if a constant can be > propagated but the constraints of the destination instruction forbids it, no > copy propagation will be tried. This patch fixes this issue. This solves the > redundant ldr problem in GCC32RM-439. >
This would address https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34503#c4 I'll have a look at the patch tonight. Ciao! Seven