Date: Wed, 7 Sep 2016 18:16:06 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r305550 - stable/11/contrib/llvm/lib/Target/AArch64 Message-ID: <201609071816.u87IG6kS009686@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Wed Sep 7 18:16:06 2016 New Revision: 305550 URL: https://svnweb.freebsd.org/changeset/base/305550 Log: MFC r305218: Pull in r277331 from upstream llvm trunk (by Diana Picus): [AArch64] Return the correct size for TLSDESC_CALLSEQ The branch relaxation pass is computing the wrong offsets because it assumes TLSDESC_CALLSEQ eats up 4 bytes, when in fact it is lowered to an instruction sequence taking up 16 bytes. This can become a problem in huge files with lots of TLS accesses, as it may slowly move branch targets out of the range computed by the branch relaxation pass. Fixes PR24234 https://llvm.org/bugs/show_bug.cgi?id=24234 Differential Revision: https://reviews.llvm.org/D22870 This fixes "error in backend: fixup value out of range" when compiling the misc/talkfilters port for AArch64. Reported by: sbruno PR: 201762 Modified: stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp ============================================================================== --- stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp Wed Sep 7 18:13:57 2016 (r305549) +++ stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp Wed Sep 7 18:16:06 2016 (r305550) @@ -52,6 +52,9 @@ unsigned AArch64InstrInfo::GetInstSizeIn case TargetOpcode::IMPLICIT_DEF: case TargetOpcode::KILL: return 0; + case AArch64::TLSDESC_CALLSEQ: + // This gets lowered to an instruction sequence which takes 16 bytes + return 16; } llvm_unreachable("GetInstSizeInBytes()- Unable to determin insn size");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609071816.u87IG6kS009686>