<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/utils/TableGen/DAGISelMatcherOpt.cpp, branch main</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>[TableGen] Use MVT instead of MVT::SimpleValueType. NFC (#169180)</title>
<updated>2025-11-23T01:00:56+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-11-23T01:00:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0ef522ff68fff4266bf85e7b7a507a16a8fd34ee'/>
<id>0ef522ff68fff4266bf85e7b7a507a16a8fd34ee</id>
<content type='text'>
This improves type safety and is less verbose. Use SimpleTy only where
an integer is needed like switches or emitting a VBR.

---------

Co-authored-by: Sergei Barannikov &lt;barannikov88@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This improves type safety and is less verbose. Use SimpleTy only where
an integer is needed like switches or emitting a VBR.

---------

Co-authored-by: Sergei Barannikov &lt;barannikov88@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen, CodeGen, CHERI] Add support for the cPTR wildcard value type. (#158426)</title>
<updated>2025-09-25T13:49:40+00:00</updated>
<author>
<name>Owen Anderson</name>
<email>resistor@mac.com</email>
</author>
<published>2025-09-25T13:49:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b05101b86472826ec77d0c9b71a431917a8f2493'/>
<id>b05101b86472826ec77d0c9b71a431917a8f2493</id>
<content type='text'>
cPTR is a wildcard CHERI capability value type, used analogously to iPTR. This allows TableGen patterns to abstract over CHERI capability widths.

Co-authored-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cPTR is a wildcard CHERI capability value type, used analogously to iPTR. This allows TableGen patterns to abstract over CHERI capability widths.

Co-authored-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Use ArrayRef instead of const vector reference (#145323)</title>
<updated>2025-06-24T14:30:00+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-06-24T14:30:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fba63e3281e7658f67fcbdeb6a7bd7c3391ee736'/>
<id>fba63e3281e7658f67fcbdeb6a7bd7c3391ee736</id>
<content type='text'>
- Use `ArrayRef` instead of `SmallVector` reference in a few places.
- Drop redundant `llvm::` in a few places.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use `ArrayRef` instead of `SmallVector` reference in a few places.
- Drop redundant `llvm::` in a few places.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Remove redundant calls to std::unique_ptr&lt;T&gt;::get (NFC) (#138236)</title>
<updated>2025-05-02T15:53:53+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-02T15:53:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4ec473e0e19c1586f27ebc146249b10acb3b8769'/>
<id>4ec473e0e19c1586f27ebc146249b10acb3b8769</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Remove recursive walk of linked list from ContractNodes. NFC</title>
<updated>2025-02-09T22:23:34+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-09T06:50:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04e5ea5237da5c49d05cd9499a5f0eb325638cf9'/>
<id>04e5ea5237da5c49d05cd9499a5f0eb325638cf9</id>
<content type='text'>
After f9250401ef120a4605ad67bb43d3b25500900498, this function is
tail recursive so it was straightforward to convert this to iteratively
walk the linkd list.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After f9250401ef120a4605ad67bb43d3b25500900498, this function is
tail recursive so it was straightforward to convert this to iteratively
walk the linkd list.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Fix an unused variable warning. NFC</title>
<updated>2025-02-09T00:03:44+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-09T00:03:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4aa71f0d4cccf1b06949c5a3c5ceb2e19250c7df'/>
<id>4aa71f0d4cccf1b06949c5a3c5ceb2e19250c7df</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Move formation of MoveSiblingMatcher earlier in ContractNodes. NFC</title>
<updated>2025-02-08T23:58:12+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-08T23:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9250401ef120a4605ad67bb43d3b25500900498'/>
<id>f9250401ef120a4605ad67bb43d3b25500900498</id>
<content type='text'>
ContractNodes recursively walks forward through a linked list. During
this recursion, Matchers are combined into other Matchers.

Previously the formation of MoveSiblingMatcher was after the
recursive call so it occurred as we were unwinding. If a
MoveSiblingMatcher was formed, we would recursively walk forward
to the end of the linked list again which isn't efficient.

To make this more efficient, move the formation of MoveSiblingMatcher
to the forward pass. Add additional rules to unfold MoveSiblingMatcher
if it would be more efficient to use CheckChildType, CheckChildInteger,
CheckChildSame, etc.

As an added benefit, this makes the function tail recursive which
the compiler can better optimize.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ContractNodes recursively walks forward through a linked list. During
this recursion, Matchers are combined into other Matchers.

Previously the formation of MoveSiblingMatcher was after the
recursive call so it occurred as we were unwinding. If a
MoveSiblingMatcher was formed, we would recursively walk forward
to the end of the linked list again which isn't efficient.

To make this more efficient, move the formation of MoveSiblingMatcher
to the forward pass. Add additional rules to unfold MoveSiblingMatcher
if it would be more efficient to use CheckChildType, CheckChildInteger,
CheckChildSame, etc.

As an added benefit, this makes the function tail recursive which
the compiler can better optimize.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Use range-based for loops. NFC</title>
<updated>2025-02-07T03:14:10+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-07T03:10:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=01ac6fc9099f814517cf8ab405f3f6b646ca09d1'/>
<id>01ac6fc9099f814517cf8ab405f3f6b646ca09d1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Use std::copy instead of a manual copy loop. NFC</title>
<updated>2025-02-06T08:47:18+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-06T08:45:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5eed019080a53af5a5be915a5cf411466b77bf4b'/>
<id>5eed019080a53af5a5be915a5cf411466b77bf4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Don't try to move CheckOpcode before CheckType/CheckChildType in ContractNodes. NFC</title>
<updated>2025-02-05T05:17:20+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-02-05T05:16:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=31bd82cdcc37df0ce19c6cf771d89a2afb80fa89'/>
<id>31bd82cdcc37df0ce19c6cf771d89a2afb80fa89</id>
<content type='text'>
It appears that CheckOpcode is already emitted before CheckType so
this hasn't been doing anything on any in tree targets.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It appears that CheckOpcode is already emitted before CheckType so
this hasn't been doing anything on any in tree targets.
</pre>
</div>
</content>
</entry>
</feed>
