<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/ObjectYAML/DWARFEmitter.cpp, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[ObjectYAML] Avoid repeated hash lookups (NFC) (#126187)</title>
<updated>2025-02-07T15:59:25+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-02-07T15:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dbb20fc07326926d53adb95d01323a353074aae1'/>
<id>dbb20fc07326926d53adb95d01323a353074aae1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ObjectYAML] Remove unused includes (NFC) (#116530)</title>
<updated>2024-11-17T16:39:04+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-17T16:39:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5b7102d1f37eab7a8f17b7bf4124ca76fbdbd66d'/>
<id>5b7102d1f37eab7a8f17b7bf4124ca76fbdbd66d</id>
<content type='text'>
Identified with misc-include-cleaner.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with misc-include-cleaner.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Remove redundant control flow statements (NFC) (#115831)</title>
<updated>2024-11-12T18:09:42+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-12T18:09:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4048c64306e23b622443bbe7293057a9b07a13bb'/>
<id>4048c64306e23b622443bbe7293057a9b07a13bb</id>
<content type='text'>
Identified with readability-redundant-control-flow.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with readability-redundant-control-flow.</pre>
</div>
</content>
</entry>
<entry>
<title>[dwarf2yaml] Correctly emit type and split unit headers (#102471)</title>
<updated>2024-08-12T09:08:38+00:00</updated>
<author>
<name>Pavel Labath</name>
<email>pavel@labath.sk</email>
</author>
<published>2024-08-12T09:08:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8a1846dbdcc62675b51d245caabfe3c6ec6fd209'/>
<id>8a1846dbdcc62675b51d245caabfe3c6ec6fd209</id>
<content type='text'>
(DWARFv5) split units have an extra `dwo_id` field in the header. Type
units have `type_signature` and `type_offset`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(DWARFv5) split units have an extra `dwo_id` field in the header. Type
units have `type_signature` and `type_offset`.</pre>
</div>
</content>
</entry>
<entry>
<title>[DWARFYAML] Implement debug_names support (#79666)</title>
<updated>2024-02-12T17:24:46+00:00</updated>
<author>
<name>Felipe de Azevedo Piovezan</name>
<email>fpiovezan@apple.com</email>
</author>
<published>2024-02-12T17:24:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a8b4c11f9d51f3d735f76c98367c87d6ff328a32'/>
<id>a8b4c11f9d51f3d735f76c98367c87d6ff328a32</id>
<content type='text'>
This commit brings support for debug_names in DWARFYAML. It parses YAML
and generates emits a DWARF5 Accelerator table with the following
limitations:

1. All forms must have a fixed length (zero length is also ok).
2. Hard-coded support for DWARF 5 and DWARF32.
3. The generated table does not contain a hash index

All of these limitations can be lifted in the future, but for now this
is good enough to enable testing.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit brings support for debug_names in DWARFYAML. It parses YAML
and generates emits a DWARF5 Accelerator table with the following
limitations:

1. All forms must have a fixed length (zero length is also ok).
2. Hard-coded support for DWARF 5 and DWARF32.
3. The generated table does not contain a hash index

All of these limitations can be lifted in the future, but for now this
is good enough to enable testing.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TargetParser] Replace uses of llvm/Support/Host.h</title>
<updated>2023-02-10T09:59:46+00:00</updated>
<author>
<name>Archibald Elliott</name>
<email>archibald.elliott@arm.com</email>
</author>
<published>2023-02-10T09:59:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d768bf994f508d7eaf9541a568be3d71096febf5'/>
<id>d768bf994f508d7eaf9541a568be3d71096febf5</id>
<content type='text'>
The forwarding header is left in place because of its use in
`polly/lib/External/isl/interface/extract_interface.cc`, but I have
added a GCC warning about the fact it is deprecated, because it is used
in `isl` from where it is included by Polly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The forwarding header is left in place because of its use in
`polly/lib/External/isl/interface/extract_interface.cc`, but I have
added a GCC warning about the fact it is deprecated, because it is used
in `isl` from where it is included by Polly.
</pre>
</div>
</content>
</entry>
<entry>
<title>[YAML] Convert Optional to std::optional</title>
<updated>2022-12-06T20:49:32+00:00</updated>
<author>
<name>Krzysztof Parzyszek</name>
<email>kparzysz@quicinc.com</email>
</author>
<published>2022-12-05T23:19:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c589730ad5286fc784b8aacf2f0214149603f312'/>
<id>c589730ad5286fc784b8aacf2f0214149603f312</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use value_or instead of getValueOr (NFC)</title>
<updated>2022-06-19T06:07:11+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2022-06-19T06:07:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=129b531c9c67fc50ef9dcb7d28d7081546213ac1'/>
<id>129b531c9c67fc50ef9dcb7d28d7081546213ac1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Populate std::vector at construction time (NFC)</title>
<updated>2021-01-18T18:16:33+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2021-01-18T18:16:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=28ea50f524b56e11b608ca1f768d2981579ebe75'/>
<id>28ea50f524b56e11b608ca1f768d2981579ebe75</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make LLVM build in C++20 mode</title>
<updated>2020-12-17T10:44:10+00:00</updated>
<author>
<name>Barry Revzin</name>
<email>barry.revzin@gmail.com</email>
</author>
<published>2020-12-17T10:41:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92310454bf0f1f9686f38afd11756c7d046495c9'/>
<id>92310454bf0f1f9686f38afd11756c7d046495c9</id>
<content type='text'>
Part of the &lt;=&gt; changes in C++20 make certain patterns of writing equality
operators ambiguous with themselves (sorry!).
This patch goes through and adjusts all the comparison operators such that
they should work in both C++17 and C++20 modes. It also makes two other small
C++20-specific changes (adding a constructor to a type that cases to be an
aggregate, and adding casts from u8 literals which no longer have type
const char*).

There were four categories of errors that this review fixes.
Here are canonical examples of them, ordered from most to least common:

// 1) Missing const
namespace missing_const {
    struct A {
    #ifndef FIXED
        bool operator==(A const&amp;);
    #else
        bool operator==(A const&amp;) const;
    #endif
    };

    bool a = A{} == A{}; // error
}

// 2) Type mismatch on CRTP
namespace crtp_mismatch {
    template &lt;typename Derived&gt;
    struct Base {
    #ifndef FIXED
        bool operator==(Derived const&amp;) const;
    #else
        // in one case changed to taking Base const&amp;
        friend bool operator==(Derived const&amp;, Derived const&amp;);
    #endif
    };

    struct D : Base&lt;D&gt; { };

    bool b = D{} == D{}; // error
}

// 3) iterator/const_iterator with only mixed comparison
namespace iter_const_iter {
    template &lt;bool Const&gt;
    struct iterator {
        using const_iterator = iterator&lt;true&gt;;

        iterator();

        template &lt;bool B, std::enable_if_t&lt;(Const &amp;&amp; !B), int&gt; = 0&gt;
        iterator(iterator&lt;B&gt; const&amp;);

    #ifndef FIXED
        bool operator==(const_iterator const&amp;) const;
    #else
        friend bool operator==(iterator const&amp;, iterator const&amp;);
    #endif
    };

    bool c = iterator&lt;false&gt;{} == iterator&lt;false&gt;{} // error
          || iterator&lt;false&gt;{} == iterator&lt;true&gt;{}
          || iterator&lt;true&gt;{} == iterator&lt;false&gt;{}
          || iterator&lt;true&gt;{} == iterator&lt;true&gt;{};
}

// 4) Same-type comparison but only have mixed-type operator
namespace ambiguous_choice {
    enum Color { Red };

    struct C {
        C();
        C(Color);
        operator Color() const;
        bool operator==(Color) const;
        friend bool operator==(C, C);
    };

    bool c = C{} == C{}; // error
    bool d = C{} == Red;
}

Differential revision: https://reviews.llvm.org/D78938
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Part of the &lt;=&gt; changes in C++20 make certain patterns of writing equality
operators ambiguous with themselves (sorry!).
This patch goes through and adjusts all the comparison operators such that
they should work in both C++17 and C++20 modes. It also makes two other small
C++20-specific changes (adding a constructor to a type that cases to be an
aggregate, and adding casts from u8 literals which no longer have type
const char*).

There were four categories of errors that this review fixes.
Here are canonical examples of them, ordered from most to least common:

// 1) Missing const
namespace missing_const {
    struct A {
    #ifndef FIXED
        bool operator==(A const&amp;);
    #else
        bool operator==(A const&amp;) const;
    #endif
    };

    bool a = A{} == A{}; // error
}

// 2) Type mismatch on CRTP
namespace crtp_mismatch {
    template &lt;typename Derived&gt;
    struct Base {
    #ifndef FIXED
        bool operator==(Derived const&amp;) const;
    #else
        // in one case changed to taking Base const&amp;
        friend bool operator==(Derived const&amp;, Derived const&amp;);
    #endif
    };

    struct D : Base&lt;D&gt; { };

    bool b = D{} == D{}; // error
}

// 3) iterator/const_iterator with only mixed comparison
namespace iter_const_iter {
    template &lt;bool Const&gt;
    struct iterator {
        using const_iterator = iterator&lt;true&gt;;

        iterator();

        template &lt;bool B, std::enable_if_t&lt;(Const &amp;&amp; !B), int&gt; = 0&gt;
        iterator(iterator&lt;B&gt; const&amp;);

    #ifndef FIXED
        bool operator==(const_iterator const&amp;) const;
    #else
        friend bool operator==(iterator const&amp;, iterator const&amp;);
    #endif
    };

    bool c = iterator&lt;false&gt;{} == iterator&lt;false&gt;{} // error
          || iterator&lt;false&gt;{} == iterator&lt;true&gt;{}
          || iterator&lt;true&gt;{} == iterator&lt;false&gt;{}
          || iterator&lt;true&gt;{} == iterator&lt;true&gt;{};
}

// 4) Same-type comparison but only have mixed-type operator
namespace ambiguous_choice {
    enum Color { Red };

    struct C {
        C();
        C(Color);
        operator Color() const;
        bool operator==(Color) const;
        friend bool operator==(C, C);
    };

    bool c = C{} == C{}; // error
    bool d = C{} == Red;
}

Differential revision: https://reviews.llvm.org/D78938
</pre>
</div>
</content>
</entry>
</feed>
