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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Dimitar Dimitrov <dimi...@gcc.gnu.org>:

https://gcc.gnu.org/g:fc559584fa5b1e101a4520e88a936246458d5a5d

commit r15-493-gfc559584fa5b1e101a4520e88a936246458d5a5d
Author: Dimitar Dimitrov <dimi...@dinux.eu>
Date:   Mon May 13 19:24:14 2024 +0300

    pru: Implement TARGET_CLASS_LIKELY_SPILLED_P to fix PR115013

    Commit r15-436-g44e7855e did not fix PR115013 for PRU because
    SMALL_REGISTER_CLASS_P is not returning an accurate value for the PRU
    backend.

    Word mode for PRU backend is defined as 8-bit, yet all ALU operations
    are preferred in 32-bit mode.  Thus checking whether a register class
    contains a single word_mode register would not classify the actually
    single SImode register classes as small.  This affected the
    multiplication source and destination register classes.

    Fix by implementing TARGET_CLASS_LIKELY_SPILLED_P to treat all register
    classes with SImode or smaller size as likely spilled.  This in turn
    corrects the behaviour of SMALL_REGISTER_CLASS_P for PRU.

            PR rtl-optimization/115013

    gcc/ChangeLog:

            * config/pru/pru.cc (pru_class_likely_spilled_p): Implement
            to mark classes containing one SImode register as likely
            spilled.
            (TARGET_CLASS_LIKELY_SPILLED_P): Define.

    Signed-off-by: Dimitar Dimitrov <dimi...@dinux.eu>

Reply via email to