<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<div class="moz-cite-prefix">24.09.2019 3:05, David Blaikie пишет:<br>
</div>
<blockquote type="cite"
cite="mid:CAENS6Eu1ekinfJbMYn9_-QZoqETizY667Hp9=_ezJfbJxhvUYw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Sep 20, 2019 at 1:41
PM Alexey Lapshin <<a href="mailto:a.v.lapshin@mail.ru"
target="_blank" moz-do-not-send="true">a.v.lapshin@mail.ru</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div>19.09.2019 4:24, David Blaikie пишет:</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Sep 18,
2019 at 7:25 AM Alexey Lapshin <<a
href="mailto:a.v.lapshin@mail.ru"
target="_blank" moz-do-not-send="true">a.v.lapshin@mail.ru</a>>
wrote:<br>
</div>
</div>
</div>
</blockquote>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>1. Minimize or entirely avoid
references from subprograms into other
parts of .debug_info section. That
would simplify splitting and removing
subprograms out in that sense that it
would minimize the number of
references that should be parsed and
followed. (DW_FORM_ref_subroutine
instead of DW_FORM_ref_*, ?)<br>
</div>
</blockquote>
<div><br>
Not sure I follow - by "other parts of
the .debug_info section" do you mean in
the same CU, or cross CU references? Any
particular references you have in mind?
Or encountered in practice?<br>
</div>
</div>
</div>
</blockquote>
I mean here all kinds of references into
.debug_info section.</div>
</blockquote>
<div><br>
</div>
<div>Ah, not only references from other places
/into/ .debug_info (which don't really exist, so
far as I know) but any references to locations
within debug_info.<br>
<br>
Reducing these isn't super-viable - types being
the most common examples. Though now I understand
what you're getting at partly around the
debug_type_table idea - adding a level of
indirection to type references. So it'd be easy to
find only one place to fix when removing chunks of
debug_info (updating only the type table without
having to find all the places inside debug_info to
touch). That indirection would come at a size
cost, of course - and an overhead for DWARF
parsers having to follow that indirection. Doesn't
make it impossible - just tradeoffs to be aware
of.<br>
<br>
Though that's not the only DIE references -
without removing them all there'd still be a fair
bit of overhead for finding any remaining ones and
applying them. If an indirection table is to be
added, maybe a generalized one (for any DIE
reference) rather than one only for types would be
good.<br>
<br>
</div>
</div>
</div>
</blockquote>
<p>yes, some general indirection table would probably be
useful. <br>
But, types would still require specialized handling.<br>
Types have "type hash" and need some specific logic
around that.<br>
</p>
</div>
</blockquote>
<div>This indirection is essentially the same as relocations
& could be implemented that way (though no matter the
solution you'd need some attribute on the CU that says "I
don't use any CU-local DIE offsets" so an implementation
didn't have to go searching/scanning for such offsets
(though I guess it'd be cheap to scan for that by just
looking at the abbreviations & if you don't see any
CU-local DIE offset forms, use the fast-path)). A custom
DWARF format would be potentially more compact than general
ELF relocations. <br>
</div>
</div>
</div>
</blockquote>
<p><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">I see, so
indirection table(or just relocations) will speedup references
patching. There would not be necessary to parse DWARF to find
all references which should be corrected. They already would be
gathered in the "indirection table"(or relocations table) and as
the result patching process would be executed faster.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<br style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">But that
solution has a cost. You've already mentioned it. Size of debug
info would be increased. </span><br style="color: rgb(0, 0,
0); font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 16px; font-style: normal; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255); text-decoration-style:
initial; text-decoration-color: initial;">
<br style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">My original
suggestion was to evaluate variant with a minimal size of debug
info.</span><br style="color: rgb(0, 0, 0); font-family:
Calibri, Arial, Helvetica, sans-serif; font-size: 16px;
font-style: normal; font-variant-ligatures: normal;
font-variant-caps: normal; font-weight: 400; letter-spacing:
normal; orphans: 2; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255); text-decoration-style:
initial; text-decoration-color: initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">"Types
table"/"bag of DWARF" allows us to have minimal size by
deduplicating base/proxy types and avoiding fragmentation.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">And if
performance would be insufficient, then speed up it.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">Indirection
table is an option which would allow having that speedup.</span></p>
<br>
<blockquote type="cite"
cite="mid:CAENS6Eu1ekinfJbMYn9_-QZoqETizY667Hp9=_ezJfbJxhvUYw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>2. Create additional section -
global types table
(.debug_types_table). That would
significantly reduce the number of
references inside .debug_info section.
It also makes it possible to have a
4-byte reference in this section
instead of 8-bytes reference into type
unit (DW_FORM_ref_types instead of
DW_FORM_ref_sig8). It also makes it
possible to place base types into this
section and avoid per-compile unit
duplication of them. Additionally,
there could be achieved size reduction
by not generating type unit header.
Note, that new section -
.debug_types_table - differs from
DWARF4 section .debug_types in that
sense that: it contains unique type
descriptors referenced by offsets
instead of list of type units
referenced by DW_FORM_ref_sig8; all
table entries share the same
abbreviations and do not have type
unit headers.<br>
</div>
</blockquote>
<div><br>
What do you mean when you say "global
types table" the phrasing in the above
paragraph is present-tense, as though
this thing exists but doesn't seem to
describe what it actually is and how it
achieves the things the text says it
achieves. Perhaps I've missed some
context here.<br>
</div>
</div>
</div>
</blockquote>
<p><br>
</p>
<p>The "global types table" does not exist yet.
It could be created if the discussed approach
would be considered useful. <br>
</p>
</div>
</blockquote>
<div><br>
</div>
<div>Ah, the present-tense language was a bit
confusing for me when discussing a thing that
doesn't exist yet & not having provided a
description of what it might be or might contain
and why it would exist/what it would achieve.</div>
</div>
</div>
</blockquote>
<p>I should've written it more precise.<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p> Please check the comparison of possible
"global types table" and currently existed
type units: <a
href="https://reviews.llvm.org/P8164"
target="_blank" moz-do-not-send="true">https://reviews.llvm.org/P8164</a></p>
</div>
</blockquote>
<div>Ah, that proposed version makes it easy to
remove subprograms from debug_info without having
to fix up type references (but you still have to
have the code to fix up other cross-CU references,
like abstract_origin, so I'm not sure it provides
that much value) but doesn't make it easy to
remove types (becaues you'd have to go looking
through the debug_info section to update all the
type offsets (which I guess you have to do anyway
to find the type references) and removing the
types still also requires fixing up the types that
reference each other... <br>
<br>
So I'm not seeing a big win there.</div>
</div>
</div>
</blockquote>
<p>Correct. Even if types were put into a separated table,
there still would be necessary to: <br>
"go looking through the debug_info section to update
all the type offsets"; <br>
"removing the types still also requires fixing up the
types that reference each other".<br>
<br>
But additionally it allows to have following benefits:<br>
<br>
1. Size reduction by remove fragmentation. In
"-fdebug-types-section" solution every type which is
put into type unit requires:<br>
- additional type unit header, <br>
- section header(since it put into separate section),
<br>
- proxy type copies inside compilation unit. <br>
<br>
Putting types into separate table allows not to create
above data for every type.</p>
<p>2. Size reduction by deduplicate base types. In
"-fdebug-types-section" solution base types are not
deduplicated at all.</p>
</div>
</blockquote>
<div><br>
Base types are pretty small - not sure there'd be much to
save by indirection (for classic base types like "int" - for
non-trivial but non-user-defined types like subroutine types
there might be more opportunity for savings). & you'd
still have some cost of indirection to tradeoff - so I don't
think it's always going to be the right solution to indirect
everything. <br>
<br>
There's a lot of design considerations in this problem
space, let's put it that way.<br>
</div>
</div>
</div>
</blockquote>
<p><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">For the clang
binary they(base/proxy types) take ~1.5% of overall .debug_info
+ .debug_types. Another ~1.5% takes fragmentation from #1.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;"> </span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">Implementing
"bag of DWARF"/"generalized type unit"/"types table" allows to
deduplicate base/proxy types and avoid fragmentation.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">It could give
approx 3% of debug info for either reducing debug info size
either creating "indirection table" accelerator.</span><br
style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<br style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial;">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">My idea is to
start from the minimum size of debug info and to check whether
parsing performance would be enough. The PoC implementation for
that proposal does all kind of things: parses abbreviations,
removes parts of debug_info, </span><span style="color: rgb(0,
0, 0); font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 16px; font-style: normal; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255); text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;">searches for references which should
be patched, patch references. Its performance looks quite good.
<br>
</span></p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CAENS6Eu1ekinfJbMYn9_-QZoqETizY667Hp9=_ezJfbJxhvUYw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p> </p>
<p>3. Performance improvement by handling fewer data. #1
leads to loading and parsing fewer bits.<br>
<br>
4. Performance improvement by handling fewer references.
Simpler reference chains allow parsing references
faster.<br>
Instead of this : <br>
<br>
type_offset->proxy_type->DW_FORM_ref_sig8->type_unit->type_offset->type.<br>
<br>
There would be this :<br>
<br>
type_offset->type_table->type.<br>
</p>
</div>
</blockquote>
<div>Yep, though to avoid the need for the proxy type you'd
need to be able to refer to other entities in the "bag of
DWARF"/generalized type unit (things like member function
declarations and the like)<br>
<br>
Yes, "bag of DWARF" or generalized type units (where you can
refer to multiple entities in a single unit by some kind of
hash) has some benefits.<br>
<br>
But it seems somewhat orthogonal to your debug info linking
goals here, unless it is a solution that removes the need
for parsing the DWARF.<br>
<br>
</div>
</div>
</div>
</blockquote>
<p><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">Minimizing of
debug_info size is also a goal If the performance of parsing
DWARF would be acceptable.</span></p>
<p><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;"><br>
</span></p>
<blockquote type="cite"
cite="mid:CAENS6Eu1ekinfJbMYn9_-QZoqETizY667Hp9=_ezJfbJxhvUYw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div>Another way to consider this would be to model (or
actually implement) inter-DIE references as relocations
(DW_FORM_sec_offset instead of a cu offset) - ah, I
mentioned that earlier (I'm writing this reply out of
order).</div>
</div>
</div>
</blockquote>
<p><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">Agreed.</span></p>
<p><br>
</p>
<p>Alexey<br>
</p>
<blockquote type="cite"
cite="mid:CAENS6Eu1ekinfJbMYn9_-QZoqETizY667Hp9=_ezJfbJxhvUYw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div><br>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<a
href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>