[PATCH] D22870: [AArch64] Return the correct size for TLSDESC_CALLSEQ
Diana Picus via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 27 08:40:08 PDT 2016
rovka created this revision.
rovka added reviewers: t.p.northover, dexonsmith, kristof.beyls.
rovka added subscribers: llvm-commits, rengolin, emaste.
Herald added a subscriber: aemerson.
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://reviews.llvm.org/D22870
Files:
lib/Target/AArch64/AArch64.h
lib/Target/AArch64/AArch64BranchRelaxation.cpp
lib/Target/AArch64/AArch64InstrInfo.cpp
lib/Target/AArch64/AArch64TargetMachine.cpp
test/CodeGen/MIR/AArch64/inst-size-tlsdesc-callseq.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22870.65749.patch
Type: text/x-patch
Size: 5106 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160727/9d28f351/attachment.bin>
More information about the llvm-commits
mailing list