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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

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

commit r14-6210-ge44ed92dbbe9d4e5c23f486cd2f77a6f9ee513c5
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Dec 6 09:59:12 2023 +0100

    i386: Move vzeroupper pass from after reload pass to after postreload_cse
[PR112760]

    Regardless of the outcome of the REG_UNUSED discussions, I think
    it is a good idea to move the vzeroupper pass one pass later.
    As can be seen in the multiple PRs and as postreload.cc documents,
    reload/LRA is known to create dead statements quite often, which
    is the reason why we have postreload_cse pass at all.
    Doing vzeroupper pass before such cleanup means the pass including
    df_analyze for it needs to process more instructions than needed
    and because mode switching adds note problem, also higher chance of
    having stale REG_UNUSED notes.
    And, I really don't see why vzeroupper can't wait until those cleanups
    are done.

    2023-12-06  Jakub Jelinek  <ja...@redhat.com>

            PR rtl-optimization/112760
            * config/i386/i386-passes.def (pass_insert_vzeroupper): Insert
            after pass_postreload_cse rather than pass_reload.
            * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
            Adjust comment for it.

            * gcc.dg/pr112760.c: New test.

Reply via email to