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
2 changed files with 23 additions and 16 deletions
|
@ -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>
|
||||
|
||||
PR tree-optimization/77979
|
||||
|
|
|
@ -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.
|
||||
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 at
|
||||
save time, and to ensure that mips16_globals remains null after
|
||||
a PCH load. */
|
||||
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue