<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/utils/TableGen/InstrInfoEmitter.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>[NFC][TableGen] Add accessors for various instruction subclasses (#146615)</title>
<updated>2025-07-02T19:49:27+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-07-02T19:49:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a880c8e670befc20dfb6e0789e8dfb93aa06173c'/>
<id>a880c8e670befc20dfb6e0789e8dfb93aa06173c</id>
<content type='text'>
- Add various instruction subclass/sub-slice accessors to
`CodeGenTarget`.
- Delete unused `inst_begin` and `inst_end` iterators.
- Rename `Instructions` to `InstructionMap` and `getInstructions` to
`getInstructionMap` to better represent their meaning.
- Use these new accessors in InstrInfoEmitter</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add various instruction subclass/sub-slice accessors to
`CodeGenTarget`.
- Delete unused `inst_begin` and `inst_end` iterators.
- Rename `Instructions` to `InstructionMap` and `getInstructions` to
`getInstructionMap` to better represent their meaning.
- Use these new accessors in InstrInfoEmitter</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Use `emplace` instead of `insert` and similar. NFC. (#143164)</title>
<updated>2025-06-07T08:32:36+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2025-06-07T08:32:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=432c5f2c608dfd40c4131e7e3a8282b0231b15ab'/>
<id>432c5f2c608dfd40c4131e7e3a8282b0231b15ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MC][TableGen] Expand ImplicitOffset field of MCInstrDesc (#138127)</title>
<updated>2025-05-03T05:50:06+00:00</updated>
<author>
<name>Carl Ritson</name>
<email>carl.ritson@amd.com</email>
</author>
<published>2025-05-03T05:50:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c63687c04f96e3b1db9ce0f70e5f331fce69959b'/>
<id>c63687c04f96e3b1db9ce0f70e5f331fce69959b</id>
<content type='text'>
Increase width of ImplicitOffset to `int` from `short` to allow more
table capacity.
Reorder the elements to maintain natural alignment.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Increase width of ImplicitOffset to `int` from `short` to allow more
table capacity.
Reorder the elements to maintain natural alignment.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Cleanup iterators in CodeGenSchedule.h (#127401)</title>
<updated>2025-02-18T16:57:22+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-18T16:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1fd06001a9e4f3da4c70f71e1d8df28198f67529'/>
<id>1fd06001a9e4f3da4c70f71e1d8df28198f67529</id>
<content type='text'>
- Use range for loops for processor models and schedule classes.
- Cleanup duplicated or unused iterators in CodeGenSchedule.h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use range for loops for processor models and schedule classes.
- Cleanup duplicated or unused iterators in CodeGenSchedule.h</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Emit OpName as an enum class instead of a namespace (#125313)</title>
<updated>2025-02-12T16:19:30+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-12T16:19:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bee9664970d51df3f4e1d298d1bcb95bba364e17'/>
<id>bee9664970d51df3f4e1d298d1bcb95bba364e17</id>
<content type='text'>
- Change InstrInfoEmitter to emit OpName as an enum class
  instead of an anonymous enum in the OpName namespace.
- This will help clearly distinguish between values that are 
  OpNames vs just operand indices and should help avoid
  bugs due to confusion between the two.
- Rename OpName::OPERAND_LAST to NUM_OPERAND_NAMES.
- Emit declaration of getOperandIdx() along with the OpName
  enum so it doesn't have to be repeated in various headers.
- Also updated AMDGPU, RISCV, and WebAssembly backends
  to conform to the new definition of OpName (mostly
  mechanical changes).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Change InstrInfoEmitter to emit OpName as an enum class
  instead of an anonymous enum in the OpName namespace.
- This will help clearly distinguish between values that are 
  OpNames vs just operand indices and should help avoid
  bugs due to confusion between the two.
- Rename OpName::OPERAND_LAST to NUM_OPERAND_NAMES.
- Emit declaration of getOperandIdx() along with the OpName
  enum so it doesn't have to be repeated in various headers.
- Also updated AMDGPU, RISCV, and WebAssembly backends
  to conform to the new definition of OpName (mostly
  mechanical changes).</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Code cleanup in InstrInfoEmitter.cpp (#126578)</title>
<updated>2025-02-11T15:02:37+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-11T15:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dbe1dafdbde247d9c133626cc38a8c587a49344f'/>
<id>dbe1dafdbde247d9c133626cc38a8c587a49344f</id>
<content type='text'>
- Use range for loops and `enumerate` in a few places.
- Use `StringRef` for `TargetName` in `InstrInfoEmitter::run`.
- Use `\n` character for new line instead of string.
- Use StringRef in `InstrNames` (instead of std::string) and 
  avoid string copies.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use range for loops and `enumerate` in a few places.
- Use `StringRef` for `TargetName` in `InstrInfoEmitter::run`.
- Use `\n` character for new line instead of string.
- Use StringRef in `InstrNames` (instead of std::string) and 
  avoid string copies.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Delete `getLogicalOperandType` from InstrInfoEmitter (#125951)</title>
<updated>2025-02-10T17:08:49+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-10T17:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=55015e150b35f69431ce1f906e22a598d5b2f000'/>
<id>55015e150b35f69431ce1f906e22a598d5b2f000</id>
<content type='text'>
Delete `getLogicalOperandType` function from InstrInfoEmitter as no
backend seems to use it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Delete `getLogicalOperandType` function from InstrInfoEmitter as no
backend seems to use it.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen][InstrInfo] Cull mapping that have not been enabled/not needed (#126137)</title>
<updated>2025-02-10T16:16:12+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-10T16:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8380b5c7494e5511dfdc944108ff316453a36061'/>
<id>8380b5c7494e5511dfdc944108ff316453a36061</id>
<content type='text'>
- Detect whether logical operand mapping/named operand mappings have 
  been enabled in a previous pass over instructions and execute the
  relevant emission code only if those mappings are enabled.
- For these mappings, skip the fixed set of predefined instructions as
  they won't have these mappings enabled.
- Emit operand type mappings only for X86 target, as they are only used
  by X86 and look for X86 specific `X86MemOperand`.
- Cleanup `emitOperandTypeMappings` code: remove code to handle empty
  instruction list and use range for loops.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Detect whether logical operand mapping/named operand mappings have 
  been enabled in a previous pass over instructions and execute the
  relevant emission code only if those mappings are enabled.
- For these mappings, skip the fixed set of predefined instructions as
  they won't have these mappings enabled.
- Emit operand type mappings only for X86 target, as they are only used
  by X86 and look for X86 specific `X86MemOperand`.
- Cleanup `emitOperandTypeMappings` code: remove code to handle empty
  instruction list and use range for loops.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Adopt `Emitter::OptClass` in InstrInfoEmitter (#125971)</title>
<updated>2025-02-06T18:45:05+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-02-06T18:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=337604ee7e838fee937e2b310604b57e3c583ba7'/>
<id>337604ee7e838fee937e2b310604b57e3c583ba7</id>
<content type='text'>
- Use `Emitter::OptClass` to invoke `InstrInfoEmitter::run` and
eliminate the `EmitInstrInfo` function.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use `Emitter::OptClass` to invoke `InstrInfoEmitter::run` and
eliminate the `EmitInstrInfo` function.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Restore OpName::OPERAND_LAST emission in InstrInfoEmitter (#125265)</title>
<updated>2025-01-31T21:19:11+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-01-31T21:19:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=91e77d88a40f91d4da79c478dbb7d447bb59ed14'/>
<id>91e77d88a40f91d4da79c478dbb7d447bb59ed14</id>
<content type='text'>
- Looks like this sentinel value is used in some downstream backends, so
restore emitting it.
- It now also has the correct value (earlier code may have emitted an
incorrect value for OPERAND_LAST and hence it was removed in
https://github.com/llvm/llvm-project/pull/124960)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Looks like this sentinel value is used in some downstream backends, so
restore emitting it.
- It now also has the correct value (earlier code may have emitted an
incorrect value for OPERAND_LAST and hence it was removed in
https://github.com/llvm/llvm-project/pull/124960)</pre>
</div>
</content>
</entry>
</feed>
