From df17106f1ed4982791025e4b84a46543b26771d0 Mon Sep 17 00:00:00 2001 From: Catherine Moore Date: Fri, 14 Oct 2016 10:21:06 -0400 Subject: [PATCH] mips.c (mips_prepare_pch_save): Initialize micromips_globals to zero. 2016-10-13 Catherine Moore * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize micromips_globals to zero. From-SVN: r241165 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 36 +++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 433c0cbdd64..efa78dd8e0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-10-14 Catherine Moore + + * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize + micromips_globals to zero. + 2016-10-14 Richard Biener PR tree-optimization/77979 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 43174b4c181..ebec68eea94 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -20856,28 +20856,30 @@ mips_shift_truncation_mask (machine_mode mode) static void mips_prepare_pch_save (void) { - /* We are called in a context where the current MIPS16 vs. non-MIPS16 - setting should be irrelevant. The question then is: which setting - makes most sense at load time? + /* We are called in a context where the current compression vs. + non-compression setting should be irrelevant. The question then is: + which setting makes most sense at load time? - The PCH is loaded before the first token is read. We should never - have switched into MIPS16 mode by that point, and thus should not - have populated mips16_globals. Nor can we load the entire contents - of mips16_globals from the PCH file, because mips16_globals contains - a combination of GGC and non-GGC data. + The PCH is loaded before the first token is read. We should never have + switched into a compression mode by that point, and thus should not have + populated mips16_globals or micromips_globals. Nor can we load the + entire contents of mips16_globals or micromips_globals from the PCH file, + because they contain a combination of GGC and non-GGC data. There is therefore no point in trying save the GGC part of - mips16_globals to the PCH file, or to preserve MIPS16ness across - the PCH save and load. The loading compiler would not have access - to the non-GGC parts of mips16_globals (either from the PCH file, - or from a copy that the loading compiler generated itself) and would - have to call target_reinit anyway. - - It therefore seems best to switch back to non-MIPS16 mode at - save time, and to ensure that mips16_globals remains null after - a PCH load. */ + mips16_globals/micromips_globals to the PCH file, or to preserve a + compression setting across the PCH save and load. The loading compiler + would not have access to the non-GGC parts of mips16_globals or + micromips_globals (either from the PCH file, or from a copy that the + loading compiler generated itself) and would have to call target_reinit + anyway. + + It therefore seems best to switch back to non-MIPS16 mode and + non-microMIPS mode to save time, and to ensure that mips16_globals and + micromips_globals remain null after a PCH load. */ mips_set_compression_mode (0); mips16_globals = 0; + micromips_globals = 0; } /* Generate or test for an insn that supports a constant permutation. */ -- 2.30.2