diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/ira-costs.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74c2c32..d6353e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-04-10 Bernd Schmidt <bernd.schmidt@codesourcery.com> + + * ira-costs.c (record_reg_classes): Ignore alternatives that are + not enabled. + 2010-04-09 Uros Bizjak <ubizjak@gmail.com> PR target/43707 diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 9e11219..76aadff 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -224,6 +224,14 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, int alt_fail = 0; int alt_cost = 0, op_cost_add; + if (!recog_data.alternative_enabled_p[alt]) + { + for (i = 0; i < recog_data.n_operands; i++) + constraints[i] = skip_alternative (constraints[i]); + + continue; + } + for (i = 0; i < n_ops; i++) { unsigned char c; |
