diff mbox

[ARM] Fix bootstrap issue with thumb state + neon.

Message ID 539021D3.6090102@arm.com
State New
Headers show

Commit Message

Ramana Radhakrishnan June 5, 2014, 7:52 a.m. UTC
Hi,

In certain configurations of our auto-testers bootstrap fails because 
the enabled attribute depends on "opt_enabled" which is driven by state 
that is not constant for a compilation unit. We probably need a hot/ 
cold alternative which may be useful per insn.

For now, work around this till we know if we really need this attribute 
on these patterns and what the impact in reality is.

Bootstrapped , tested and applied to trunk.


Ramana

  * config/arm/arm.md (enabled): Disable opt_enabled.
diff mbox

Patch

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2efa59f..484b0c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@ 
+2014-06-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	* config/arm/arm.md (enabled): Remove opt_enabled.
+
 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
 	PR target/61154
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index bec889a..f58a79b 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -201,6 +201,17 @@ 
 	 (const_string "no")))
 
 ; Enable all alternatives that are both arch_enabled and insn_enabled.
+; FIXME:: opt_enabled has been temporarily removed till the time we have
+; an attribute that allows the use of such alternatives.
+; This depends on caching of speed_p, size_p on a per
+; alternative basis. The problem is that the enabled attribute
+; cannot depend on any state that is not cached or is not constant
+; for a compilation unit. We probably need a generic "hot/cold"
+; alternative which if implemented can help with this. We disable this
+; until such a time as this is implemented and / or the improvements or
+; regressions with removing this attribute are double checked.
+; See ashldi3_neon and <shift>di3_neon in neon.md.
+
  (define_attr "enabled" "no,yes"
    (cond [(and (eq_attr "predicable_short_it" "no")
 	       (and (eq_attr "predicated" "yes")
@@ -216,9 +227,6 @@ 
 	  (const_string "no")
 
 	  (eq_attr "arch_enabled" "no")
-	  (const_string "no")
-
-	  (eq_attr "opt_enabled" "no")
 	  (const_string "no")]
 	 (const_string "yes")))