[AArch64] Mark mrs of TPIDR_EL0 (thread pointer) as not having side effects.
authorChad Rosier <mcrosier@codeaurora.org>
Mon, 27 Mar 2017 15:52:38 +0000 (15:52 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Mon, 27 Mar 2017 15:52:38 +0000 (15:52 +0000)
commit862a41270fbfdb7ee94f639ab1eaa3da8e4cdf99
treed7443e354c722a327351ebaf386f3593795b9af7
parent784004e5dfe6b050a7f0a8b084538fc5fcfc5ec2
[AArch64] Mark mrs of TPIDR_EL0 (thread pointer) as not having side effects.

Among other things, this allows Machine LICM to hoist a costly 'mrs'
instruction from within a loop.

Differential Revision: http://reviews.llvm.org/D31151

llvm-svn: 298851
llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/thread-pointer.ll [new file with mode: 0644]