|
|
|
@ -29,37 +29,36 @@ define void @luaV_op_call(%struct.lua_State* %L, %struct.LClosure* nocapture rea
|
|
|
|
|
entry:
|
|
|
|
|
%arrayidx = getelementptr inbounds %struct.LClosure* %cl, i32 0, i32 6, i32 %b
|
|
|
|
|
%0 = load %struct.UpVal** %arrayidx, align 4, !tbaa !1
|
|
|
|
|
%tt_ = getelementptr inbounds %struct.TValue* %ra, i32 0, i32 1
|
|
|
|
|
%1 = load i32* %tt_, align 4, !tbaa !5
|
|
|
|
|
%v = getelementptr inbounds %struct.UpVal* %0, i32 0, i32 0
|
|
|
|
|
%1 = bitcast %struct.UpVal* %0 to i8**
|
|
|
|
|
%2 = load i8** %1, align 4, !tbaa !5
|
|
|
|
|
%3 = bitcast %struct.TValue* %ra to i8*
|
|
|
|
|
tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 16, i32 8, i1 false), !tbaa.struct !8
|
|
|
|
|
%4 = load %struct.TValue** %v, align 4, !tbaa !5
|
|
|
|
|
%tt_ = getelementptr inbounds %struct.TValue* %4, i32 0, i32 1
|
|
|
|
|
%5 = load i32* %tt_, align 4, !tbaa !14
|
|
|
|
|
%and = and i32 %5, 64
|
|
|
|
|
%value = getelementptr inbounds %struct.UpVal* %0, i32 0, i32 2, i32 0
|
|
|
|
|
%cmp = icmp ne %struct.TValue* %4, %value
|
|
|
|
|
%2 = load %struct.TValue** %v, align 4, !tbaa !8
|
|
|
|
|
%tt_1 = getelementptr inbounds %struct.TValue* %2, i32 0, i32 1
|
|
|
|
|
store i32 %1, i32* %tt_1, align 4, !tbaa !5
|
|
|
|
|
%n = bitcast %struct.TValue* %ra to double*
|
|
|
|
|
%3 = load double* %n, align 8, !tbaa !11
|
|
|
|
|
%4 = bitcast %struct.TValue* %2 to double*
|
|
|
|
|
store double %3, double* %4, align 8, !tbaa !11
|
|
|
|
|
%and = and i32 %1, 64
|
|
|
|
|
%value7 = getelementptr inbounds %struct.UpVal* %0, i32 0, i32 2, i32 0
|
|
|
|
|
%cmp = icmp ne %struct.TValue* %2, %value7
|
|
|
|
|
%tobool = icmp eq i32 %and, 0
|
|
|
|
|
%or.cond = or i1 %cmp, %tobool
|
|
|
|
|
br i1 %or.cond, label %if.end, label %if.then
|
|
|
|
|
|
|
|
|
|
if.then: ; preds = %entry
|
|
|
|
|
tail call void @luaC_upvalbarrier_(%struct.lua_State* %L, %struct.UpVal* %0) #1
|
|
|
|
|
tail call void @luaC_upvalbarrier_(%struct.lua_State* %L, %struct.UpVal* %0) #2
|
|
|
|
|
br label %if.end
|
|
|
|
|
|
|
|
|
|
if.end: ; preds = %entry, %if.then
|
|
|
|
|
ret void
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
; Function Attrs: nounwind
|
|
|
|
|
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1) #1
|
|
|
|
|
|
|
|
|
|
declare void @luaC_upvalbarrier_(%struct.lua_State*, %struct.UpVal*) #2
|
|
|
|
|
declare void @luaC_upvalbarrier_(%struct.lua_State*, %struct.UpVal*) #1
|
|
|
|
|
|
|
|
|
|
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
|
|
|
attributes #1 = { nounwind }
|
|
|
|
|
attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
|
|
|
attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
|
|
|
attributes #2 = { nounwind }
|
|
|
|
|
|
|
|
|
|
!llvm.ident = !{!0}
|
|
|
|
|
|
|
|
|
@ -68,14 +67,11 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
|
|
|
|
|
!2 = metadata !{metadata !"any pointer", metadata !3, i64 0}
|
|
|
|
|
!3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0}
|
|
|
|
|
!4 = metadata !{metadata !"Simple C/C++ TBAA"}
|
|
|
|
|
!5 = metadata !{metadata !6, metadata !2, i64 0}
|
|
|
|
|
!6 = metadata !{metadata !"UpVal", metadata !2, i64 0, metadata !7, i64 8, metadata !3, i64 16}
|
|
|
|
|
!7 = metadata !{metadata !"long long", metadata !3, i64 0}
|
|
|
|
|
!8 = metadata !{i64 0, i64 4, metadata !1, i64 0, i64 4, metadata !1, i64 0, i64 4, metadata !9, i64 0, i64 4, metadata !1, i64 0, i64 8, metadata !11, i64 0, i64 8, metadata !12, i64 8, i64 4, metadata !9}
|
|
|
|
|
!9 = metadata !{metadata !10, metadata !10, i64 0}
|
|
|
|
|
!10 = metadata !{metadata !"int", metadata !3, i64 0}
|
|
|
|
|
!11 = metadata !{metadata !7, metadata !7, i64 0}
|
|
|
|
|
!12 = metadata !{metadata !13, metadata !13, i64 0}
|
|
|
|
|
!13 = metadata !{metadata !"double", metadata !3, i64 0}
|
|
|
|
|
!14 = metadata !{metadata !15, metadata !10, i64 8}
|
|
|
|
|
!15 = metadata !{metadata !"TValue", metadata !3, i64 0, metadata !10, i64 8}
|
|
|
|
|
!5 = metadata !{metadata !6, metadata !7, i64 8}
|
|
|
|
|
!6 = metadata !{metadata !"TValue", metadata !3, i64 0, metadata !7, i64 8}
|
|
|
|
|
!7 = metadata !{metadata !"int", metadata !3, i64 0}
|
|
|
|
|
!8 = metadata !{metadata !9, metadata !2, i64 0}
|
|
|
|
|
!9 = metadata !{metadata !"UpVal", metadata !2, i64 0, metadata !10, i64 8, metadata !3, i64 16}
|
|
|
|
|
!10 = metadata !{metadata !"long long", metadata !3, i64 0}
|
|
|
|
|
!11 = metadata !{metadata !12, metadata !12, i64 0}
|
|
|
|
|
!12 = metadata !{metadata !"double", metadata !3, i64 0}
|
|
|
|
|