Test source: git
Source: <stdin> -- 1. Annotation2MetadataPass -- 2. Annotation2MetadataPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 3. ForceFunctionAttrsPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 4. ForceFunctionAttrsPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 5. InferFunctionAttrsPass : Skipping unsupported -- 6. InferFunctionAttrsPass : Skipping unsupported -- 7. CoroEarlyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 8. CoroEarlyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 9. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 1. PassManager<Function> : Skipping NOP -- 2. LowerExpectIntrinsicPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 3. LowerExpectIntrinsicPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 4. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 5. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 6. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 7. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 8. EarlyCSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 9. EarlyCSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 10. CallSiteSplittingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 11. CallSiteSplittingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 12. PassManager<Function> : Skipping NOP -- 13. PassManager<Function> : Skipping NOP -- 14. LowerExpectIntrinsicPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 15. LowerExpectIntrinsicPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 16. SimplifyCFGPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 17. SimplifyCFGPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 18. SROAPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 19. SROAPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 20. EarlyCSEPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 21. EarlyCSEPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 22. CallSiteSplittingPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 23. CallSiteSplittingPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 24. PassManager<Function> : Skipping NOP -- 25. PassManager<Function> : Skipping NOP -- 26. LowerExpectIntrinsicPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 27. LowerExpectIntrinsicPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 28. SimplifyCFGPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 29. SimplifyCFGPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 30. SROAPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 31. SROAPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 32. EarlyCSEPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 33. EarlyCSEPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 34. CallSiteSplittingPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 35. CallSiteSplittingPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 36. PassManager<Function> : Skipping NOP -- 10. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 11. OpenMPOptPass : Skipping unsupported -- 12. OpenMPOptPass : Skipping unsupported -- 13. IPSCCPPass : Skipping unsupported -- 14. IPSCCPPass : Skipping unsupported -- 15. CalledValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 16. CalledValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 17. GlobalOptPass : Skipping unsupported -- 18. GlobalOptPass : Skipping unsupported -- 19. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 37. PassManager<Function> : Skipping NOP -- 38. PromotePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 39. PromotePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 40. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 41. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 42. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 43. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 44. PassManager<Function> : Skipping NOP -- 45. PassManager<Function> : Skipping NOP -- 46. PromotePass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 47. PromotePass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 48. InstCombinePass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 49. InstCombinePass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 50. SimplifyCFGPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 51. SimplifyCFGPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 52. PassManager<Function> : Skipping NOP -- 53. PassManager<Function> : Skipping NOP -- 54. PromotePass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 55. PromotePass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 56. InstCombinePass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 57. InstCombinePass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 58. SimplifyCFGPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 59. SimplifyCFGPass ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 60. PassManager<Function> : Skipping NOP -- 20. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 21. ModuleInlinerWrapperPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 22. RequireAnalysisPass<GlobalsAA, Module> : Skipping unsupported -- 23. RequireAnalysisPass<GlobalsAA, Module> : Skipping unsupported -- 24. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 61. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 62. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 63. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 64. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 65. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 66. InvalidateAnalysisPass<AAManager> : Skipping NOP -- 25. ModuleToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 26. RequireAnalysisPass<ProfileSummaryAnalysis, Module> : Skipping NOP -- 27. RequireAnalysisPass<ProfileSummaryAnalysis, Module> : Skipping NOP -- 28. ModuleToPostOrderCGSCCPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 29. DevirtSCCRepeatedPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 30. PassManager<LazyCallGraph::SCC, AnalysisManager<LazyCallGraph::SCC, LazyCallGraph&>, LazyCallGraph&, CGSCCUpdateResult&> : Skipping NOP -- 31. InlinerPass : Skipping unsupported -- 32. InlinerPass : Skipping unsupported -- 33. InlinerPass : Skipping unsupported -- 34. InlinerPass : Skipping unsupported -- 35. PostOrderFunctionAttrsPass : Skipping unsupported -- 36. PostOrderFunctionAttrsPass : Skipping unsupported -- 37. ArgumentPromotionPass : Skipping unsupported -- 38. ArgumentPromotionPass : Skipping unsupported -- 39. OpenMPOptCGSCCPass : Skipping unsupported -- 40. OpenMPOptCGSCCPass : Skipping unsupported -- 41. CGSCCToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 67. PassManager<Function> : Skipping NOP -- 68. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 69. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 70. EarlyCSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 71. EarlyCSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 72. SpeculativeExecutionPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 73. SpeculativeExecutionPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 74. JumpThreadingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 75. JumpThreadingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 76. CorrelatedValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 77. CorrelatedValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 78. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 79. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 80. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 81. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 82. AggressiveInstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 83. AggressiveInstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 84. ConstraintEliminationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 85. ConstraintEliminationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 86. LibCallsShrinkWrapPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 87. LibCallsShrinkWrapPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 88. TailCallElimPass : Skipping unsupported -- 89. TailCallElimPass : Skipping unsupported -- 90. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 91. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 92. ReassociatePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 93. ReassociatePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 94. RequireAnalysisPass<OptimizationRemarkEmitterAnalysis, Function> : Skipping NOP -- 95. RequireAnalysisPass<OptimizationRemarkEmitterAnalysis, Function> : Skipping NOP -- 96. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 97. PassManager<Function> : Skipping NOP -- 98. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 99. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 100. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 101. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 102. PassManager<Function> : Skipping NOP -- 103. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 104. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 105. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 106. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 107. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 108. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 109. PassManager<Function> : Skipping NOP -- 110. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 111. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 112. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 113. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 114. PassManager<Function> : Skipping NOP -- 115. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 116. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 117. SROAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 118. VectorCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 119. VectorCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 120. MergedLoadStoreMotionPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 121. MergedLoadStoreMotionPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 122. GVNPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 123. GVNPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 124. SCCPPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 125. SCCPPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 126. BDCEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 127. BDCEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 128. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 129. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 130. JumpThreadingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 131. JumpThreadingPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 132. CorrelatedValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 133. CorrelatedValuePropagationPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 134. ADCEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 135. ADCEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 136. MemCpyOptPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 137. MemCpyOptPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 138. DSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 139. DSEPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 140. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 141. PassManager<Function> : Skipping NOP -- 142. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 143. LoopSimplifyPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 144. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 145. LCSSAPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 146. PassManager<Function> : Skipping NOP -- 147. FunctionToLoopPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 148. CoroElidePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 149. CoroElidePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 150. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 151. SimplifyCFGPass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 152. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 153. InstCombinePass ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 154. PassManager<Function> : Skipping NOP -- 42. CGSCCToFunctionPassAdaptor ---------------------------------------- define void @bar() { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 43. PostOrderFunctionAttrsPass : Skipping unsupported -- 44. PostOrderFunctionAttrsPass : Skipping unsupported -- 45. CGSCCToFunctionPassAdaptor ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 155. RequireAnalysisPass<ShouldNotRunFunctionPassesAnalysis, Function> : Skipping NOP -- 156. RequireAnalysisPass<ShouldNotRunFunctionPassesAnalysis, Function> : Skipping NOP -- 46. CGSCCToFunctionPassAdaptor ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 47. CoroSplitPass ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 48. CoroSplitPass ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 49. PassManager<LazyCallGraph::SCC, AnalysisManager<LazyCallGraph::SCC, LazyCallGraph&>, LazyCallGraph&, CGSCCUpdateResult&> : Skipping NOP -- 50. DevirtSCCRepeatedPass ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 51. DevirtSCCRepeatedPass ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 52. PassManager<LazyCallGraph::SCC, AnalysisManager<LazyCallGraph::SCC, LazyCallGraph&>, LazyCallGraph&, CGSCCUpdateResult&> : Skipping NOP -- 53. InlinerPass : Skipping unsupported -- 54. InlinerPass : Skipping unsupported -- 55. InlinerPass : Skipping unsupported -- 56. InlinerPass : Skipping unsupported -- 57. PostOrderFunctionAttrsPass : Skipping unsupported -- 58. PostOrderFunctionAttrsPass : Skipping unsupported -- 59. ArgumentPromotionPass : Skipping unsupported -- 60. ArgumentPromotionPass : Skipping unsupported -- 61. OpenMPOptCGSCCPass : Skipping unsupported -- 62. OpenMPOptCGSCCPass : Skipping unsupported -- 63. CGSCCToFunctionPassAdaptor ---------------------------------------- define void @bar() nofree willreturn memory(none) { %entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @bar2() { %entry: ret void } Transformation seems to be correct! (syntactically equal) -- 157. PassManager<Function> : Skipping NOP -- 158. SROAPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 159. SROAPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 160. EarlyCSEPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 161. EarlyCSEPass ---------------------------------------- @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %2 = load i32, ptr @v, align 4 %inc1 = add nsw i32 %2, 1 store i32 %inc1, ptr @v, align 4 ret void } => @v = global 4 bytes, align 4 @p = global 8 bytes, align 8 define void @f(i32 %n) { %entry: %0 = load i32, ptr @v, align 4 %inc = add nsw i32 %0, 1 store i32 %inc, ptr @v, align 4 %1 = load ptr, ptr @p, align 8 store i32 %n, ptr %1, align 4 %inc1 = add nsw i32 %inc, 1 store i32 %inc1, ptr @v, align 4 ret void } Transformation doesn't verify! (unsound) ERROR: Mismatch in memory Example: i32 %n = #x57dec061 (1474216033) Source: i32 %0 = poison i32 %inc = poison ptr %1 = pointer(non-local, block_id=1, offset=0) i32 %2 = #x57dec061 (1474216033) i32 %inc1 = #x57dec062 (1474216034) SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 4 alloc type: 0 address: 0 Block 1 > size: 4 align: 4 alloc type: 0 address: 176 Block 2 > size: 8 align: 8 alloc type: 0 address: 208 Block 3 > size: 137 align: 2 alloc type: 0 address: 16 Target: i32 %0 = poison i32 %inc = poison ptr %1 = pointer(non-local, block_id=1, offset=0) i32 %inc1 = poison Mismatch in pointer(non-local, block_id=1, offset=0) Source value: #x57dec062 Target value: poison Pass: EarlyCSEPass Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-passes=default<O3>' '-S' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_goSj9fC7_hGSr.bc" ------------------- SMT STATS ------------------- Num queries: 4 Num invalid: 0 Num skips: 0 Num trivial: 10 (71.4%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 4 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 1' + /home/nlopes/alive2/build/opt-alive.sh '-passes=default<O3>' -S + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/globalaa-retained.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/globalaa-retained.ll