<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/TableGen/Main.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>[StrTable] Use string literal emission for intrinsics on non-MSVC platforms (#124856)</title>
<updated>2025-04-13T15:58:53+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2025-04-13T15:58:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0a27c4e318e778b520306a9e2102e03023cfaa33'/>
<id>0a27c4e318e778b520306a9e2102e03023cfaa33</id>
<content type='text'>
This mainly transitions the LLVM intrinsic string table from character
emission to string literal emission, which I confirmed happens for me
locally.

I moved the guts of StringToOffsetTable to a cpp file so I could move
the `EmitLongStrLiterals` cl::opt global to a non-vague linkage home in
the `TableGen` library. I had to add missing FormatVariadic.h includes
to account for moving other includes to a cpp file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This mainly transitions the LLVM intrinsic string table from character
emission to string literal emission, which I confirmed happens for me
locally.

I moved the guts of StringToOffsetTable to a cpp file so I could move
the `EmitLongStrLiterals` cl::opt global to a non-vague linkage home in
the `TableGen` library. I had to add missing FormatVariadic.h includes
to account for moving other includes to a cpp file.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Add assert to validate `Objects` list for `HwModeSelect` (#123794)</title>
<updated>2025-01-27T21:44:44+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-01-27T21:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=aca08a8515d48baff48328df5d54300fc7180bea'/>
<id>aca08a8515d48baff48328df5d54300fc7180bea</id>
<content type='text'>
- Bail out of TableGen if any asserts fail before running the backend. 
- Add asserts to validate that the `Objects` and `Modes` lists for
various `HwModeSelect` subclasses are of same length.
 - Eliminate equivalent check in CodeGenHWModes.cpp</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Bail out of TableGen if any asserts fail before running the backend. 
- Add asserts to validate that the `Objects` and `Modes` lists for
various `HwModeSelect` subclasses are of same length.
 - Eliminate equivalent check in CodeGenHWModes.cpp</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Factor out timer code into a new `TGTimer` class (#111054)</title>
<updated>2024-10-04T16:23:55+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-10-04T16:23:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d883ef10767c5ac22b43f7f9f49e4565e7ce8263'/>
<id>d883ef10767c5ac22b43f7f9f49e4565e7ce8263</id>
<content type='text'>
Factor out the timer related functionality from `RecordKeeper` to a new
`TGTimer` class in a new file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Factor out the timer related functionality from `RecordKeeper` to a new
`TGTimer` class in a new file.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Allow emitter callbacks to use `const RecordKeeper &amp;` (#104716)</title>
<updated>2024-08-26T19:10:33+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-08-26T19:10:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=34dee0a96105d6aeb8b386efbbbfe437ab1be02e'/>
<id>34dee0a96105d6aeb8b386efbbbfe437ab1be02e</id>
<content type='text'>
- Refactor TableGen backend options to allow specifying a callback
  function that takes either a const reference or a non-const reference
  to `RecordKeeper`. This will enable gradual migration of code to use
  const references and pointers to `RecordKeeper` and  `Record` in the
  TableGen backends. 

- Refactor handling of the callback command line options. Move variable
  for the command line option from the header to the CPP file, and add a
  function `ApplyCallback` to apply the selected callback.

- Change callbacks in TableGen.cpp to take const reference. They use the
  `Opt` class to register their callbacks.

- Change IntrinsicEmitter to use the `OptClass` to define its callbacks.
  It already uses a const reference in the implementation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Refactor TableGen backend options to allow specifying a callback
  function that takes either a const reference or a non-const reference
  to `RecordKeeper`. This will enable gradual migration of code to use
  const references and pointers to `RecordKeeper` and  `Record` in the
  TableGen backends. 

- Refactor handling of the callback command line options. Move variable
  for the command line option from the header to the CPP file, and add a
  function `ApplyCallback` to apply the selected callback.

- Change callbacks in TableGen.cpp to take const reference. They use the
  `Opt` class to register their callbacks.

- Change IntrinsicEmitter to use the `OptClass` to define its callbacks.
  It already uses a const reference in the implementation.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Avoid 'raw_string_ostream::str' (NFC)</title>
<updated>2024-07-03T11:37:48+00:00</updated>
<author>
<name>Youngsuk Kim</name>
<email>youngsuk.kim@hpe.com</email>
</author>
<published>2024-07-03T10:34:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=82f9a5ba965dc1a40fe955b8205dd863bf6385cf'/>
<id>82f9a5ba965dc1a40fe955b8205dd863bf6385cf</id>
<content type='text'>
Since `raw_string_ostream` doesn't own the string buffer, it is
desirable (in terms of memory safety) for users to directly reference
the string buffer rather than use `raw_string_ostream::str()`.

Work towards TODO comment to remove `raw_string_ostream::str()`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since `raw_string_ostream` doesn't own the string buffer, it is
desirable (in terms of memory safety) for users to directly reference
the string buffer rather than use `raw_string_ostream::str()`.

Work towards TODO comment to remove `raw_string_ostream::str()`.
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Stop including vector (NFC)</title>
<updated>2023-12-04T06:32:21+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2023-12-04T06:32:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92c2529ccde4a7eff344acd4ba22bf9d4af26b9d'/>
<id>92c2529ccde4a7eff344acd4ba22bf9d4af26b9d</id>
<content type='text'>
Identified with clangd.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with clangd.
</pre>
</div>
</content>
</entry>
<entry>
<title>TableGen: Introduce `llvm::TableGen::Emitter` to register backends</title>
<updated>2023-03-21T07:21:27+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2023-02-16T23:24:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4178ef43b2f12171639e3ef2bf02e5b7efd34688'/>
<id>4178ef43b2f12171639e3ef2bf02e5b7efd34688</id>
<content type='text'>
`Opt(flag, func, desc)` registers an option into `Action`.

`OptClass&lt;EmitterC&gt;` is also available if `EmitterC(RK).run(OS)` is capable.

`Action` is defined as `ManagedStatic&lt;cl::opt&gt;` to guarantee to be created
when each registration of emitter is invoked.

`llvm::TableGenMain(argv0, MainFn)` invokes `Action` instead of `MainFn`

Differential Revision: https://reviews.llvm.org/D144351
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Opt(flag, func, desc)` registers an option into `Action`.

`OptClass&lt;EmitterC&gt;` is also available if `EmitterC(RK).run(OS)` is capable.

`Action` is defined as `ManagedStatic&lt;cl::opt&gt;` to guarantee to be created
when each registration of emitter is invoked.

`llvm::TableGenMain(argv0, MainFn)` invokes `Action` instead of `MainFn`

Differential Revision: https://reviews.llvm.org/D144351
</pre>
</div>
</content>
</entry>
<entry>
<title>TableGen: Make 2nd arg `MainFn` of `TableGenMain(argv0, MainFn)` optional.</title>
<updated>2023-03-21T07:21:27+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2023-03-21T03:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81'/>
<id>f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>llvm-tblgen: Apply IWYU partially</title>
<updated>2023-02-16T15:32:46+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2023-02-16T15:28:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=afde3f549d7a3bb1681573cfdae254aa4423f119'/>
<id>afde3f549d7a3bb1681573cfdae254aa4423f119</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup include dependencies for LLVMTableGen</title>
<updated>2022-01-28T10:50:49+00:00</updated>
<author>
<name>serge-sans-paille</name>
<email>sguelton@redhat.com</email>
</author>
<published>2022-01-28T06:19:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92f49b89e2d8aaa7826d96ec2d45dfe1102371b9'/>
<id>92f49b89e2d8aaa7826d96ec2d45dfe1102371b9</id>
<content type='text'>
Based on the output of include-what-you-use. No other library seems affected by
the new forward declaration.

$ clang++ -E  -Iinclude -I../llvm/include ../llvm/lib/TableGen/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l
before: 795231
after: 750654

Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D118374
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on the output of include-what-you-use. No other library seems affected by
the new forward declaration.

$ clang++ -E  -Iinclude -I../llvm/include ../llvm/lib/TableGen/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l
before: 795231
after: 750654

Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D118374
</pre>
</div>
</content>
</entry>
</feed>
