MS ABI: Implement /volatile:ms
The /volatile:ms semantics turn volatile loads and stores into atomic acquire and release operations. This distinction is important because volatile memory operations do not form a happens-before relationship with non-atomic memory. This means that a volatile store is not sufficient for implementing a mutex unlock routine. Differential Revision: http://reviews.llvm.org/D7580 llvm-svn: 229082
This commit is contained in:
@@ -477,6 +477,8 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
|
||||
OPT_fno_data_sections, false);
|
||||
Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions);
|
||||
|
||||
Opts.MSVolatile = Args.hasArg(OPT_fms_volatile);
|
||||
|
||||
Opts.VectorizeBB = Args.hasArg(OPT_vectorize_slp_aggressive);
|
||||
Opts.VectorizeLoop = Args.hasArg(OPT_vectorize_loops);
|
||||
Opts.VectorizeSLP = Args.hasArg(OPT_vectorize_slp);
|
||||
|
||||
Reference in New Issue
Block a user