[llvm] 325f760 - Revert "[DWARFYAML][debug_line] Replace `InitialLength` with `Format` and `Length`."

Xing GUO via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 15 21:24:13 PDT 2020


On 6/16/20, David Blaikie <dblaikie at gmail.com> wrote:
> Please include information about why a patch was reverted in the
> commit message for the revert - this helps other folks following along
> (if they're seeing local breakage it'll help them know if this is the
> source and the revert is the fix they need to pick up - or if they're
> interested in adding similar functionality at another time, they'll be
> able to see the history of what happened when it's been tried in the
> past, etc).

Hi David,

Sorry for the un-commented changes. The previous change
fcc0c186e9cea0af644581069058f0e00469d20e
(https://reviews.llvm.org/rGfcc0c186e9cea0af644581069058f0e00469d20e)
intends to make the representation of DWARF sections clearer in YAML
(We have already done it in other DWARF sections, See:
https://reviews.llvm.org/D81063).

But the change makes build bots unhappy. So I reverted it in
325f7607b0dd0015a5f8db445e165660f9372bf6
(https://reviews.llvm.org/rG325f7607b0dd0015a5f8db445e165660f9372bf6)
and re-commit it in 0431e4bcb27bba30156ac49be4c09ac632c5a03a
(https://reviews.llvm.org/rG0431e4bcb27bba30156ac49be4c09ac632c5a03a).
I've added a comment in the revert change
(https://reviews.llvm.org/rG325f7607b0dd0015a5f8db445e165660f9372bf6).

I'll add sufficient commit message next time. Sorry for the inconvenience.

> On Sat, Jun 13, 2020 at 2:53 AM Xing GUO via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>>
>>
>> Author: Xing GUO
>> Date: 2020-06-13T17:57:02+08:00
>> New Revision: 325f7607b0dd0015a5f8db445e165660f9372bf6
>>
>> URL:
>> https://github.com/llvm/llvm-project/commit/325f7607b0dd0015a5f8db445e165660f9372bf6
>> DIFF:
>> https://github.com/llvm/llvm-project/commit/325f7607b0dd0015a5f8db445e165660f9372bf6.diff
>>
>> LOG: Revert "[DWARFYAML][debug_line] Replace `InitialLength` with `Format`
>> and `Length`."
>>
>> This reverts commit fcc0c186e9cea0af644581069058f0e00469d20e.
>>
>> Added:
>>
>>
>> Modified:
>>     llvm/include/llvm/ObjectYAML/DWARFYAML.h
>>     llvm/lib/ObjectYAML/DWARFEmitter.cpp
>>     llvm/lib/ObjectYAML/DWARFYAML.cpp
>>     llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
>>     llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
>>     llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
>>     llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
>>     llvm/tools/obj2yaml/dwarf2yaml.cpp
>>
>> Removed:
>>
>>
>>
>> ################################################################################
>> diff  --git a/llvm/include/llvm/ObjectYAML/DWARFYAML.h
>> b/llvm/include/llvm/ObjectYAML/DWARFYAML.h
>> index 08b02691ffc1..2f355b2a5b59 100644
>> --- a/llvm/include/llvm/ObjectYAML/DWARFYAML.h
>> +++ b/llvm/include/llvm/ObjectYAML/DWARFYAML.h
>> @@ -144,8 +144,7 @@ struct LineTableOpcode {
>>  };
>>
>>  struct LineTable {
>> -  dwarf::DwarfFormat Format;
>> -  uint64_t Length;
>> +  InitialLength Length;
>>    uint16_t Version;
>>    uint64_t PrologueLength;
>>    uint8_t MinInstLength;
>>
>> diff  --git a/llvm/lib/ObjectYAML/DWARFEmitter.cpp
>> b/llvm/lib/ObjectYAML/DWARFEmitter.cpp
>> index 9ab6aa5aeafc..b496e2a09386 100644
>> --- a/llvm/lib/ObjectYAML/DWARFEmitter.cpp
>> +++ b/llvm/lib/ObjectYAML/DWARFEmitter.cpp
>> @@ -262,9 +262,8 @@ static void emitFileEntry(raw_ostream &OS, const
>> DWARFYAML::File &File) {
>>
>>  Error DWARFYAML::emitDebugLine(raw_ostream &OS, const DWARFYAML::Data
>> &DI) {
>>    for (const auto &LineTable : DI.DebugLines) {
>> -    writeInitialLength(LineTable.Format, LineTable.Length, OS,
>> -                       DI.IsLittleEndian);
>> -    uint64_t SizeOfPrologueLength = LineTable.Format == dwarf::DWARF64 ?
>> 8 : 4;
>> +    writeInitialLength(LineTable.Length, OS, DI.IsLittleEndian);
>> +    uint64_t SizeOfPrologueLength = LineTable.Length.isDWARF64() ? 8 :
>> 4;
>>      writeInteger((uint16_t)LineTable.Version, OS, DI.IsLittleEndian);
>>      writeVariableSizedInteger(LineTable.PrologueLength,
>> SizeOfPrologueLength,
>>                                OS, DI.IsLittleEndian);
>>
>> diff  --git a/llvm/lib/ObjectYAML/DWARFYAML.cpp
>> b/llvm/lib/ObjectYAML/DWARFYAML.cpp
>> index 8298047d8be9..257db357ca73 100644
>> --- a/llvm/lib/ObjectYAML/DWARFYAML.cpp
>> +++ b/llvm/lib/ObjectYAML/DWARFYAML.cpp
>> @@ -175,7 +175,6 @@ void
>> MappingTraits<DWARFYAML::LineTableOpcode>::mapping(
>>
>>  void MappingTraits<DWARFYAML::LineTable>::mapping(
>>      IO &IO, DWARFYAML::LineTable &LineTable) {
>> -  IO.mapOptional("Format", LineTable.Format, dwarf::DWARF32);
>>    IO.mapRequired("Length", LineTable.Length);
>>    IO.mapRequired("Version", LineTable.Version);
>>    IO.mapRequired("PrologueLength", LineTable.PrologueLength);
>>
>> diff  --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
>> b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
>> index af997b010b2d..95f3eae597c2 100644
>> --- a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
>> +++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml
>> @@ -453,7 +453,8 @@ DWARF:
>>          - AbbrCode:        0x00000000
>>            Values:
>>    debug_line:
>> -    - Length:          65
>> +    - Length:
>> +        TotalLength:     65
>>        Version:         2
>>        PrologueLength:  36
>>        MinInstLength:   1
>>
>> diff  --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
>> b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
>> index d24fe7c8a4b8..5d17deb2fac2 100644
>> --- a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
>> +++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml
>> @@ -492,7 +492,8 @@ DWARF:
>>          - AbbrCode:        0x00000000
>>            Values:
>>    debug_line:
>> -    - Length:          65
>> +    - Length:
>> +        TotalLength:     65
>>        Version:         2
>>        PrologueLength:  36
>>        MinInstLength:   1
>> @@ -533,7 +534,8 @@ DWARF:
>>  ...
>>
>>  #CHECK:   debug_line:
>> -#CHECK:     - Length:          65
>> +#CHECK:     - Length:
>> +#CHECK:         TotalLength:     65
>>  #CHECK:       Version:         2
>>  #CHECK:       PrologueLength:  36
>>  #CHECK:       MinInstLength:   1
>>
>> diff  --git a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
>> b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
>> index 9e8865f3c08e..574796cbebda 100644
>> --- a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
>> +++ b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml
>> @@ -454,7 +454,8 @@ DWARF:
>>          - AbbrCode:        0x00000000
>>            Values:
>>    debug_line:
>> -    - Length:          65
>> +    - Length:
>> +        TotalLength:     65
>>        Version:         2
>>        PrologueLength:  36
>>        MinInstLength:   1
>>
>> diff  --git a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
>> b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
>> index 020fadc57b34..22d5584351ac 100644
>> --- a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
>> +++ b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml
>> @@ -72,7 +72,8 @@ FileHeader:
>>    Machine: EM_X86_64
>>  DWARF:
>>    debug_line:
>> -    - Length:         0x70
>> +    - Length:
>> +        TotalLength:  0x70
>>        Version:        2
>>        PrologueLength: 50
>>        MinInstLength:  1
>> @@ -206,7 +207,8 @@ Sections:
>>      Size: 0x10
>>  DWARF:
>>    debug_line:
>> -    - Length:                0x70
>> +    - Length:
>> +        TotalLength:         0x70
>>        Version:               2
>>        PrologueLength:        50
>>        MinInstLength:         1
>> @@ -236,7 +238,8 @@ Sections:
>>      Content: "00"
>>  DWARF:
>>    debug_line:
>> -    - Length:                0x70
>> +    - Length:
>> +        TotalLength:         0x70
>>        Version:               2
>>        PrologueLength:        50
>>        MinInstLength:         1
>> @@ -305,7 +308,8 @@ Sections:
>>      Type:         SHT_STRTAB
>>  DWARF:
>>    debug_line:
>> -    - Length:                0x70
>> +    - Length:
>> +        TotalLength:         0x70
>>        Version:               2
>>        PrologueLength:        50
>>        MinInstLength:         1
>>
>> diff  --git a/llvm/tools/obj2yaml/dwarf2yaml.cpp
>> b/llvm/tools/obj2yaml/dwarf2yaml.cpp
>> index 88f53c18f30b..12cb0c294d4a 100644
>> --- a/llvm/tools/obj2yaml/dwarf2yaml.cpp
>> +++ b/llvm/tools/obj2yaml/dwarf2yaml.cpp
>> @@ -7,7 +7,6 @@
>>
>> //===----------------------------------------------------------------------===//
>>
>>  #include "Error.h"
>> -#include "llvm/BinaryFormat/Dwarf.h"
>>  #include "llvm/DebugInfo/DWARF/DWARFContext.h"
>>  #include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h"
>>  #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
>> @@ -297,17 +296,9 @@ void dumpDebugLines(DWARFContext &DCtx,
>> DWARFYAML::Data &Y) {
>>        DataExtractor LineData(DCtx.getDWARFObj().getLineSection().Data,
>>                               DCtx.isLittleEndian(),
>> CU->getAddressByteSize());
>>        uint64_t Offset = *StmtOffset;
>> -      uint64_t LengthOrDWARF64Prefix = LineData.getU32(&Offset);
>> -      if (LengthOrDWARF64Prefix == dwarf::DW_LENGTH_DWARF64) {
>> -        DebugLines.Format = dwarf::DWARF64;
>> -        DebugLines.Length = LineData.getU64(&Offset);
>> -      } else {
>> -        DebugLines.Format = dwarf::DWARF32;
>> -        DebugLines.Length = LengthOrDWARF64Prefix;
>> -      }
>> -      uint64_t LineTableLength = DebugLines.Length;
>> -      uint64_t SizeOfPrologueLength =
>> -          DebugLines.Format == dwarf::DWARF64 ? 8 : 4;
>> +      dumpInitialLength(LineData, Offset, DebugLines.Length);
>> +      uint64_t LineTableLength = DebugLines.Length.getLength();
>> +      uint64_t SizeOfPrologueLength = DebugLines.Length.isDWARF64() ? 8 :
>> 4;
>>        DebugLines.Version = LineData.getU16(&Offset);
>>        DebugLines.PrologueLength =
>>            LineData.getUnsigned(&Offset, SizeOfPrologueLength);
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>


-- 
Cheers,
Xing


More information about the llvm-commits mailing list