On Fri, Oct 10, 2014 at 10:03:38AM -0600, Jeff Law wrote: > Can you add a PR markers to your changelog > > PR target/8340 > PR middle-end/47602 > PR rtl-optimization/55458 > > Actually I think there is an additional test in 47602. Can you please add > it to the suite? You'll also want to change the state of 47602 to > RESOLVED/FIXED.
Unfortunately this broke bootstrap on x86_64/i686-linux, see http://gcc.gnu.org/PR63534 - pretty much everything with -m32 -fsplit-stack -fpic ICEs, -m32 -fpic -p results in wrong-code, and I see significant code quality regressions even on simple testcases. For the first two, I think (and said it before already) that the current model of emitting set_got from a target hook during RA can't work, as there can be calls in the prologue, and the prologue is inserted before the set_got in that case. I really think the RA should in that case just tell the backend whether and in which register it wants to have the PIC register loaded upon start of the function, and it should be emit prologue pass that should arrange for that. As for the code quality, either some RA improvements are needed, or postreload must be able to fix it up, or hardreg propagation (though, cprop_hardreg is forward propagation rather than backwards, right?). Better before prologue is emitted though, because that will save/restore the badly chosen hard reg too. Jakub