<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/utils/TableGen, 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>[TableGen] More generically handle tied source operands in CompressInstEmitter. (#146183)</title>
<updated>2025-07-02T20:09:35+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-07-02T20:09:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6ff3b43700175dbff8f2e4b63c6f27835418e20c'/>
<id>6ff3b43700175dbff8f2e4b63c6f27835418e20c</id>
<content type='text'>
Move the creation of OperandMap from createDagOperandMapping to the loop
in addDagOperandMapping. Expand it to store the DAG operand number and
the MI operand number which will be different when there are tied
operands.

Rename createDagOperandMapping to checkDagOperandMapping to better
describe the remaining code.

I didn't lift the restriction that a source instruction can only have
one tied operand, but we should be able to if we have a use case.

There's a slight difference in the generate output. We now check that
operand 0 and 2 of QC_MVEQI are equal instead of operand 1 and 2. This
should be equivalent since operand 0 and 1 have a tied constraint.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the creation of OperandMap from createDagOperandMapping to the loop
in addDagOperandMapping. Expand it to store the DAG operand number and
the MI operand number which will be different when there are tied
operands.

Rename createDagOperandMapping to checkDagOperandMapping to better
describe the remaining code.

I didn't lift the restriction that a source instruction can only have
one tied operand, but we should be able to if we have a use case.

There's a slight difference in the generate output. We now check that
operand 0 and 2 of QC_MVEQI are equal instead of operand 1 and 2. This
should be equivalent since operand 0 and 1 have a tied constraint.</pre>
</div>
</content>
</entry>
<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>[LLVM][TableGen][DecoderEmitter] Add wrapper struct for `bit_value_t` (#146248)</title>
<updated>2025-07-01T14:36:17+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-07-01T14:36:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d7b8b65e239f3daa08c767f899cbfd7ca2871a0d'/>
<id>d7b8b65e239f3daa08c767f899cbfd7ca2871a0d</id>
<content type='text'>
Add a convenience wrapper struct for the `bit_value_t` enum type to host
various constructors, query, and printing support. Also refactor related
code in several places. In `getBitsField`, use `llvm::append_range` and
`SmallVector::append()` and eliminate manual loops. Eliminate
`emitNameWithID` and instead use the `operator &lt;&lt;` that does the same
thing as this function. Have `BitValue::getValue()` (replacement for
`Value`) return std::optional&lt;&gt; instead of -1 for unset bits. Terminate
with a fatal error when a decoding conflict is encountered.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a convenience wrapper struct for the `bit_value_t` enum type to host
various constructors, query, and printing support. Also refactor related
code in several places. In `getBitsField`, use `llvm::append_range` and
`SmallVector::append()` and eliminate manual loops. Eliminate
`emitNameWithID` and instead use the `operator &lt;&lt;` that does the same
thing as this function. Have `BitValue::getValue()` (replacement for
`Value`) return std::optional&lt;&gt; instead of -1 for unset bits. Terminate
with a fatal error when a decoding conflict is encountered.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Capitalize `to` in `UseFnTableInDecodetoMCInst`. (#146419)</title>
<updated>2025-06-30T23:12:15+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-06-30T23:12:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92b50959da32c23531a0138f51db97235925376e'/>
<id>92b50959da32c23531a0138f51db97235925376e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>AsmMatcher: Use getAsmInfo()</title>
<updated>2025-06-28T19:12:20+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-06-28T19:12:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0255ae81ba4ea8aeae2a539c3428e7f12a1ab505'/>
<id>0255ae81ba4ea8aeae2a539c3428e7f12a1ab505</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MCParsedAsmOperand::print: Add MCAsmInfo parameter</title>
<updated>2025-06-28T19:05:33+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-06-28T19:05:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e878b7e3492b010ba5ade6cab42dfad02b903ae1'/>
<id>e878b7e3492b010ba5ade6cab42dfad02b903ae1</id>
<content type='text'>
so that subclasses can provide the appropriate MCAsmInfo to print
MCExpr objects.

At present, llvm/utils/TableGen/AsmMatcherEmitter.cpp constucts a
generic MCAsmInfo.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
so that subclasses can provide the appropriate MCAsmInfo to print
MCExpr objects.

At present, llvm/utils/TableGen/AsmMatcherEmitter.cpp constucts a
generic MCAsmInfo.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Simplify copying OperandMap entries for tied operands in CompressInstEmitter. NFC</title>
<updated>2025-06-27T21:58:53+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-27T21:35:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9a93de58f7f3670d106a9910976e967564b6883d'/>
<id>9a93de58f7f3670d106a9910976e967564b6883d</id>
<content type='text'>
Copy the whole struct instead of copying both fields.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Copy the whole struct instead of copying both fields.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Simplify how we calculate NumMIOperands in addDagOperandMapping. NFC</title>
<updated>2025-06-27T21:58:39+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-27T17:25:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=457c9aec9e845d09202ed8de83be122b9b58d2d7'/>
<id>457c9aec9e845d09202ed8de83be122b9b58d2d7</id>
<content type='text'>
We can use the MIOperandNo and NumMIOperands from the last operand
instead using a loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can use the MIOperandNo and NumMIOperands from the last operand
instead using a loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Simplify verifyDagOpCount in CompressInstEmitter.cpp. NFC</title>
<updated>2025-06-27T17:08:03+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-27T17:08:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a3fcfacc35e7aec14b46f61260d477f89e856925'/>
<id>a3fcfacc35e7aec14b46f61260d477f89e856925</id>
<content type='text'>
We were counting the number of tied operands in two different loops.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We were counting the number of tied operands in two different loops.
</pre>
</div>
</content>
</entry>
<entry>
<title>TableGen: Generate enum for runtime libcall implementations (#144973)</title>
<updated>2025-06-27T08:40:43+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-06-27T08:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b88e1f6a79cbe2672dd6dbb926ae7ca02ce537a5'/>
<id>b88e1f6a79cbe2672dd6dbb926ae7ca02ce537a5</id>
<content type='text'>
Work towards separating the ABI existence of libcalls vs. the
lowering selection. Set libcall selection through enums, rather
than through raw string names.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Work towards separating the ABI existence of libcalls vs. the
lowering selection. Set libcall selection through enums, rather
than through raw string names.</pre>
</div>
</content>
</entry>
</feed>
