Commit df17106f by Catherine Moore Committed by Catherine Moore

mips.c (mips_prepare_pch_save): Initialize micromips_globals to zero.

2016-10-13  Catherine Moore  <clm@codesourcery.com>

	* gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
	micromips_globals to zero.

From-SVN: r241165
parent 1558d39e
2016-10-14 Catherine Moore <clm@codesourcery.com>
* gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
micromips_globals to zero.
2016-10-14 Richard Biener <rguenther@suse.de> 2016-10-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/77979 PR tree-optimization/77979
......
...@@ -20856,28 +20856,30 @@ mips_shift_truncation_mask (machine_mode mode) ...@@ -20856,28 +20856,30 @@ mips_shift_truncation_mask (machine_mode mode)
static void static void
mips_prepare_pch_save (void) mips_prepare_pch_save (void)
{ {
/* We are called in a context where the current MIPS16 vs. non-MIPS16 /* We are called in a context where the current compression vs.
setting should be irrelevant. The question then is: which setting non-compression setting should be irrelevant. The question then is:
makes most sense at load time? which setting makes most sense at load time?
The PCH is loaded before the first token is read. We should never The PCH is loaded before the first token is read. We should never have
have switched into MIPS16 mode by that point, and thus should not switched into a compression mode by that point, and thus should not have
have populated mips16_globals. Nor can we load the entire contents populated mips16_globals or micromips_globals. Nor can we load the
of mips16_globals from the PCH file, because mips16_globals contains entire contents of mips16_globals or micromips_globals from the PCH file,
a combination of GGC and non-GGC data. because they contain a combination of GGC and non-GGC data.
There is therefore no point in trying save the GGC part of There is therefore no point in trying save the GGC part of
mips16_globals to the PCH file, or to preserve MIPS16ness across mips16_globals/micromips_globals to the PCH file, or to preserve a
the PCH save and load. The loading compiler would not have access compression setting across the PCH save and load. The loading compiler
to the non-GGC parts of mips16_globals (either from the PCH file, would not have access to the non-GGC parts of mips16_globals or
or from a copy that the loading compiler generated itself) and would micromips_globals (either from the PCH file, or from a copy that the
have to call target_reinit anyway. 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 It therefore seems best to switch back to non-MIPS16 mode and
a PCH load. */ 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); mips_set_compression_mode (0);
mips16_globals = 0; mips16_globals = 0;
micromips_globals = 0;
} }
/* Generate or test for an insn that supports a constant permutation. */ /* Generate or test for an insn that supports a constant permutation. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment