Skip to content

Instantly share code, notes, and snippets.

@minglotus-6
Created December 8, 2021 18:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save minglotus-6/24bccb53d5e101cb20a7118f5e9f389f to your computer and use it in GitHub Desktop.
Save minglotus-6/24bccb53d5e101cb20a7118f5e9f389f to your computer and use it in GitHub Desktop.
*** IR Dump After SimplifyCFGPass on _Z5ParsebPF6RetValvE ***
; Function Attrs: mustprogress uwtable
define dso_local i64 @_Z5ParsebPF6RetValvE(i1 zeroext %test, i64 ()* %p) #0 {
entry:
%retval = alloca %struct.RetVal, align 4
%test.addr = alloca i8, align 1
%p.addr = alloca i64 ()*, align 8
%frombool = zext i1 %test to i8
store i8 %frombool, i8* %test.addr, align 1, !tbaa !3
store i64 ()* %p, i64 ()** %p.addr, align 8, !tbaa !7
%0 = load i8, i8* %test.addr, align 1, !tbaa !3, !range !9
%tobool = trunc i8 %0 to i1
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %entry
%x = getelementptr inbounds %struct.RetVal, %struct.RetVal* %retval, i32 0, i32 0
store i32 0, i32* %x, align 4, !tbaa !10
%y = getelementptr inbounds %struct.RetVal, %struct.RetVal* %retval, i32 0, i32 1
store i32 0, i32* %y, align 4, !tbaa !13
br label %return
if.end: ; preds = %entry
%1 = load i64 ()*, i64 ()** %p.addr, align 8, !tbaa !7
%call = call i64 %1()
%2 = bitcast %struct.RetVal* %retval to i64*
store i64 %call, i64* %2, align 4
br label %return
return: ; preds = %if.end, %if.then
%3 = bitcast %struct.RetVal* %retval to i64*
%4 = load i64, i64* %3, align 4
ret i64 %4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment