On 5/9/25 2:27 PM, Vineet Gupta wrote:
This is effectively reverting e5d1f538bb7d
"(RISC-V: Allow different dynamic floating point mode to be merged)"
while retaining the testcase.
The change itself is valid, however it obfuscates the deficiencies in
current frm mode switching code.
Also for a SPEC2017 -Ofast -march=rv64gcv build, it ends up generating
net more FRM restores (writes) vs. the rest of this changeset.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): Remove.
(riscv_mode_confluence): Ditto.
(TARGET_MODE_CONFLUENCE): Ditto.
Unsure on this one.
- /* FRM_DYN, FRM_DYN_CALL and FRM_DYN_EXIT are all compatible.
- Although we already try to set the mode needed to FRM_DYN after a
- function call, there are still some corner cases where both FRM_DYN
- and FRM_DYN_CALL may appear on incoming edges. */
Do we have an understanding of these corner cases? That's my biggest
worry with simply removing this code.
jeff