On 27/04/16 15:13, Kyrill Tkachov wrote: > Hi all, > > Another costs issue that came out of the investigation for PR 65932 is that > sign-extending loads get a higher cost than they should in the arm backend. > The problem is that when handling a sign-extend of a MEM we add the cost > of the load_sign_extend cost field and then recursively add the cost of the > inner MEM > rtx, which is bogus. This will end up adding an extra load cost on it. > > The solution in this patch is to just remove that recursive step. > With this patch from various CSE dumps I see much more sane costs assign to > these > expressions (such as 12 instead of 32 or higher). > > Bootstrapped and tested on arm-none-linux-gnueabihf. > > Ok for trunk? > > Thanks, > Kyrill > > 2016-04-27 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case): > Don't add cost of inner memory when handling sign-extended > loads.
Ok ... it took me a while to work out that this was sane. regards Ramana