aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2022-01-05 22:00:07 +0000
committerAndrew Pinski <apinski@marvell.com>2022-01-05 22:37:19 +0000
commitd243f4009d8071b734df16cd70f4c5d09a373769 (patch)
treed36db6001d9eeb02962a8da44c12484fd19159b4
parentc166632bd22d7da66354121502019fc9c92ef07f (diff)
downloadgcc-d243f4009d8071b734df16cd70f4c5d09a373769.zip
gcc-d243f4009d8071b734df16cd70f4c5d09a373769.tar.gz
gcc-d243f4009d8071b734df16cd70f4c5d09a373769.tar.bz2
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.
-rw-r--r--gcc/config/i386/i386.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index f027608..3ac0f69 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