From 2e65f38f1bf1f04c530bfeb6b543f084564eec3d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 30 Nov 2011 08:10:24 -0800 Subject: sparc: Add -mmemory-model command-line option. * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New. * config/sparc/sparc.opt (mmemory-model=): New option. * doc/invoke.texi (Sparc Options): Document it. * config/sparc/sparc.c (sparc_option_override): Provide default for sparc_memory_model. (sparc_emit_membar_for_model): Omit barrier combinations that are implied by the memory model. From-SVN: r181853 --- gcc/config/sparc/sparc-opts.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gcc/config/sparc/sparc-opts.h') diff --git a/gcc/config/sparc/sparc-opts.h b/gcc/config/sparc/sparc-opts.h index 266cb14..7682eb9 100644 --- a/gcc/config/sparc/sparc-opts.h +++ b/gcc/config/sparc/sparc-opts.h @@ -47,4 +47,14 @@ enum processor_type { PROCESSOR_NATIVE }; +/* Sparc system memory model. See Appendix D in the Sparc V9 manual + for formal specification, and Appendix J for more discussion. */ +enum sparc_memory_model_type { + SMM_DEFAULT, /* Uninitialized. */ + SMM_RMO, /* Relaxed Memory Order. */ + SMM_PSO, /* Partial Store Order. */ + SMM_TSO, /* Total Store Order. */ + SMM_SC /* Sequential Consistency. */ +}; + #endif -- cgit v1.1