diff options
author | Peter Smith <peter.smith@linaro.org> | 2017-01-27 13:10:16 +0000 |
---|---|---|
committer | Peter Smith <peter.smith@linaro.org> | 2017-01-27 13:10:16 +0000 |
commit | 5191c6f9456f893ff6160b83b6a5d816c0535fff (patch) | |
tree | ee04436fc242d7c458f47b4090a40aae3a5ed6be /clang/lib/Driver/Tools.cpp | |
parent | 810055ee232cd1c60714a14bdd13dde17590bc53 (diff) | |
download | bcm5719-llvm-5191c6f9456f893ff6160b83b6a5d816c0535fff.tar.gz bcm5719-llvm-5191c6f9456f893ff6160b83b6a5d816c0535fff.zip |
[ELF][ARM] Use SyntheticSections for Thunks
Thunks are now implemented by redirecting the relocation to the
symbol S, to a symbol TS in a Thunk. The Thunk will transfer control
to S. This has the following implications:
- All the side-effects of Thunks happen within createThunks()
- Thunks are no longer stored in InputSections and Symbols no longer
need to hold a pointer to a Thunk
- The synthetic Thunk sections need to be merged into OutputSections
This implementation is almost a direct conversion of the existing
Thunks with the following exceptions:
- Mips LA25 Thunks are placed before the InputSection that defines
the symbol that needs a Thunk.
- All ARM Thunks are placed at the end of the OutputSection of the
first caller to the Thunk.
Range extension Thunks are not supported yet so it is optimistically
assumed that all Thunks can be reused.
Differential Revision: https://reviews.llvm.org/D29129
llvm-svn: 293283
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
0 files changed, 0 insertions, 0 deletions