[PATCH] D34035: [LLD][ELF] Introduce Thunk reuse compatibility

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 8 07:10:55 PDT 2017


peter.smith created this revision.
Herald added subscribers: kristof.beyls, emaste, aemerson.

On ARM the interworking thunks are only produced for branch instructions that can't be changed into a blx instruction so only Thumb callers would call Thumb thunks and only ARM callers would call ARM thunks. With range extension thunks branch and link instructions may need a Thunk. These instructions can be rewritten as a blx and can use either ARM or Thumb thunks.

      

We introduce a compatibleWith() function so that a caller can check if an existing Thunk is compatible before reusing it. With the currently supported interworking thunks all the thunks are reusable by construction so there will be no impact on the tests.


https://reviews.llvm.org/D34035

Files:
  ELF/Relocations.cpp
  ELF/Thunks.cpp
  ELF/Thunks.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34035.101913.patch
Type: text/x-patch
Size: 4264 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170608/520af1f6/attachment.bin>


More information about the llvm-commits mailing list