Lines Matching +full:fault +full:- +full:q
12 Therefore, a load-load control dependency will not preserve ordering
15 q = READ_ONCE(a);
16 if (q)
25 q = READ_ONCE(a);
26 if (q) {
32 (usually) guaranteed for load-store control dependencies, as in the
35 q = READ_ONCE(a);
36 if (q)
45 by a store, and this compiler-generated load would not be ordered by
49 "a" is always non-zero, it would be well within its rights to optimize
52 q = a;
62 q = READ_ONCE(a);
63 if (q) {
76 q = READ_ONCE(a);
79 if (q) {
80 /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */
83 /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */
90 assembly code, after all of the compiler and link-time optimizations
94 q = READ_ONCE(a);
95 if (q) {
103 Without explicit memory ordering, control-dependency-based ordering is
106 q = READ_ONCE(a);
107 if (q) {
119 variable "q", otherwise the compiler might be able to guess the value
123 q = READ_ONCE(a);
124 if (q % MAX) {
132 If MAX is compile-time defined to be 1, then the compiler knows that
133 (q % MAX) must be equal to zero, regardless of the value of "q".
137 q = READ_ONCE(a);
148 q = READ_ONCE(a);
150 if (q % MAX) {
163 You must also be careful avoid relying too much on boolean short-circuit
166 q = READ_ONCE(a);
167 if (q || 1 > 0)
170 Because the first condition cannot fault and the second condition is
174 q = READ_ONCE(a);
178 compiler from out-guessing your code. Again, although READ_ONCE() really
182 In addition, control dependencies apply only to the then-clause and
183 else-clause of the "if" statement in question. In particular, they do
186 q = READ_ONCE(a);
187 if (q) {
198 conditional-move instructions, as in this fanciful pseudo-assembly
212 only to the stores in the then-clause and else-clause of the "if" statement
235 (*) Control dependencies require at least one run-time conditional
246 (*) Control dependencies apply only to the then-clause and else-clause