]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ira-costs.c (record_reg_classes): Ignore alternatives that are not enabled.
authorBernd Schmidt <bernd.schmidt@codesourcery.com>
Sat, 10 Apr 2010 12:28:25 +0000 (12:28 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Sat, 10 Apr 2010 12:28:25 +0000 (12:28 +0000)
* ira-costs.c (record_reg_classes): Ignore alternatives that are
not enabled.

From-SVN: r158186

gcc/ChangeLog
gcc/ira-costs.c

index 74c2c327cf87f083312624b53cfd0c4da88645cd..d6353e85a38f10c6155eb0ebd323f5de54a70e97 100644 (file)
@@ -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
index 9e11219ce0104686d6bd9608be56c14118a18a0f..76aadff0772d904df2dac579f3d2bc3d3baf3c20 100644 (file)
@@ -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;