search for: checker_thread_begin

Displaying 4 results from an estimated 4 matches for "checker_thread_begin".

2018 Feb 09
1
PHI nodes for atomic variables
...ecifically, why instruction *%3* relates to a *MemoryDef*. According to my understanding, I think *%3* should be related to a *MemoryUse*, right? ; Function Attrs: uwtable define void @_Z2f1v() #3 personality i32 (...)* @__gxx_personality_v0 { entry: ; 1 = MemoryDef(liveOnEntry) tail call void @checker_thread_begin(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0)) ; MemoryUse(1) %0 = load i32, i32* @data1, align 4, !tbaa !1 %cmp = icmp sgt i32 %0, 0 br i1 %cmp, label %if.then, label %entry.if.end_crit_edge entry.if.end_crit_edge: ; preds = %entry ; MemoryUs...
2018 Feb 08
2
PHI nodes for atomic variables
...int data1, data2, data3, data4; std::atomic<int> x; void f1() { if (data1 > 0) { x = data4; data2 = data4; } data3 = data2; data1 = x; } ; Function Attrs: uwtable define void @_Z2f1v() #3 personality i32 (...)* @__gxx_personality_v0 { tail call void @checker_thread_begin(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0)) %1 = load i32, i32* @data1, align 4, !tbaa !1 %2 = icmp sgt i32 %1, 0 br i1 %2, label %5, label %3 ; <label>:3: ; preds = %0 %4 = load i32, i32* @data2, align 4, !tbaa !1 br l...
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 =