2012/9/27 Georg-Johann Lay <a...@gjlay.de>: > PR52543 required to represent a load from non-generic address spaces as UNSPEC > instead of as MEM to avoid a gross code bloat. > > http://gcc.gnu.org/PR52543 > > lower-subreg's cost model is still broken: It assumes that any loads from MEM > are from the generic address space and does not care for address spaces in its > cost model. > > This patch undoes the changes from SVN r185605 > > http://gcc.gnu.org/viewcvs?view=revision&revision=185605 > > and installs a different but less intrusive hack around PR52543: > > targetm.mode_dependent_address_p has an address space parameter so that the > backend can pretend all non-generic addresses are mode-dependent. > > This keeps lower-subreg.c from splitting the loads, and it is possible to > represent the loads as MEM and there is no more the need to represent them as > UNSPECs. > > This patch is still not an optimal solution but the code is much closer to a > clean solution now. > > Ok for trunk?
You can apply it. Denis.