<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/wangpc-pp/spr/riscv-support-select-optimization</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>Rebase</title>
<updated>2024-07-05T08:47:50+00:00</updated>
<author>
<name>wangpc</name>
<email>wangpengcheng.pp@bytedance.com</email>
</author>
<published>2024-07-05T08:47:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b6415b46e6a24470802600f5d5ec1d14fa3ba003'/>
<id>b6415b46e6a24470802600f5d5ec1d14fa3ba003</id>
<content type='text'>
Created using spr 1.3.6-beta.1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Created using spr 1.3.6-beta.1
</pre>
</div>
</content>
</entry>
<entry>
<title>[𝘀𝗽𝗿] changes introduced through rebase</title>
<updated>2024-07-05T08:47:46+00:00</updated>
<author>
<name>Luke Lau</name>
<email>luke@igalia.com</email>
</author>
<published>2024-07-05T08:47:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ca94bf9f2bd15fe34936f1759bffd26d7e93b182'/>
<id>ca94bf9f2bd15fe34936f1759bffd26d7e93b182</id>
<content type='text'>
Created using spr 1.3.6-beta.1

[skip ci]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Created using spr 1.3.6-beta.1

[skip ci]
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Don't forward AVL in VSETVLIInfo if it would clobber other definitions (#97264)</title>
<updated>2024-07-05T03:44:59+00:00</updated>
<author>
<name>Luke Lau</name>
<email>luke@igalia.com</email>
</author>
<published>2024-07-05T03:44:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=db782b44b3471c0ab41950c3f79d0ea7b916c135'/>
<id>db782b44b3471c0ab41950c3f79d0ea7b916c135</id>
<content type='text'>
This fixes a crash found when compiling OpenBLAS with -mllvm
-verify-machineinstrs.

When we "forward" the AVL from the output of a vsetvli, we might have to
extend the LiveInterval of the AVL to where insert the new vsetvli.

Most of the time we are able to extend the LiveInterval because there's
only one val num (definition) for the register. But PHI elimination can
assign multiple values to the same register, in which case we end up
clobbering a different val num when extending:

    %x = PseudoVSETVLI %avl, ...
    %avl = ADDI ...
    %v = PseudoVADD ..., avl=%x
    ; %avl is forwarded to PseudoVADD:
    %x = PseudoVSETVLI %avl, ...
    %avl = ADDI ...
    %v = PseudoVADD ..., avl=%avl

Here there's no way to extend the %avl from the vsetvli since %avl is
redefined, i.e. we have two val nums.

This fixes it by only forwarding it when we have exactly one val num,
where it should be safe to extend it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a crash found when compiling OpenBLAS with -mllvm
-verify-machineinstrs.

When we "forward" the AVL from the output of a vsetvli, we might have to
extend the LiveInterval of the AVL to where insert the new vsetvli.

Most of the time we are able to extend the LiveInterval because there's
only one val num (definition) for the register. But PHI elimination can
assign multiple values to the same register, in which case we end up
clobbering a different val num when extending:

    %x = PseudoVSETVLI %avl, ...
    %avl = ADDI ...
    %v = PseudoVADD ..., avl=%x
    ; %avl is forwarded to PseudoVADD:
    %x = PseudoVSETVLI %avl, ...
    %avl = ADDI ...
    %v = PseudoVADD ..., avl=%avl

Here there's no way to extend the %avl from the vsetvli since %avl is
redefined, i.e. we have two val nums.

This fixes it by only forwarding it when we have exactly one val num,
where it should be safe to extend it.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Add FeaturePredictableSelectIsExpensive</title>
<updated>2024-07-05T03:29:42+00:00</updated>
<author>
<name>Pengcheng Wang</name>
<email>wangpengcheng.pp@bytedance.com</email>
</author>
<published>2024-07-05T03:29:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23aff11e9c345fb0ba501a1751997baae15f3b52'/>
<id>23aff11e9c345fb0ba501a1751997baae15f3b52</id>
<content type='text'>
This information is used in CGP/SelectOpt to decide when to convert
selects into branches.

Reviewers: dtcxzyw, mgudim, asb, preames, topperc, lukel97

Reviewed By: dtcxzyw, topperc, lukel97

Pull Request: https://github.com/llvm/llvm-project/pull/97708
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This information is used in CGP/SelectOpt to decide when to convert
selects into branches.

Reviewers: dtcxzyw, mgudim, asb, preames, topperc, lukel97

Reviewed By: dtcxzyw, topperc, lukel97

