rust/src/librustc_trans/trans
bors a6b109723a auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger
This corresponds to the JMM memory model's non-volatile reads and writes to shared variables.  It provides fairly weak guarantees, but prevents UB (specifically, you will never see a value that was not written _at some point_ to the provided location).  It is not part of the C++ memory model and is only legal to provide to LLVM for loads and stores (not fences, atomicrmw, etc.).

Valid uses of this ordering are things like racy counters where you don't care about the operation actually being atomic, just want to avoid UB.  It cannot be used for synchronization without additional memory barriers since unordered loads and stores may be reordered freely by the optimizer (this is the main way it differs from relaxed).

Because it is new to Rust and it provides so few guarantees, for now only the intrinsic is provided--this patch doesn't add it to any of the higher-level atomic wrappers.
2015-01-03 01:10:40 +00:00
..
_match.rs rustc_trans: replace EnterPatterns alias with an unboxed closure 2014-12-31 22:50:27 -05:00
adt.rs Refactor the Typer interface to separate out UnboxedClosureTyper methods, which are 2015-01-01 18:48:26 -05:00
asm.rs Fallout of std::str stabilization 2014-12-21 23:31:42 -08:00
base.rs rollup merge of #20315: alexcrichton/std-sync 2015-01-02 09:19:00 -08:00
basic_block.rs Insert coercions to fn pointer types required for the new types 2014-12-22 12:27:07 -05:00
build.rs
builder.rs std: Stabilize the prelude module 2015-01-02 08:54:06 -08:00
cabi_arm.rs
cabi_mips.rs
cabi_x86_64.rs Fallout from stabilization 2014-12-30 17:06:08 -08:00
cabi_x86_win64.rs
cabi_x86.rs
cabi.rs Fallout of std::str stabilization 2014-12-21 23:31:42 -08:00
callee.rs Implement associated type projection and normalization. 2014-12-30 09:36:21 -05:00
cleanup.rs More fallout 2015-01-02 10:28:19 +13:00
closure.rs Normalize the associated types in closure and closure upvar types. 2015-01-01 18:48:26 -05:00
common.rs Normalize the associated types in closure and closure upvar types. 2015-01-01 18:48:26 -05:00
consts.rs rustc_trans: unbox closures used in let bindings 2014-12-31 22:50:27 -05:00
context.rs Implement associated type projection and normalization. 2014-12-30 09:36:21 -05:00
controlflow.rs Refactor various queries out of ty and into trans/common 2014-12-30 09:32:42 -05:00
datum.rs Move the TypeContents-based "Sized" queries into trans, where the full 2014-12-30 09:32:42 -05:00
debuginfo.rs rollup merge of #20407: michaelwoerister/unreachable-locals 2015-01-02 09:22:50 -08:00
doc.rs
expr.rs rustc_trans: unbox closures used in function arguments 2014-12-31 22:50:26 -05:00
foreign.rs std: Stabilize the prelude module 2015-01-02 08:54:06 -08:00
glue.rs Move the scalar types out of static data so that we can put Rc into sty. 2014-12-30 09:34:38 -05:00
inline.rs
intrinsic.rs auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger 2015-01-03 01:10:40 +00:00
llrepr.rs
machine.rs
macros.rs librustc: Always parse macro!()/macro![] as expressions if not 2014-12-18 12:09:07 -05:00
meth.rs Ensure that, for every trait Foo, the predicate Foo : Foo holds. 2015-01-02 12:09:38 -05:00
mod.rs auto merge of #20119 : FlaPer87/rust/oibit-send-and-friends, r=nikomatsakis 2014-12-27 13:11:48 +00:00
monomorphize.rs Normalize the associated types in closure and closure upvar types. 2015-01-01 18:48:26 -05:00
tvec.rs Refactor various queries out of ty and into trans/common 2014-12-30 09:32:42 -05:00
type_.rs Fallout from stabilization 2014-12-30 17:06:08 -08:00
type_of.rs Implement associated type projection and normalization. 2014-12-30 09:36:21 -05:00
value.rs std: Second pass stabilization for ptr 2014-12-29 15:57:28 -08:00