http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49515
--- Comment #1 from Richard Henderson <rth at gcc dot gnu.org> 2011-06-23 15:39:19 UTC --- (In reply to comment #0) > Does !dtprello relocation need live $16 register? The relevant patterns in > alpha.md do not model that dependancy. No, DTPREL relocations are constants. They are the offset to be added to a TLSLDM base value. You can see that happening both in the old and new code sequences. The code difference you show cannot be the real problem. The register allocator has made a poorer choice in 4.7, leading to an extra move, but the code that you show is exactly equivalent. Is linker relaxation messing with this code sequence, perhaps?