[PATCH] D118020: [RISCV] Set CostPerUse for floating point registers

Wang Pengcheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 24 19:35:34 PST 2022


pcwang-thead added a comment.

Results of running SPEC2006 FP with upstream Clang/LLVM (based on 8ad6d5e465bba198c883e699c28690b0ea79400d <https://reviews.llvm.org/rG8ad6d5e465bba198c883e699c28690b0ea79400d>) and options are `-march=rv64imafdc -mabi=lp64d` without micro-arch specific scheduling.
All benchmarks ran 10 times and we compared the arithmetic average run times.

1. Set `CostPerUse` to 1:

| Benchmark   | Performance |
| ----------- | ----------- |
| 447.dealII  | +2.087%     |
| 453.povray  | +1.354%     |
| 450.soplex  | +0.8854%    |
| 482.sphinx3 | +0.8112%    |
| 433.milc    | +0.743%     |
| 470.lbm     | +0.1381%    |
| 444.namd    | -0.714%     |
|

Geometric mean: +0.7544%

2. Allocate argument floating-point register first:

| Benchmark   | Performance |
| ----------- | ----------- |
| 453.povray  | +1.866%     |
| 450.soplex  | +0.6809%    |
| 447.dealII  | +0.1095%    |
| 433.milc    | -0.01403%   |
| 444.namd    | -0.1019%    |
| 470.lbm     | -0.4855%    |
| 482.sphinx3 | -0.6987%    |
|

Geometric mean: +0.1906%

3. Both `1` and `2`:

| Benchmark   | Performance |
| ----------- | ----------- |
| 482.sphinx3 | +1.006%     |
| 433.milc    | +0.9639%    |
| 450.soplex  | +0.88%      |
| 453.povray  | +0.6788%    |
| 447.dealII  | +0.04175%   |
| 470.lbm     | -0.118%     |
| 444.namd    | -0.4662%    |
|

Geometric mean: +0.425%

All of them have code size reductions.

@craig.topper @asb


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118020/new/

https://reviews.llvm.org/D118020



More information about the llvm-commits mailing list