Skip to content

Create new CAS Blocks to represent missing DWARF sections #8620

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

rastogishubham
Copy link

@rastogishubham rastogishubham commented Apr 22, 2024

Cherry-pick #8576 to swift/release/6

In MCCAS we use MCCASBuilder::mergeMCFragmentContents to merge the
contents of DWARF sections before doing optimizations on them for
deduplication, while most sections only use MCDataFragments, some other
sections can use other kinds of fragments, make sure we support all
MCEncodedFragmentWithContents types.

(cherry picked from commit 45e539d)
MCCAS DWARF section materialization and creation can have a lot of
redundant code for most sections, this patch introduces some functions
to reduce the code duplication.

(cherry picked from commit 02326d7)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugStrOffsetsRef and
DebugStringOffsetsSectionRef to represent the debug_str_offsets section
in DWARF5.

(cherry picked from commit 3ebb5f1)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugLoclistsRef and DebugLoclistsSectionRef to
represent the debug_loclists section in DWARF5.

(cherry picked from commit d68ee59)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugRangesRef and DebugRangesSectionRef to
represent the debug_ranges section in DWARF4.

(cherry picked from commit e13e97f)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugLocRef and DebugLocSectionRef to represent
the debug_str_loc section in DWARF4.

(cherry picked from commit 94cd14c)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugRangelistsRef and DebugRangelistsSectionRef
to represent the debug_rnglist section in DWARF5.

(cherry picked from commit 8a8213c)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugLineStrRef and DebugLineStrSectionRef to
represent the debug_line_str section in DWARF5.

(cherry picked from commit c69d1a2)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugNamesRef and DebugNamesSectionRef
to represent the debug_names section in DWARF5.

(cherry picked from commit 9d0c069)
MCCAS has an ability to have different block types for different data,
this patch introduces DebugAppleNamesRef and DebugAppleNamesSectionRef
to represent the apple_names section in DWARF4.

(cherry picked from commit 2d62e3d)
MCCAS has an ability to have different block types for different data,
this patch introduces AppleTypesRef and AppleTypesSectionRef to
represent the apple_types section in DWARF4.

(cherry picked from commit 744d390)
MCCAS has an ability to have different block types for different data,
this patch introduces AppleNamespaceRef and AppleNamespaceSectionRef to
represent the apple_namepsac section in DWARF4.

(cherry picked from commit 1d95a08)
MCCAS has an ability to have different block types for different data,
this patch introduces AppleObjCRef and AppleObjCSectionRef to represent
the apple_objc section in DWARF4.

(cherry picked from commit 687a046)
@rastogishubham rastogishubham changed the title New cas blocks6 Create new CAS Blocks to represent missing DWARF sections Apr 22, 2024
@rastogishubham
Copy link
Author

@swift-ci please test

@adrian-prantl adrian-prantl merged commit dc49097 into swiftlang:swift/release/6.0 Apr 23, 2024
@rastogishubham rastogishubham deleted the NewCASBlocks6 branch April 23, 2024 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants