[llvm] r267226 - Update discriminator assignment algorithm in clang assembler.

Dehao Chen via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 25 11:03:24 PDT 2016


I have a test x86 assembly in the internal bug database. But I'm not sure
how to write a test for MCDwarf as its output is object file. Could you
point me to an example?

Thanks,
Dehao

On Mon, Apr 25, 2016 at 10:56 AM, David Blaikie <dblaikie at gmail.com> wrote:

> Test case?
>
> On Fri, Apr 22, 2016 at 2:31 PM, Dehao Chen via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: dehao
>> Date: Fri Apr 22 16:31:18 2016
>> New Revision: 267226
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=267226&view=rev
>> Log:
>> Update discriminator assignment algorithm in clang assembler.
>>
>> Summary: The clang assembler assumes that the discriminator remains the
>> same when there is source line change. The correct behavior is that when
>> there is line change, discriminator will automatically reset to 0.
>>
>> Reviewers: dnovillo, davidxl, echristo
>>
>> Subscribers: echristo, llvm-commits
>>
>> Differential Revision: http://reviews.llvm.org/D19436
>>
>> Modified:
>>     llvm/trunk/lib/MC/MCDwarf.cpp
>>
>> Modified: llvm/trunk/lib/MC/MCDwarf.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=267226&r1=267225&r2=267226&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCDwarf.cpp (original)
>> +++ llvm/trunk/lib/MC/MCDwarf.cpp Fri Apr 22 16:31:18 2016
>> @@ -112,6 +112,12 @@ EmitDwarfLineTable(MCObjectStreamer *MCO
>>              ie = LineEntries.end();
>>         it != ie; ++it) {
>>
>> +    int64_t LineDelta = static_cast<int64_t>(it->getLine()) - LastLine;
>> +
>> +    // Discriminator will be cleared if there is line change.
>> +    if (LineDelta != 0)
>> +      Discriminator = 0;
>> +
>>      if (FileNum != it->getFileNum()) {
>>        FileNum = it->getFileNum();
>>        MCOS->EmitIntValue(dwarf::DW_LNS_set_file, 1);
>> @@ -146,7 +152,6 @@ EmitDwarfLineTable(MCObjectStreamer *MCO
>>      if (it->getFlags() & DWARF2_FLAG_EPILOGUE_BEGIN)
>>        MCOS->EmitIntValue(dwarf::DW_LNS_set_epilogue_begin, 1);
>>
>> -    int64_t LineDelta = static_cast<int64_t>(it->getLine()) - LastLine;
>>      MCSymbol *Label = it->getLabel();
>>
>>      // At this point we want to emit/create the sequence to encode the
>> delta in
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160425/5350fbb6/attachment.html>


More information about the llvm-commits mailing list