Pull Request: https://github.com/llvm/llvm-project/pull/97708
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Avoid 'raw_string_ostream::str' (NFC)</title>
<updated>2024-07-05T02:59:19+00:00</updated>
<author>
<name>Youngsuk Kim</name>
<email>youngsuk.kim@hpe.com</email>
</author>
<published>2024-07-05T02:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9e211744b82a72e08c137f75b1c671713e2891af'/>
<id>9e211744b82a72e08c137f75b1c671713e2891af</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 item 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 item to remove `raw_string_ostream::str()`.
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Add a check in lowerSELECT after foldBinOpIntoSelectIfProfitable (#97391)</title>
<updated>2024-07-05T02:55:36+00:00</updated>
<author>
<name>Yunzezhu94</name>
<email>93851382+Yunzezhu94@users.noreply.github.com</email>
</author>
<published>2024-07-05T02:55:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ffc459de7540eaf9bdbcb7b7cc2376fd7e9e7f11'/>
<id>ffc459de7540eaf9bdbcb7b7cc2376fd7e9e7f11</id>
<content type='text'>
In certain case foldBinOpIntoSelectIfProfitable may return a constant
node, the node will be lowered in lowerSELECT and lead to crash.
This patch fix the bug by adding an extra check before lowerSELECT that
do lowerSELECT as before when foldBinOpIntoSelectIfProfitable returns a
select node, and return the node directly when
foldBinOpIntoSelectIfProfitable returns a constant node.

Fixes https://github.com/llvm/llvm-project/issues/97390</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In certain case foldBinOpIntoSelectIfProfitable may return a constant
node, the node will be lowered in lowerSELECT and lead to crash.
This patch fix the bug by adding an extra check before lowerSELECT that
do lowerSELECT as before when foldBinOpIntoSelectIfProfitable returns a
select node, and return the node directly when
foldBinOpIntoSelectIfProfitable returns a constant node.

Fixes https://github.com/llvm/llvm-project/issues/97390</pre>
</div>
</content>
</entry>
<entry>
<title>[DAGCombiner] Remove unnecessary assert from getShiftAmountTy wrapper. NFC</title>
<updated>2024-07-05T02:05:54+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2024-07-05T01:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=33112cbf59d838d25a4bf2a8c539d1aceda191c7'/>
<id>33112cbf59d838d25a4bf2a8c539d1aceda191c7</id>
<content type='text'>
The same assert appears in the TargetLowering function.

Refine comment to describe as a convenience wrapper and leave it to
TargetLowering documentation to explain.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The same assert appears in the TargetLowering function.

Refine comment to describe as a convenience wrapper and leave it to
TargetLowering documentation to explain.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[llvm-config] Quote and escape paths if necessary (#97305)"</title>
<updated>2024-07-05T01:55:37+00:00</updated>
<author>
<name>Alexandre Ganea</name>
<email>alex_toresh@yahoo.fr</email>
</author>
<published>2024-07-05T01:55:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f737865be2a115955880bb398b4bf61145db26a5'/>
<id>f737865be2a115955880bb398b4bf61145db26a5</id>
<content type='text'>
This reverts commit e8c94149d3ca12d4d02fb8de89981c68ffa278f3.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit e8c94149d3ca12d4d02fb8de89981c68ffa278f3.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SelectionDAG] Remove LegalTypes argument from getShiftAmountConstant. (#97653)</title>
<updated>2024-07-05T01:33:25+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2024-07-05T01:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8419da8bd4f8c21c452051e57220d495df4af2a0'/>
<id>8419da8bd4f8c21c452051e57220d495df4af2a0</id>
<content type='text'>
#97645 proposed to remove LegalTypes from getShiftAmountTy. This patches
removes it from getShiftAmountConstant which is one of the callers of
getShiftAmountTy.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
#97645 proposed to remove LegalTypes from getShiftAmountTy. This patches
removes it from getShiftAmountConstant which is one of the callers of
getShiftAmountTy.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Python] fix class name of powf and negf in linalg (#97696)</title>
<updated>2024-07-05T01:23:12+00:00</updated>
<author>
<name>Bimo</name>
<email>rui.xu@intel.com</email>
</author>
<published>2024-07-05T01:23:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bfa762a5a59aa8bf64f589b36da24e427e8806c3'/>
<id>bfa762a5a59aa8bf64f589b36da24e427e8806c3</id>
<content type='text'>
The following logic can lead to a class name mismatch when using
`linalg.powf` in Python. This PR fixed the issue and also renamed
`NegfOp` to `NegFOp` in linalg to adhere to the naming convention, as
exemplified by `arith::NegFOp`.


https://github.com/llvm/llvm-project/blob/173514d58ec4e6166670f1e37a038df3865c8b96/mlir/python/mlir/dialects/linalg/opdsl/lang/dsl.py#L140-L143
```
# linalg.powf(arg0, arg1, outs=[init_result.result])
NotImplementedError: Unknown named op_name / op_class_name: powf / PowfOp
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following logic can lead to a class name mismatch when using
`linalg.powf` in Python. This PR fixed the issue and also renamed
`NegfOp` to `NegFOp` in linalg to adhere to the naming convention, as
exemplified by `arith::NegFOp`.


https://github.com/llvm/llvm-project/blob/173514d58ec4e6166670f1e37a038df3865c8b96/mlir/python/mlir/dialects/linalg/opdsl/lang/dsl.py#L140-L143
```
# linalg.powf(arg0, arg1, outs=[init_result.result])
NotImplementedError: Unknown named op_name / op_class_name: powf / PowfOp
```</pre>
</div>
</content>
</entry>
</feed>
