RFR: 8319408: RISC-V: MaxVectorSize is not consistently checked in several situations
Fei Yang
fyang at openjdk.org
Mon Nov 6 07:08:09 UTC 2023
On Fri, 3 Nov 2023 16:11:15 GMT, Hamlin Li <mli at openjdk.org> wrote:
> Hi,
> Can you review the change to fix the MaxVectorSize checking in vm_version_riscv.cpp?
> Thanks!
>
> Current logic will not check whether (MaxVectorSize < 16), after the assignment `MaxVectorSize = _initial_vector_length;`, in following situation.
> a) if FLAG_IS_DEFAULT(MaxVectorSize) == true
> b) if FLAG_IS_DEFAULT(MaxVectorSize) == false and (MaxVectorSize >= 16) and is_power_of_2(MaxVectorSize) and (MaxVectorSize > _initial_vector_length)
>
> And in original code, the logic is not consistent for the situations between MaxVectorSize < 16 and MaxVectorSize >= 16, when is_power_of_2(MaxVectorSize) == false; for the former (<16) it's to disable RVV, for the latter (>=16) it's vm_exit.
src/hotspot/cpu/riscv/vm_version_riscv.cpp line 315:
> 313: warning("RVV does not support vector length less than 16 bytes. Disabling RVV.");
> 314: UseRVV = false;
> 315: FLAG_SET_DEFAULT(MaxVectorSize, 0);
I think setting `UseRVV` to false would be enough in this case. Why bother resetting MaxVectorSize to 0?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16498#discussion_r1382854272
More information about the hotspot-dev
mailing list