<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/RISCV/RISCVInstrInfo.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>[RISCV] Added the MIPS prefetch extensions for MIPS RV64 P8700. (#145647)</title>
<updated>2025-07-03T08:59:10+00:00</updated>
<author>
<name>UmeshKalappa</name>
<email>103930015+ukalappa-mips@users.noreply.github.com</email>
</author>
<published>2025-07-03T08:59:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=032966ff5679804e826b76beab6306e277ef8d33'/>
<id>032966ff5679804e826b76beab6306e277ef8d33</id>
<content type='text'>
the extension enabled with xmipscbop.

Please refer "MIPS RV64 P8700/P8700-F Multiprocessing System
Programmer’s Guide" for more info on the extension at
https://mips.com/wp-content/uploads/2025/06/P8700_Programmers_Reference_Manual_Rev1.84_5-31-2025.pdf</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the extension enabled with xmipscbop.

Please refer "MIPS RV64 P8700/P8700-F Multiprocessing System
Programmer’s Guide" for more info on the extension at
https://mips.com/wp-content/uploads/2025/06/P8700_Programmers_Reference_Manual_Rev1.84_5-31-2025.pdf</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Use template version isInt&lt;N&gt; instead. NFC.</title>
<updated>2025-07-03T08:22:02+00:00</updated>
<author>
<name>Jim Lin</name>
<email>jim@andestech.com</email>
</author>
<published>2025-07-03T05:20:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2dba752f0575306d8178e9bb4869d06528ab452c'/>
<id>2dba752f0575306d8178e9bb4869d06528ab452c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Add isel patterns for generating XAndesPerf branch immediate instructions (#145147)</title>
<updated>2025-07-03T04:47:53+00:00</updated>
<author>
<name>Jim Lin</name>
<email>jim@andestech.com</email>
</author>
<published>2025-07-03T04:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=283f53ac6fcde5a6f8182e572a3f6f828b89a9a8'/>
<id>283f53ac6fcde5a6f8182e572a3f6f828b89a9a8</id>
<content type='text'>
Similar to #139872. This patch adds isel patterns to match
`riscv_brcc` and `riscv_selectcc_frag` to XAndesPerf branch
instructions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similar to #139872. This patch adds isel patterns to match
`riscv_brcc` and `riscv_selectcc_frag` to XAndesPerf branch
instructions.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Factor out getKillRegState in copyPhysReg (NFC) (#146454)</title>
<updated>2025-07-01T12:21:46+00:00</updated>
<author>
<name>Sudharsan Veeravalli</name>
<email>quic_svs@quicinc.com</email>
</author>
<published>2025-07-01T12:21:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=67b79468fbba54043a6085920c11ccb9b2b7e201'/>
<id>67b79468fbba54043a6085920c11ccb9b2b7e201</id>
<content type='text'>
This is used multiple times in the function.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is used multiple times in the function.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Add nds.bfos and nds.bfoz for the short forward branch optimization. (#145836)</title>
<updated>2025-06-27T02:54:41+00:00</updated>
<author>
<name>Jim Lin</name>
<email>jim@andestech.com</email>
</author>
<published>2025-06-27T02:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=96ec1c29f23613a14b58460495df86b8454611db'/>
<id>96ec1c29f23613a14b58460495df86b8454611db</id>
<content type='text'>
This adds nds.bfos and nds.bfoz, which are also supported by Andes
45-series CPUs for short forward branch optimization.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds nds.bfos and nds.bfoz, which are also supported by Andes
45-series CPUs for short forward branch optimization.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Remove separate immediate condition codes from RISCVCC. NFC (#145762)</title>
<updated>2025-06-26T06:09:24+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-26T06:09:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c8243251cb25f3c171df16ff24ecbb39fbf68d4c'/>
<id>c8243251cb25f3c171df16ff24ecbb39fbf68d4c</id>
<content type='text'>
This wasn't scalable and made the RISCVCC enum effectively just
a different way of spelling the branch opcodes.
    
This patch reduces RISCVCC back down to 6 enum values. The primary user
is select pseudoinstructions which now share the same encoding across
all
vendor extensions. The select opcode and condition code are used to
determine the branch opcode when expanding the pseudo.
    
The Cond SmallVector returned by analyzeBranch now returns the opcode
instead of the RISCVCC. reverseBranchCondition now works directly on
opcodes. getOppositeBranchCondition is also retained.

Stacked on #145622</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This wasn't scalable and made the RISCVCC enum effectively just
a different way of spelling the branch opcodes.
    
This patch reduces RISCVCC back down to 6 enum values. The primary user
is select pseudoinstructions which now share the same encoding across
all
vendor extensions. The select opcode and condition code are used to
determine the branch opcode when expanding the pseudo.
    
The Cond SmallVector returned by analyzeBranch now returns the opcode
instead of the RISCVCC. reverseBranchCondition now works directly on
opcodes. getOppositeBranchCondition is also retained.

Stacked on #145622</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Explicitly check for supported opcodes in optimizeCondBranch. NFC (#145622)</title>
<updated>2025-06-26T04:28:34+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-26T04:28:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cca44e030ddd74c365fdd6b82946e61efa41dee2'/>
<id>cca44e030ddd74c365fdd6b82946e61efa41dee2</id>
<content type='text'>
We don't support any of the immediate branches in this function yet so
explicitly exclude them rather than relying on isReg to return false.

Remove use of AnalyzeBranch. It doesn't help us much. Part of the code
was already getting the operands directly and it just complicated
creating a new branch.

I also inlined the modifyBranch function so we could use addReg on
BuildMI.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't support any of the immediate branches in this function yet so
explicitly exclude them rather than relying on isReg to return false.

Remove use of AnalyzeBranch. It doesn't help us much. Part of the code
was already getting the operands directly and it just complicated
creating a new branch.

I also inlined the modifyBranch function so we could use addReg on
BuildMI.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Remove -mattr=+no-rvc-hints (#145138)</title>
<updated>2025-06-25T15:24:24+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-25T15:24:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c3b160bcaa7dd5b5564ae8868fb33e7ba6169283'/>
<id>c3b160bcaa7dd5b5564ae8868fb33e7ba6169283</id>
<content type='text'>
As far as I know binutils does not have a similar option and I don't
know of a reason we shouldn't accept the RVC hint instructions.

The wording in the spec in the past suggested that maybe these
weren't valid instruction names, but that's been modified recently.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As far as I know binutils does not have a similar option and I don't
know of a reason we shouldn't accept the RVC hint instructions.

The wording in the spec in the past suggested that maybe these
weren't valid instruction names, but that's been modified recently.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Fix a correctness issue in optimizeCondBranch. Prevent optimizing compare with x0. NFC (#145440)</title>
<updated>2025-06-24T22:45:06+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-24T22:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=48a21e69159a7e6698cde380f6d64274c6569f29'/>
<id>48a21e69159a7e6698cde380f6d64274c6569f29</id>
<content type='text'>
We were incorrectly changing -1 to 0 for unsigned compares in case 1.
The comment incorrectly said UINT64_MAX is bigger than INT64_MAX, but
we were doing a signed compare and UINT64_MAX is smaller than INT64_MAX
in signed space.

Prevent changing 0 constants since we can use x0. The test cases
for these are contrived to use addi rd, x0, 0. We're more likely
to have a COPY from x0 which we already don't optimize for other
reasons.

Check if registers are virtual before calling hasOneUse. The use count
for physical registers is meaningless.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We were incorrectly changing -1 to 0 for unsigned compares in case 1.
The comment incorrectly said UINT64_MAX is bigger than INT64_MAX, but
we were doing a signed compare and UINT64_MAX is smaller than INT64_MAX
in signed space.

Prevent changing 0 constants since we can use x0. The test cases
for these are contrived to use addi rd, x0, 0. We're more likely
to have a COPY from x0 which we already don't optimize for other
reasons.

Check if registers are virtual before calling hasOneUse. The use count
for physical registers is meaningless.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV][NFC] Remove hasStdExtCOrZca (#145139)</title>
<updated>2025-06-23T17:49:47+00:00</updated>
<author>
<name>Sam Elliott</name>
<email>quic_aelliott@quicinc.com</email>
</author>
<published>2025-06-23T17:49:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a6eb5eee38ee08fb8466956553e77177e2ad1b02'/>
<id>a6eb5eee38ee08fb8466956553e77177e2ad1b02</id>
<content type='text'>
As of 20b5728b7b1ccc4509a316efb270d46cc9526d69, C always enables Zca, so
the check `C || Zca` is equivalent to just checking for `Zca`.

This replaces any uses of `HasStdExtCOrZca` with a new `HasStdExtZca`
(with the same assembler description, to avoid changes in error
messages), and simplifies everywhere where C++ needed to check for
either C or Zca.

The Subtarget function is just deprecated for the moment.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of 20b5728b7b1ccc4509a316efb270d46cc9526d69, C always enables Zca, so
the check `C || Zca` is equivalent to just checking for `Zca`.

This replaces any uses of `HasStdExtCOrZca` with a new `HasStdExtZca`
(with the same assembler description, to avoid changes in error
messages), and simplifies everywhere where C++ needed to check for
either C or Zca.

The Subtarget function is just deprecated for the moment.</pre>
</div>
</content>
</entry>
</feed>
