aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-int.h
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-07-12 19:03:15 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2010-07-12 19:03:15 +0000
commitaa1c5d72e9cb30ddea2f930b6f94045dd8f2dcbc (patch)
treeed1e21f22d705875935767c123667b9066177bd7 /gcc/ira-int.h
parentafcc66c49afbb6e971a70f503b96d1fd1a41f7c5 (diff)
downloadgcc-aa1c5d72e9cb30ddea2f930b6f94045dd8f2dcbc.zip
gcc-aa1c5d72e9cb30ddea2f930b6f94045dd8f2dcbc.tar.gz
gcc-aa1c5d72e9cb30ddea2f930b6f94045dd8f2dcbc.tar.bz2
ira-int.h (target_ira_int): Add x_max_struct_costs_size...
gcc/ * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost, x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes. * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs) (this_op_costs, costs_classes): Redefine as macros. (record_reg_classes): Don't take op_costs as a parameter. (record_operand_costs): Likewise. Update calls to record_reg_classes. (scan_one_insn): Update call to record_operand_costs. From-SVN: r162103
Diffstat (limited to 'gcc/ira-int.h')
-rw-r--r--gcc/ira-int.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ira-int.h b/gcc/ira-int.h
index 8c53770..f32c22b 100644
--- a/gcc/ira-int.h
+++ b/gcc/ira-int.h
@@ -715,6 +715,26 @@ minmax_set_iter_next (minmax_set_iterator *i)
minmax_set_iter_next (&(ITER)))
struct target_ira_int {
+ /* Initialized once. It is a maximal possible size of the allocated
+ struct costs. */
+ int x_max_struct_costs_size;
+
+ /* Allocated and initialized once, and used to initialize cost values
+ for each insn. */
+ struct costs *x_init_cost;
+
+ /* Allocated once, and used for temporary purposes. */
+ struct costs *x_temp_costs;
+
+ /* Allocated once, and used for the cost calculation. */
+ struct costs *x_op_costs[MAX_RECOG_OPERANDS];
+ struct costs *x_this_op_costs[MAX_RECOG_OPERANDS];
+
+ /* Classes used for cost calculation. They may be different on
+ different iterations of the cost calculations or in different
+ optimization modes. */
+ enum reg_class *x_cost_classes;
+
/* Hard registers that can not be used for the register allocator for
all functions of the current compilation unit. */
HARD_REG_SET x_no_unit_alloc_regs;