[llvm] [RISCV] Enable bidirectional postra scheduling (PR #115864)
Pengcheng Wang via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 15 01:48:41 PST 2024
wangpc-pp wrote:
I got some results on different platforms.
1. Coremark with 60000 iterations on GEM5: `-O3 -march=rv64gc` (use this configuration so there are more instructions to schedule and GEM5 has a better support)
* RiscvO3CPU
| | Baseline | TopDown | BottomUp | Bidirectional |
|--------|-------------|-------------|-------------|---------------|
| Cycles | 33140248616 | 33031782179 | 33173323700 | 33063777692 |
| IPC | 1.381871 | 1.386409 | 1.380822 | 1.383095 |
* RiscvAtomicSimpleCPU
| | Baseline | TopDown | BottomUp | Bidirectional |
|--------|-------------|-------------|-------------|---------------|
| Cycles | 30563561357 | 30935303916 | 30898754397 | 30563777692 |
| IPC | 0.879774 | 0.869409 | 0.870437 | 0.879768 |
2. Coremark on Spacemit-X60 (`-O3 -mcpu=spacemit-x60`):
| | Baseline | TopDown | BottomUp | Bidirectional |
|--------|-------------|-------------|-------------|---------------|
| Iterations/Sec| 4763.71 | 4993.34 | 4730.50 | 4853.86 |
The results differ on different platforms so it is really hard to determine a default value. I will make it a target feature and leave the default value to be `Bidirectional` (this can be debated).
https://github.com/llvm/llvm-project/pull/115864
More information about the llvm-commits
mailing list