This allows Machine LICM to hoist the invariant 'mrs xX, TPIDR_EL0' instruction from within a loop.
Chad
Differential D31151
[AArch64] Mark a move of system register TPIDR_EL0 (thread pointer) as not having side effects. mcrosier on Mar 20 2017, 2:18 PM. Authored by
Details This allows Machine LICM to hoist the invariant 'mrs xX, TPIDR_EL0' instruction from within a loop. Chad
Diff Detail
Event TimelineComment Actions 'TP' is a little terse for a name. How about 'MOVbaseTLS' to match with 'MOVaddrTLS'? Comment Actions Ping. It would be great to get some feedback from other sub-target owners. FWIW, this is the current behavior of gcc, AFAICT. Comment Actions The idea looks fine to me, though I'd suggest including Utils/AArch64BaseInfo.h and using the TPIDR_EL0 enum instead of 0xde82 directly (from AArch64GenSystemOperands.inc). |