<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, May 3, 2017 at 1:43 PM Greg Clayton via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">clayborg added a comment.<br>
<br>
One thing to clarify:<br>
<br>
  std::vector<RangeInfoType> DieRangeInfos;<br>
<br>
is a vector that only gets as deep as the DIE depth. It doesn't get every range for every function, block, or inlined function, it just has a stack of ranges for the _current_ DIE depth.<br></blockquote><div><br>Which is part of what I'm confused by - I wouldn't expect to see/don't understand why there's any code that special-cases subprograms here. They don't seem special to me.<br><br>I'd expect an algorithm that starts at the CU DIE and looks for any DIE that has ranges. It wouldn't need special cases for any tag types.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
  std::set<RangeInfoType> AllFunctionRangeInfos;<br>
<br>
Contains one entry for each DW_TAG_subprogram.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D32821" rel="noreferrer" target="_blank">https://reviews.llvm.org/D32821</a><br>
<br>
<br>
<br>
</blockquote></div></div>