https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Kito Cheng <k...@gcc.gnu.org>:

https://gcc.gnu.org/g:78753c75cf154e7432624e24c68aae3b81ed49f0

commit r15-5197-g78753c75cf154e7432624e24c68aae3b81ed49f0
Author: Yangyu Chen <c...@cyyself.name>
Date:   Tue Nov 5 11:22:45 2024 +0800

    RISC-V: Implement TARGET_COMPARE_VERSION_PRIORITY and
TARGET_OPTION_FUNCTION_VERSIONS

    This patch implements TARGET_COMPARE_VERSION_PRIORITY and
    TARGET_OPTION_FUNCTION_VERSIONS for RISC-V.

    The TARGET_COMPARE_VERSION_PRIORITY is implemented to compare the
    priority of two function versions based on the rules defined in the
    RISC-V C-API Doc PR #85:

   
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/85/files#diff-79a93ca266139524b8b642e582ac20999357542001f1f4666fbb62b6fb7a5824R721

    If multiple versions have equal priority, we select the function with
    the most number of feature bits generated by
    riscv_minimal_hwprobe_feature_bits. When it comes to the same number of
    feature bits, we diff two versions and select the one with the least
    significant bit set. Since a feature appears earlier in the feature_bits
    might be more important to performance.

    The TARGET_OPTION_FUNCTION_VERSIONS is implemented to check whether the
    two function versions are the same. This Implementation reuses the code
    in TARGET_COMPARE_VERSION_PRIORITY and check it returns 0, which means
    the equal priority.

    Co-Developed-by: Hank Chang <hank.ch...@sifive.com>
    Signed-off-by: Yangyu Chen <c...@cyyself.name>

    gcc/ChangeLog:

            * config/riscv/riscv.cc
            (parse_features_for_version): New function.
            (compare_fmv_features): New function.
            (riscv_compare_version_priority): New function.
            (riscv_common_function_versions): New function.
            (TARGET_COMPARE_VERSION_PRIORITY): Implement it.
            (TARGET_OPTION_FUNCTION_VERSIONS): Implement it.

Reply via email to