Displaying 3 results from an estimated 3 matches for "sequence_point".
2011 Oct 10
0
[LLVMdev] [cfe-dev] Disable Short-Circuit Evaluation?
.... This is the semantics of C. Short-circuiting is used to
> defend against all sorts of undefined behavior in real code.
More precisely, && and || are sequence points (though in C++ they may not be
sequence points if respective operator is overloaded)
[1] http://en.wikipedia.org/wiki/Sequence_point
--
Regards,
Konstantin
2011 Oct 10
3
[LLVMdev] Disable Short-Circuit Evaluation?
Is there any way to disable short-circuit evaluation of expressions in
Clang/LLVM?
Let's say I have C code like the following:
bool validX = get_group_id(0) > 32;
int globalIndexY0 = get_group_id(1)*186 + 6*get_local_id(1) + 0 + 1;
bool valid0 = validX && globalIndexY0 >= 4 && globalIndexY0 < 3910;
int globalIndexY1 = get_group_id(1)*186 + 6*get_local_id(1) +
2011 Oct 10
1
[LLVMdev] [cfe-dev] Disable Short-Circuit Evaluation?
Justin Holewinski <justin.holewinski at gmail.com> writes:
> int globalIndexY2 = get_group_id(1)*186 + 6*get_local_id(1) + 2 + 1;
> bool valid2 = validX && globalIndexY2 >= 4 && globalIndexY2 < 3910;
>
> Clang, even at -O0, is performing short-circuit evaluation of these
> expressions, resulting in a fair number of branch instructions being
>