summaryrefslogtreecommitdiff
path: root/gcc/ira-int.h
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-14 16:41:56 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-14 16:41:56 +0000
commit68d4bdfb01c01a089f27aeb85053a723d43abf64 (patch)
tree12060aac5280cd64ffa8d76772ce606ac96eab1b /gcc/ira-int.h
parent54670ae63732730f450f038b9fc057b6cd9e8366 (diff)
downloadgcc-68d4bdfb01c01a089f27aeb85053a723d43abf64.tar.gz
2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/37397 * ira-int.h (struct ira_allocno): New member bad_spill_p. (ALLOCNO_BAD_SPILL_P): New macro. * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P. * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P. (create_cap_allocno, propagate_allocno_info, remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P. (update_bad_spill_attribute): New function. (ira_build): Call it. * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141860 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-int.h')
-rw-r--r--gcc/ira-int.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ira-int.h b/gcc/ira-int.h
index c5e4bec6346..0ed1ec3a9ec 100644
--- a/gcc/ira-int.h
+++ b/gcc/ira-int.h
@@ -351,6 +351,10 @@ struct ira_allocno
region and all its subregions recursively. */
unsigned int no_stack_reg_p : 1, total_no_stack_reg_p : 1;
#endif
+ /* TRUE value means that there is no sense to spill the allocno
+ during coloring because the spill will result in additional
+ reloads in reload pass. */
+ unsigned int bad_spill_p : 1;
/* TRUE value means that the allocno was not removed yet from the
conflicting graph during colouring. */
unsigned int in_graph_p : 1;
@@ -435,6 +439,7 @@ struct ira_allocno
#define ALLOCNO_NO_STACK_REG_P(A) ((A)->no_stack_reg_p)
#define ALLOCNO_TOTAL_NO_STACK_REG_P(A) ((A)->total_no_stack_reg_p)
#endif
+#define ALLOCNO_BAD_SPILL_P(A) ((A)->bad_spill_p)
#define ALLOCNO_IN_GRAPH_P(A) ((A)->in_graph_p)
#define ALLOCNO_ASSIGNED_P(A) ((A)->assigned_p)
#define ALLOCNO_MAY_BE_SPILLED_P(A) ((A)->may_be_spilled_p)