Displaying 4 results from an estimated 4 matches for "checker_thread_end".
2018 Feb 09
1
PHI nodes for atomic variables
...4, !tbaa !1
*; 5 = MemoryDef(4)*
* %3 = load atomic i32, i32* getelementptr inbounds
(%"struct.std::atomic", %"struct.std::atomic"* @x, i64 0, i32 0, i32 0)
seq_cst, align 4*
; 6 = MemoryDef(5)
store i32 %3, i32* @data1, align 4, !tbaa !1
; 7 = MemoryDef(6)
tail call void @checker_thread_end()
ret void
}
Best regards,
Qiuping Yi
Institute Of Software
Chinese Academy of Sciences
On Thu, Feb 8, 2018 at 2:26 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
>
>
> Let me try to help.
>
> On Thu, Feb 8, 2018 at 12:13 PM, Qiuping Yi via llvm-dev <
> llvm-de...
2018 Feb 08
2
PHI nodes for atomic variables
...32 [ %4, %3 ], [ %6, %5 ]*
store i32 %8, i32* @data3, align 4, !tbaa !1
%9 = load atomic i32, i32* getelementptr inbounds (%"struct.std::atomic",
%"struct.std::atomic"* @x, i64 0, i32 0, i32 0) seq_cst, align 4
store i32 %9, i32* @data1, align 4, !tbaa !1
tail call void @checker_thread_end()
ret void
}
Best regards,
Qiuping Yi
Institute Of Software
Chinese Academy of Sciences
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180207/a26ce3ad/attachment.html>
2018 Feb 08
0
PHI nodes for atomic variables
Let me try to help.
On Thu, Feb 8, 2018 at 12:13 PM, Qiuping Yi via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Thanks for your explanation.
>
> Do you mean that LLVM will not maintain the def-use chain for atomic
> variables?
>
It is not a variable at the LLVM level.
At the source level, it is a variable.
At the LLVM IR level, it is lowered into memory operations.
All
2018 Feb 08
3
PHI nodes for atomic variables
Thanks for your explanation.
Do you mean that LLVM will not maintain the def-use chain for atomic
variables?
So it is impossible to directly catch the fact that the load of x at the
statement 'data1 = x; ' dependents on data4 (because of the statement
x=data4 )?
If I want to get such information, may be the only solution is to traverse
all the predecessors of the statement 'data1 =