diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-04 17:34:40 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-04 17:34:40 +0000 |
commit | 8eaaac4d9b07009ed769fbea7da5030f49ce646b (patch) | |
tree | d9fb5507a542d8ccc1d218346a802396dd5c276c /gcc/ira-lives.c | |
parent | b5b87913caf8a11020b6464227791ac7abba4a53 (diff) | |
download | gcc-8eaaac4d9b07009ed769fbea7da5030f49ce646b.tar.gz |
gcc/
* recog.h (operand_alternative): Convert reg_class, reject,
matched and matches into bitfields.
(preprocess_constraints): New overload.
(preprocess_insn_constraints): New function.
(preprocess_constraints): Take the insn as parameter.
(recog_op_alt): Change into a pointer.
(target_recog): Add x_op_alt.
* recog.c (asm_op_alt): New variable.
(recog_op_alt): Change into a pointer.
(preprocess_constraints): New overload, replacing the old function
definition with one that doesn't use global state.
(preprocess_insn_constraints): New function.
(preprocess_constraints): Use them. Take the insn as parameter.
Use asm_op_alt for asms.
(recog_init): Free existing x_op_alt entries.
* ira-lives.c (check_and_make_def_conflict): Make operand_alternative
pointer const.
(make_early_clobber_and_input_conflicts): Likewise.
(process_bb_node_lives): Pass the insn to process_constraints.
* reg-stack.c (check_asm_stack_operands): Likewise.
(subst_asm_stack_regs): Likewise.
* regcprop.c (copyprop_hardreg_forward_1): Likewise.
* regrename.c (build_def_use): Likewise.
* sched-deps.c (sched_analyze_insn): Likewise.
* sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
(note_invalid_constants): Likewise.
* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
(ix86_legitimate_combined_insn): Make operand_alternative pointer
const.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211240 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-lives.c')
-rw-r--r-- | gcc/ira-lives.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index 62e3768aea6..65133202432 100644 --- a/gcc/ira-lives.c +++ b/gcc/ira-lives.c @@ -625,7 +625,7 @@ check_and_make_def_conflict (int alt, int def, enum reg_class def_cl) advance_p = true; int n_operands = recog_data.n_operands; - operand_alternative *op_alt = &recog_op_alt[alt * n_operands]; + const operand_alternative *op_alt = &recog_op_alt[alt * n_operands]; for (use = 0; use < n_operands; use++) { int alt1; @@ -646,7 +646,8 @@ check_and_make_def_conflict (int alt, int def, enum reg_class def_cl) { if (!TEST_BIT (enabled, alt1)) continue; - operand_alternative *op_alt1 = &recog_op_alt[alt1 * n_operands]; + const operand_alternative *op_alt1 + = &recog_op_alt[alt1 * n_operands]; if (op_alt1[use].matches == def || (use < n_operands - 1 && recog_data.constraints[use][0] == '%' @@ -692,7 +693,7 @@ make_early_clobber_and_input_conflicts (void) int n_alternatives = recog_data.n_alternatives; int n_operands = recog_data.n_operands; alternative_mask enabled = recog_data.enabled_alternatives; - operand_alternative *op_alt = recog_op_alt; + const operand_alternative *op_alt = recog_op_alt; for (alt = 0; alt < n_alternatives; alt++, op_alt += n_operands) if (TEST_BIT (enabled, alt)) for (def = 0; def < n_operands; def++) @@ -1251,7 +1252,7 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) } extract_insn (insn); - preprocess_constraints (); + preprocess_constraints (insn); process_single_reg_class_operands (false, freq); /* See which defined values die here. */ |