OSDN Git Service

* ira-costs.c (record_reg_classes): Ignore alternatives that are
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Apr 2010 12:28:25 +0000 (12:28 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Apr 2010 12:28:25 +0000 (12:28 +0000)
not enabled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158186 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ira-costs.c

index 74c2c32..d6353e8 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 9e11219..76aadff 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;