Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6 |
|
#
dd647e3e |
| 11-Dec-2024 |
Chandler Carruth <chandlerc@gmail.com> |
Rework the `Option` library to reduce dynamic relocations (#119198)
Apologies for the large change, I looked for ways to break this up and
all of the ones I saw added real complexity. This change f
Rework the `Option` library to reduce dynamic relocations (#119198)
Apologies for the large change, I looked for ways to break this up and
all of the ones I saw added real complexity. This change focuses on the
option's prefixed names and the array of prefixes. These are present in
every option and the dominant source of dynamic relocations for PIE or
PIC users of LLVM and Clang tooling. In some cases, 100s or 1000s of
them for the Clang driver which has a huge number of options.
This PR addresses this by building a string table and a prefixes table
that can be referenced with indices rather than pointers that require
dynamic relocations. This removes almost 7k dynmaic relocations from the
`clang` binary, roughly 8% of the remaining dynmaic relocations outside
of vtables. For busy-boxing use cases where many different option tables
are linked into the same binary, the savings add up a bit more.
The string table is a straightforward mechanism, but the prefixes
required some subtlety. They are encoded in a Pascal-string fashion with
a size followed by a sequence of offsets. This works relatively well for
the small realistic prefixes arrays in use.
Lots of code has to change in order to land this though: both all the
option library code has to be updated to use the string table and
prefixes table, and all the users of the options library have to be
updated to correctly instantiate the objects.
Some follow-up patches in the works to provide an abstraction for this
style of code, and to start using the same technique for some of the
other strings here now that the infrastructure is in place.
show more ...
|
Revision tags: llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
2d48489c |
| 15-Nov-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[Clang][Darwin] Introduce `SubFrameworks` as a SDK default location (#115048)
* Have clang always append & pass System/Library/SubFrameworks when determining default sdk search paths.
* Teach clang
[Clang][Darwin] Introduce `SubFrameworks` as a SDK default location (#115048)
* Have clang always append & pass System/Library/SubFrameworks when determining default sdk search paths.
* Teach clang-installapi to traverse there for framework input.
* Teach llvm-readtapi that the library files (TBD or binary) in there should be considered private.
resolves: rdar://137457006
show more ...
|
Revision tags: llvmorg-19.1.3 |
|
#
61a286ac |
| 21-Oct-2024 |
Kazu Hirata <kazu@google.com> |
[tools] Don't call StringRef::str() when calling StringMap::find (NFC) (#113119)
StringMap::find takes StringRef. We don't need to create an instance
of std::string from StringRef only to convert
[tools] Don't call StringRef::str() when calling StringMap::find (NFC) (#113119)
StringMap::find takes StringRef. We don't need to create an instance
of std::string from StringRef only to convert it right back to
StringRef.
show more ...
|
#
a99bf0f6 |
| 18-Oct-2024 |
Kazu Hirata <kazu@google.com> |
[llvm-readtapi] Simplify code with StringMap::operator[] (NFC) (#112824)
|
Revision tags: llvmorg-19.1.2 |
|
#
51340480 |
| 01-Oct-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Add option to ignore architecture slices to ignore (#110615)
For qualification purposes, it's helpful to ignore certain slices that
can be expected to differ.
|
Revision tags: llvmorg-19.1.1 |
|
#
74dcf0b5 |
| 25-Sep-2024 |
Abhina Sree <Abhina.Sreeskantharajan@ibm.com> |
[SystemZ][z/OS] Open text files in text mode (#109972)
This patch continues the work that was started here
https://reviews.llvm.org/D99426 to correctly open text files in text
mode.
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
2c0a185e |
| 25-Apr-2024 |
Fangrui Song <i@maskray.me> |
Remove unneeded LLVM_FALLTHROUGH. NFC
|
Revision tags: llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2 |
|
#
6eb7273b |
| 06-Feb-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Ensure universal dylibs record the same input path location across slices (#80875)
resolves: https://github.com/llvm/llvm-project/issues/80868
|
#
5bcd9105 |
| 03-Feb-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Use ExitOnError instead of errorcodes for `readlink` wrapper
Silences: ` error C4716: 'read_link': must return a value` windows error
|
#
7189219e |
| 03-Feb-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Add support for stubify-ing directories (#76885)
When given a directory input `llvm-readtapi` traverses through the
directory to find dylibs or tbd files to operate on. TBD files will be
[readtapi] Add support for stubify-ing directories (#76885)
When given a directory input `llvm-readtapi` traverses through the
directory to find dylibs or tbd files to operate on. TBD files will be
created with the same base file name as the dylib. Symlinks should be
created if the input is one.
This also introduces options to delete input files which are defined as
library files that existed before `readtapi -stubify` was invoked. Also
the ability to delete private libraries where private libraries are in a
predefined file system locations on darwin based platforms.
show more ...
|
Revision tags: llvmorg-18.1.0-rc1, llvmorg-19-init |
|
#
b64992a3 |
| 02-Jan-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Cleanup usages of ExitOnError, NFCI (#76745)
|
#
c6f29dbb |
| 20-Dec-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Setup simple stubify support (#76075)
Stubify broadly takes either tbd files or binary dylibs and turns them
into tbd files. In future patches, stubify will also allow additional
inform
[readtapi] Setup simple stubify support (#76075)
Stubify broadly takes either tbd files or binary dylibs and turns them
into tbd files. In future patches, stubify will also allow additional
information to be embedded into the final TBD output too.
Add Util APIs to TextAPI for common operations used by readtapi for now.
show more ...
|
#
142e567c |
| 12-Dec-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Cleanup printing command line options (#75106)
Also, add a version option.
|
#
86fa4b2c |
| 11-Dec-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Swap anon namespaces in favor of annotating `static`, NFC (#75078)
|
Revision tags: llvmorg-17.0.6 |
|
#
e1f69b86 |
| 27-Nov-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Add Extract & Remove architecture functionality (#72657)
This adds functionality to tbd files similar to what `lipo -extract`
and `lipo -remove` does for binaries.
|
#
bc191ac3 |
| 26-Nov-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Use consistent error handling diagnostics (#73419)
|
#
ae182dbb |
| 17-Nov-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Add Merge functionality (#72656)
Merge allows a user to merge different files (tbds for now or dylibs in
the future) to emit out a single tbd with all input contents. This does
require
[readtapi] Add Merge functionality (#72656)
Merge allows a user to merge different files (tbds for now or dylibs in
the future) to emit out a single tbd with all input contents. This does
require that all inputs represent the same library.
show more ...
|
#
3b48a7a0 |
| 15-Nov-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] add optional --<option>"=" to some cli opts (#72426)
|
#
ec64af59 |
| 15-Nov-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[readtapi] Use OptParser.td for options (#72183)
This includes revamping how --compare was handled and adds `-o` ontop of
tablegen approach.
This will be used to add more complex options.
|
Revision tags: llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2 |
|
#
5656d797 |
| 31-Jul-2023 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[llvm][tapi-diff] Transition diff-tool to be more general purpose
This is the first of transition tapi-diff to be readtapi. This tool will eventually replace functionality for Xcode's `xcrun tapi st
[llvm][tapi-diff] Transition diff-tool to be more general purpose
This is the first of transition tapi-diff to be readtapi. This tool will eventually replace functionality for Xcode's `xcrun tapi stubify` and `xcrun tapi archive`. This patch updates the tool name and is a minor refactor for the driver to handle more options.
Reviewed By: zixuw
Differential Revision: https://reviews.llvm.org/D153045
show more ...
|