diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-27 10:06:22 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-27 10:06:22 +0000 |
commit | d2b854bc935a18434b59f77d8a6e329e4146a2ba (patch) | |
tree | 5d62ebd89439d627b40ecb8026ad31c4827dbfae /gcc/target-globals.h | |
parent | 6add2e69343004dabec88d6e8c40229c930b4c7c (diff) | |
download | gcc-d2b854bc935a18434b59f77d8a6e329e4146a2ba.tar.gz |
gcc/
* system.h (TEST_BIT): New macro.
* recog.h (alternative_mask): New type.
(ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
(recog_data_d): Replace alternative_enabled_p array with
enabled_alternatives.
(target_recog): New structure.
(default_target_recog, this_target_recog): Declare.
(get_enabled_alternatives, recog_init): Likewise.
* recog.c (default_target_recog, this_target_recog): New variables.
(get_enabled_alternatives): New function.
(extract_insn): Use it.
(recog_init): New function.
(preprocess_constraints, constrain_operands): Adjust for change to
recog_data.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reload.c (find_reloads): Likewise.
* ira-costs.c (record_reg_classes): Likewise.
* ira-lives.c (single_reg_class): Likewise. Fix bug in which
all alternatives after a disabled one would be skipped.
(ira_implicitly_set_insn_hard_regs): Likewise.
* ira.c (ira_setup_alts): Adjust for change to recog_data.
* lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
with enabled_alternatives.
* lra.c (free_insn_recog_data): Update accordingly.
(lra_update_insn_recog_data): Likewise.
(lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
* lra-constraints.c (process_alt_operands): Likewise. Handle
only_alternative as part of the enabled mask.
* target-globals.h (this_target_recog): Declare.
(target_globals): Add a recog field.
(restore_target_globals): Restore this_target_recog.
* target-globals.c: Include recog.h.
(default_target_globals): Initialize recog field.
(save_target_globals): Likewise.
* reginfo.c (reinit_regs): Call recog_init.
* toplev.c (backend_init_target): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210964 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target-globals.h')
-rw-r--r-- | gcc/target-globals.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/target-globals.h b/gcc/target-globals.h index e848a01677c..f4ef91fd21c 100644 --- a/gcc/target-globals.h +++ b/gcc/target-globals.h @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see extern struct target_flag_state *this_target_flag_state; extern struct target_regs *this_target_regs; extern struct target_rtl *this_target_rtl; +extern struct target_recog *this_target_recog; extern struct target_hard_regs *this_target_hard_regs; extern struct target_reload *this_target_reload; extern struct target_expmed *this_target_expmed; @@ -43,6 +44,7 @@ struct GTY(()) target_globals { struct target_flag_state *GTY((skip)) flag_state; void *GTY((atomic)) regs; struct target_rtl *rtl; + void *GTY((atomic)) recog; void *GTY((atomic)) hard_regs; void *GTY((atomic)) reload; void *GTY((atomic)) expmed; @@ -70,6 +72,7 @@ restore_target_globals (struct target_globals *g) this_target_flag_state = g->flag_state; this_target_regs = (struct target_regs *) g->regs; this_target_rtl = g->rtl; + this_target_recog = (struct target_recog *) g->recog; this_target_hard_regs = (struct target_hard_regs *) g->hard_regs; this_target_reload = (struct target_reload *) g->reload; this_target_expmed = (struct target_expmed *) g->expmed; |