Created
August 27, 2018 18:13
-
-
Save tessprime/99b3075dbfffae35a5745934ded217fb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| *** IR Dump Before Module Verifier *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %retval = alloca i32, align 4 | |
| %i = alloca i32, align 4 | |
| store i32 0, i32* %retval | |
| store i32 0, i32* %i, align 4 | |
| br label %for.cond | |
| for.cond: ; preds = %for.inc, %entry | |
| %0 = load i32, i32* %i, align 4 | |
| %cmp = icmp slt i32 %0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| br label %for.inc | |
| for.inc: ; preds = %for.body | |
| %1 = load i32, i32* %i, align 4 | |
| %inc = add nsw i32 %1, 1 | |
| store i32 %inc, i32* %i, align 4 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| %2 = load i32, i32* %retval | |
| ret i32 %2 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %retval = alloca i32, align 4 | |
| %i = alloca i32, align 4 | |
| store i32 0, i32* %retval | |
| store i32 0, i32* %i, align 4 | |
| br label %for.cond | |
| for.cond: ; preds = %for.inc, %entry | |
| %0 = load i32, i32* %i, align 4 | |
| %cmp = icmp slt i32 %0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| br label %for.inc | |
| for.inc: ; preds = %for.body | |
| %1 = load i32, i32* %i, align 4 | |
| %inc = add nsw i32 %1, 1 | |
| store i32 %inc, i32* %i, align 4 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| %2 = load i32, i32* %retval | |
| ret i32 %2 | |
| } | |
| *** IR Dump Before SROA *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %retval = alloca i32, align 4 | |
| %i = alloca i32, align 4 | |
| store i32 0, i32* %retval | |
| store i32 0, i32* %i, align 4 | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %0 = load i32, i32* %i, align 4 | |
| %cmp = icmp slt i32 %0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %1 = load i32, i32* %i, align 4 | |
| %inc = add nsw i32 %1, 1 | |
| store i32 %inc, i32* %i, align 4 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| %2 = load i32, i32* %retval | |
| ret i32 %2 | |
| } | |
| *** IR Dump Before Early CSE *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Lower 'expect' Intrinsics *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Interprocedural Sparse Conditional Constant Propagation ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| declare i32 @printf(i8*, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Global Variable Optimizer ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| declare i32 @printf(i8*, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Dead Argument Elimination ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| declare i32 @printf(i8*, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0)) | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Remove unused exception handling info *** | |
| Printing <null> Function | |
| *** IR Dump Before Function Integration/Inlining *** | |
| Printing <null> Function | |
| *** IR Dump Before Deduce function attributes *** | |
| Printing <null> Function | |
| *** IR Dump Before Remove unused exception handling info *** | |
| declare i32 @printf(i8*, ...) #1 | |
| *** IR Dump Before Function Integration/Inlining *** | |
| declare i32 @printf(i8*, ...) #1 | |
| *** IR Dump Before Deduce function attributes *** | |
| declare i32 @printf(i8*, ...) #1 | |
| *** IR Dump Before Remove unused exception handling info *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Function Integration/Inlining *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Deduce function attributes *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before SROA *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Early CSE *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Jump Threading *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Value Propagation *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Tail Call Elimination *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Reassociate expressions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.cond | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| for.end: ; preds = %for.cond | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Rotate Loops *** | |
| for.cond: ; preds = %for.body, %entry | |
| %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %cmp = icmp slt i32 %i.0, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.body: ; preds = %for.cond | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.0, 1 | |
| br label %for.cond | |
| *** IR Dump Before Loop Invariant Code Motion *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| *** IR Dump Before Unswitch loops *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.body | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.end: ; preds = %for.body | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.body | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.end: ; preds = %for.body | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.body | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| for.end: ; preds = %for.body | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Induction Variable Simplification *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nsw i32 %i.02, 1 | |
| %cmp = icmp slt i32 %inc, 3 | |
| br i1 %cmp, label %for.body, label %for.end | |
| *** IR Dump Before Recognize loop idioms *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nuw nsw i32 %i.02, 1 | |
| %exitcond = icmp ne i32 %inc, 3 | |
| br i1 %exitcond, label %for.body, label %for.end | |
| *** IR Dump Before Delete dead loops *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nuw nsw i32 %i.02, 1 | |
| %exitcond = icmp ne i32 %inc, 3 | |
| br i1 %exitcond, label %for.body, label %for.end | |
| *** IR Dump Before Unroll loops *** | |
| for.body: ; preds = %entry, %for.body | |
| %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %inc = add nuw nsw i32 %i.02, 1 | |
| %exitcond = icmp ne i32 %inc, 3 | |
| br i1 %exitcond, label %for.body, label %for.end | |
| *** IR Dump Before MergedLoadStoreMotion *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.body | |
| for.body: ; preds = %entry | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Global Value Numbering *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| br label %for.body | |
| for.body: ; preds = %entry | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before MemCpy Optimization *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Sparse Conditional Constant Propagation *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Bit-Tracking Dead Code Elimination *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Jump Threading *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Value Propagation *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Dead Store Elimination *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Aggressive Dead Code Elimination *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Remove unused exception handling info *** | |
| Printing <null> Function | |
| *** IR Dump Before Function Integration/Inlining *** | |
| Printing <null> Function | |
| *** IR Dump Before Deduce function attributes *** | |
| Printing <null> Function | |
| *** IR Dump Before A No-Op Barrier Pass ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| ; Function Attrs: nounwind | |
| declare i32 @printf(i8* nocapture readonly, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #1 = { 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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #2 = { nounwind } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Float to int *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop Vectorization *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before SLP Vectorizer *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Simplify the CFG *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Combine redundant instructions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Canonicalize natural loops *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Loop-Closed SSA Form Pass *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Alignment from assumptions *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Strip Unused Function Prototypes ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| ; Function Attrs: nounwind | |
| declare i32 @printf(i8* nocapture readonly, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #1 = { 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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #2 = { nounwind } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Dead Global Elimination ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| ; Function Attrs: nounwind | |
| declare i32 @printf(i8* nocapture readonly, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #1 = { 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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #2 = { nounwind } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Merge Duplicate Global Constants ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| ; Function Attrs: nounwind | |
| declare i32 @printf(i8* nocapture readonly, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #1 = { 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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #2 = { nounwind } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} | |
| *** IR Dump Before Module Verifier *** | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| *** IR Dump Before Print module to stderr ***; ModuleID = 'test.ll' | |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
| target triple = "x86_64-unknown-linux-gnu" | |
| @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1 | |
| ; Function Attrs: nounwind uwtable | |
| define i32 @main() #0 { | |
| entry: | |
| %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2 | |
| ret i32 0 | |
| } | |
| ; Function Attrs: nounwind | |
| declare i32 @printf(i8* nocapture readonly, ...) #1 | |
| attributes #0 = { nounwind uwtable "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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #1 = { 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" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
| attributes #2 = { nounwind } | |
| !llvm.ident = !{!0} | |
| !0 = !{!"clang version 3.7.0 (https://github.com/llvm-mirror/clang 13c534b9fb8cfc1d8ec8c6c4f97227e56758a4e8) (https://github.com/llvm-mirror/llvm b753a30d3ba5758f387f9bcd5ed3a12de1ea85f8)"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment