[llvm-branch-commits] [llvm] [RISCV] Support select optimization (PR #80124)
Pengcheng Wang via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jul 4 00:53:25 PDT 2024
wangpc-pp wrote:
Ping.
I'd like to push this forward because we don't take branch probabilities into consideration now.
Example: https://godbolt.org/z/doGhYadKM
We should use branches instead of selects in this case and this patch (the enabling of SelectOpt) will optimize this.
`clang -O3 -march=rv64gc_zba_zbb_zbc_zbs_zicond -Xclang -target-feature -Xclang +enable-select-opt -Xclang -target-feature -Xclang +predictable-select-expensive`
```
New Select group with
%. = select i1 %cmp, i32 5, i32 13, !prof !9
Analyzing select group containing %. = select i1 %cmp, i32 5, i32 13, !prof !9
Converted to branch because of highly predictable branch.
```
```asm
func0: # @func0
li a2, 5
mul a1, a0, a0
bge a2, a0, .LBB0_2
addw a0, a1, a2
ret
.LBB0_2: # %select.false
li a2, 13
addw a0, a1, a2
ret
```
https://github.com/llvm/llvm-project/pull/80124
More information about the llvm-branch-commits
mailing list