aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@codesourcery.com>2010-04-10 12:28:25 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2010-04-10 12:28:25 +0000
commit979740a0897ac0a74dcd1136447f7118de4f3839 (patch)
tree3189192b47ab230e07d3ab5df96ed4991313aec0
parent93c02eae9a5d9dff6f494bc2017327647ef6673d (diff)
downloadgcc-979740a0897ac0a74dcd1136447f7118de4f3839.zip
gcc-979740a0897ac0a74dcd1136447f7118de4f3839.tar.gz
gcc-979740a0897ac0a74dcd1136447f7118de4f3839.tar.bz2
ira-costs.c (record_reg_classes): Ignore alternatives that are not enabled.
* ira-costs.c (record_reg_classes): Ignore alternatives that are not enabled. From-SVN: r158186
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-costs.c8
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;