* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
authorRichard Henderson <rth@redhat.com>
Thu, 30 Dec 2004 00:42:16 +0000 (16:42 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 30 Dec 2004 00:42:16 +0000 (16:42 -0800)
From-SVN: r92722

gcc/ChangeLog
gcc/config/sparc/sparc.c

index 6e071508532d90b57677eca1fecbd28d9688d4fb..17df25bcdbcd0794c17be8afa60c5f85fc69c3da 100644 (file)
@@ -1,3 +1,7 @@
+2003-12-29  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
+
 2004-12-29  Jeff Law  <law@redhat.com>
 
        * tree-outof-ssa.c (insert_backedge_copies): New function.
index dd83f544b4f7dd64848ab55763e81fa118357223..ccc84998e085317186cdb5c4919acbb62d871661 100644 (file)
@@ -495,9 +495,19 @@ enum processor_type sparc_cpu;
 #endif
 
 /* The SPARC v9 architecture defines a relaxed memory ordering model (RMO)
-   which requires this if enabled, though it is never used in userspace,
-   and the Ultra3 processors don't implement it.  */
-#define TARGET_RELAXED_ORDERING TARGET_V9
+   which requires this if enabled.  Prior to v9, there are no instructions
+   to even talk about memory syncronization.  The Ultra3 processor doesn't
+   implement RMO.
+
+   Solaris never enables RMO; only ever uses total memory ordering (TMO.
+
+   Linux currently uses RMO in uniprocessor mode, which is equivalent to
+   TMO, and TMO in multiprocessor mode.  But they reserve the right to
+   change their minds.  */
+/* ??? Getting the configury correct is harder than it's worth.  Just
+   enable it all the time.  */
+#undef TARGET_RELAXED_ORDERING
+#define TARGET_RELAXED_ORDERING true
 
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f