Adrian Prantl
75bee892be
Add LLDB and swift-reflection-dump support for WebAssembly
...
This patch adds parsing and extracting of the Swift reflection
metadata data segments from within the WebAssembly DATA section and
tests it using swift-reflection-dump. This is needed to allow LLDB to
acces Swift reflection metadata when attached to WebAssembly
processes.
rdar://159217213
2025-08-27 17:14:17 -07:00
Ben Barham
9779c18da3
Rename startswith to starts_with
...
LLVM is presumably moving towards `std::string_view` -
`StringRef::startswith` is deprecated on tip. `SmallString::startswith`
was just renamed there (maybe with some small deprecation inbetween, but
if so, we've missed it).
The `SmallString::startswith` references were moved to
`.str().starts_with()`, rather than adding the `starts_with` on
`stable/20230725` as we only had a few of them. Open to switching that
over if anyone feels strongly though.
2024-03-13 22:25:47 -07:00
Ben Barham
ef8825bfe6
Migrate llvm::Optional to std::optional
...
LLVM has removed llvm::Optional, move over to std::optional. Also
clang-format to fix up all the renamed #includes.
2024-02-21 11:20:06 -08:00
Adrian Prantl
5d978b44ca
Revert "Revert "Make the DWARF version emitted by the Swift compiler configurable.""
2023-10-26 12:29:18 -07:00
Adrian Prantl
2a32ca5944
Revert "Make the DWARF version emitted by the Swift compiler configurable."
2023-10-25 13:28:28 -07:00
Adrian Prantl
d19fe381fa
Use LLVM definitions for Swift section names (NFC)
2023-10-24 10:58:40 -07:00
Ben Barham
bfd26d01d5
Add missing header in ObjectFile
2023-07-28 09:03:28 -07:00
Josh Soref
871634b9f3
Spelling include ( #42616 )
...
* spelling: accessible
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: are
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: assume
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: attempt
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: children
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: convenience
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: creation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: default
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dereference
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: deserialization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: embedded
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: enriched
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: excluding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: for
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: global
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: guarantee
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: label
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: lifting
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: mangled
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: metadata
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: minimum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: offset
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: only
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: otherwise
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: output
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: overall
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: parameter
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: passed
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: performance
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: referenced
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: standard
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: syntax
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: that
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: trivia
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: truncate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: undesirable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: uniformly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: uninitialized
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: value
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: verification
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-25 09:00:59 -07:00
Augusto Noronha
87d41a4e27
Merge pull request #41454 from augusto2112/add-dwarf-segment
...
Make ObjectFile aware that the DWARF segment may contain Swift metadata
2022-02-19 18:56:56 -03:00
Augusto Noronha
49275a9091
Make ObjectFile aware that the DWARF segment may contain Swift metadata
2022-02-18 12:40:34 -03:00
Shubham Sandeep Rastogi
9315e922ea
Use Swift.def to define enums and switch cases for swift5 reflection sections
2022-02-11 14:40:52 -08:00
Pavel Yaskevich
bc013b3e4e
[ABI] Add "accessible functions" section to object format
2022-02-10 12:12:31 -08:00
Dave Lee
dee4c5dbf5
[Reflection] Add __TEXT to sectionContainsReflectionData
2022-02-07 15:15:11 -08:00
Artem Chikin
b4926dffe7
Merge pull request #41027 from artemcm/AddConformanceMetadataReader
...
Add extraction of protocol conformance descriptor info, as read from an object file image, to `TypeRefBuilder`.
2022-02-01 18:05:48 -08:00
Dave Lee
9d80ea21ba
use startswith for elf and coff too
2022-01-31 15:28:22 -08:00
Dave Lee
fd3054533b
describe how sectionContainsReflectionData is called
2022-01-31 15:18:16 -08:00
Dave Lee
1d5b4bebbe
__DATA,__const too
2022-01-28 15:18:34 -08:00
Dave Lee
e1a39bf059
use startswith for macho and add header doc
2022-01-28 15:18:33 -08:00
Dave Lee
e2be9a3ec7
[ABI] Add predicate to identify sections containing reflection data
2022-01-28 15:18:03 -08:00
Artem Chikin
e934fe201a
Add extraction protocol conformance descriptor extraction, as read from an object file image, to TypeRefBuilder.
2022-01-26 13:54:02 -08:00
Augusto Noronha
6e088c3863
Specify the segment name that contains the reflection sections.
2022-01-26 18:13:31 -03:00
Artem Chikin
d6d4216371
Add Conformance section to ReflectionInfo read from object files
2022-01-24 16:46:35 -08:00
Augusto Noronha
0a67868a13
Implement ReflectionContext::addImage with section finder
...
Implement a version of addImage that takes in a closure responsible
for finding the sections of interest. This allows for the registration
of metadata even in situations where the object file is not complete
(for example, when generated by the JIT).
2021-06-24 17:35:57 -03:00
Augusto Noronha
34c55e2d99
Add functionality that returns correct reflection section name for different object files
2020-08-10 17:21:08 -03:00