Displaying 3 results from an estimated 3 matches for "sohachak".
Did you mean:
shachar
2015 Jan 26
3
[LLVMdev] LLVM introduces racy read - Unsafe transformation?
...@a, align 4
ret void
}
:
In the generated IR load(a) is independent of flag value which is not the
case in the source program. Hence there is an introduced race between
load(a) and store(a) operations when readA() and writeA() runs
concurrently.
Regards,
soham
> On 26 Jan 2015, at 15:22, sohachak at mpi-sws.org wrote:
>>
>> The source program has no data race if flag=false. But the target
>> program
>> is racy due to the introduced load(a) operation.
>>
>> This is a benign race since the load(a) is used only when flag=true.
>>
>> However, acco...
2015 Jan 26
2
[LLVMdev] LLVM introduces racy read - Unsafe transformation?
Hi,
I am looking for thoughts on the following LLVM transformation.
Consider the following transformation which replaces conditional load(a)
with load(a);select instructions.
Source
--------
int a; bool flag;
int readA() {
int r=0;
if(flag) {
r = a;
}
return r;
}
Command
--------
clang++ -std=c++11 -pthread -emit-llvm <filename>.cpp -S;opt -O3
<filename>.ll -o
2016 Sep 14
2
undef * 0
Hi,
> Both A and B are undef:
> LHS = (undef & undef) | (undef & undef) = undef // Since ~undef =
undef
> RHS = undef
> Thus transform is correct.
LLVM documentation (http://llvm.org/docs/LangRef.html#undefined-values)
suggests that
it is unsafe to consider (a & undef = undef) and (a | undef = undef).
"As such, it is unsafe to optimize or assume