On Oct 23, 2014, at 9:02 AM, Jeff Law <l...@redhat.com> wrote: > On 10/20/14 21:35, Maxim Kuvyrkov wrote: >> Hi, >> >> This patch is a simple fix to allow decompose_address to handle >> SCRATCH'es during 2nd scheduler pass. This patch is a prerequisite >> for a scheduler improvement that relies on decompose_address to parse >> insns. >> >> Bootstrapped and regtested on x86_64-linux-gnu and regtested on >> arm-linux-gnueabihf and aarch64-linux-gnu. > I'd like to see some further discussion here. > > get_base_term is supposed to look at its argument as a base address. I'm > curious under what circumstances you want to have a SCRATCH as a base address? > > I didn't see anything in patch #8 which obviously dependended on this, but > maybe it's in there, but more subtle than expected. > > If you can justify why it's useful to handle scratch in here, then the patch > will be fine.
Without this patch decompose_address() ICEs during second scheduler pass on prologue instructions that usually have "(clobber (mem:BLK (scratch))". The only reason for this patch is to prevent that fault and enable use of decompose_address during 2nd scheduler pass. Does this answer your question, or are you looking for a more in-depth reason? Thank you, -- Maxim Kuvyrkov www.linaro.org