mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
1558d39e1c
commit
df17106f1e
|
|
@ -1,3 +1,8 @@
|
||||||
|
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)
|
||||||
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
|
It therefore seems best to switch back to non-MIPS16 mode and
|
||||||
save time, and to ensure that mips16_globals remains null after
|
non-microMIPS mode to save time, and to ensure that mips16_globals and
|
||||||
a PCH load. */
|
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. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue