History log of /llvm-project/llvm/tools/llvm-readtapi/llvm-readtapi.cpp (Results 1 – 20 of 20)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...