<div dir="ltr">Without looking, if you think you can do it go ahead. If you want actual review I can do that too :)<div><br></div><div>-eric</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 30, 2015 at 5:33 PM Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">These patches remove the two remaining fake DWARF tags, which we use to<br>
differentiate between types of variables.  However, they're not<br>
necessary.  The `arg:` field fully encodes whether a local variable is a<br>
parameter.<br>
<br>
The other obvious option (and my original plan here) was to create two<br>
subclasses `DIAutoVariable` and `DIParameterVariable`.  These classes<br>
would be so similar that I'm not sure that's worthwhile until we're<br>
tablegen'ing these.<br>
<br>
Here's what's in the patches:<br>
<br>
  - 0001: Update the DIBuilder API to use `createAutoVariable()` and<br>
    `createParameterVariable()` (instead of `createLocalVariable()`).<br>
  - 0002: clang side of 0001.<br>
  - 0003: Strip the fake tags from the IR.<br>
  - 0004: LLVM testcases for 0003 updated via script (I'll squash this).<br>
  - 0005: Clang testcases for 0003.<br>
<br>
(Note: a follow-up could change `DILocalVariable::DILocalVariable()` to<br>
set the tag to `DW_TAG_formal_parameter` instead of `DW_TAG_variable`<br>
(as appropriate), instead of having that logic magically in the backend<br>
in `DbgVariable`.  I left a FIXME to that effect.)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>