[gcc r12-6274] Fix target/103910: missing GTY on x86_mfence causing PCH usage to ICE

Andrew Pinski pinskia@gcc.gnu.org
Wed Jan 5 22:38:31 GMT 2022


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

commit r12-6274-gd243f4009d8071b734df16cd70f4c5d09a373769
Author: Andrew Pinski <apinski@marvell.com>
Date:   Wed Jan 5 22:00:07 2022 +0000

    Fix target/103910: missing GTY on x86_mfence causing PCH usage to ICE
    
    With -O3 -march=opteron, a mfence builtin is added after the loop
    to say the nontemporal stores are no longer needed. This all good
    without precompiled headers as the function decl that is referneced
    by x86_mfence is referenced in another variable but with precompiled
    headers, x86_mfence is all messed up and the decl was GC'ed away.
    This fixes the problem by marking x86_mfence as GTY to save/restore
    during precompiled headers just like most other variables in
    the header file.
    
    Committed as obvious after a bootstrap/test on x86_64-linux-gnu.
    
    gcc/ChangeLog:
    
            PR target/103910
            * config/i386/i386.h (x86_mfence): Mark with GTY.

Diff:
---
 gcc/config/i386/i386.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index f027608eefa..3ac0f698ae2 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -486,7 +486,7 @@ extern unsigned char ix86_prefetch_sse;
 
 /* Fence to use after loop using storent.  */
 
-extern tree x86_mfence;
+extern GTY(()) tree x86_mfence;
 #define FENCE_FOLLOWING_MOVNT x86_mfence
 
 /* Once GDB has been enhanced to deal with functions without frame


More information about the Gcc-cvs mailing list