Test source: git
Source: <stdin> -- 1. CrossDSOCFIPass -- 2. CrossDSOCFIPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 _ZN1B3fooEv = constant ? bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1B3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1B3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 _ZN1C3fooEv = constant ? bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1C3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1C3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 3. OpenMPOptPass : Skipping unsupported -- 4. OpenMPOptPass : Skipping unsupported -- 5. GlobalDCEPass : Skipping unsupported -- 6. GlobalDCEPass : Skipping unsupported -- 7. InferFunctionAttrsPass : Skipping unsupported -- 8. InferFunctionAttrsPass : Skipping unsupported -- 9. ModuleToFunctionPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 1. CallSiteSplittingPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 2. CallSiteSplittingPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 3. CallSiteSplittingPass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 4. CallSiteSplittingPass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 5. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 6. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 7. CallSiteSplittingPass ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 8. CallSiteSplittingPass ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 9. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 10. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 11. CallSiteSplittingPass ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 12. CallSiteSplittingPass ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 13. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 14. CallSiteSplittingPass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 10. ModuleToFunctionPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 11. PGOIndirectCallPromotion ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 12. PGOIndirectCallPromotion ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 13. IPSCCPPass : Skipping unsupported -- 14. IPSCCPPass : Skipping unsupported -- 15. CalledValuePropagationPass : Skipping unsupported -- 16. CalledValuePropagationPass : Skipping unsupported -- 17. ModuleToPostOrderCGSCCPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr %this) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture %this) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(ptr) define ptr @_Z6make_Av() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(ptr) define ptr @_Z6make_Bv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr %this) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(ptr) define ptr @_Z6make_Cv() { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(ptr %call) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 18. PostOrderFunctionAttrsPass : Skipping unsupported -- 19. PostOrderFunctionAttrsPass : Skipping unsupported -- 20. PostOrderFunctionAttrsPass : Skipping unsupported -- 21. PostOrderFunctionAttrsPass : Skipping unsupported -- 22. PostOrderFunctionAttrsPass : Skipping unsupported -- 23. PostOrderFunctionAttrsPass : Skipping unsupported -- 24. PostOrderFunctionAttrsPass : Skipping unsupported -- 25. PostOrderFunctionAttrsPass : Skipping unsupported -- 26. PostOrderFunctionAttrsPass : Skipping unsupported -- 27. PostOrderFunctionAttrsPass : Skipping unsupported -- 28. PostOrderFunctionAttrsPass : Skipping unsupported -- 29. PostOrderFunctionAttrsPass : Skipping unsupported -- 30. PostOrderFunctionAttrsPass : Skipping unsupported -- 31. PostOrderFunctionAttrsPass : Skipping unsupported -- 32. ModuleToPostOrderCGSCCPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 33. ReversePostOrderFunctionAttrsPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 34. ReversePostOrderFunctionAttrsPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 35. GlobalSplitPass : Skipping unsupported -- 36. GlobalSplitPass : Skipping unsupported -- 37. WholeProgramDevirtPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 38. WholeProgramDevirtPass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 39. GlobalOptPass : Skipping unsupported -- 40. GlobalOptPass : Skipping unsupported -- 41. ModuleToFunctionPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 15. PromotePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 16. PromotePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 17. PromotePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 18. PromotePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 19. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 20. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 21. PromotePass ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 22. PromotePass ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 23. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 24. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 25. PromotePass ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 26. PromotePass ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 27. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 28. PromotePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 42. ModuleToFunctionPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 43. ConstantMergePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 44. ConstantMergePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 45. DeadArgumentEliminationPass : Skipping unsupported -- 46. DeadArgumentEliminationPass : Skipping unsupported -- 47. ModuleToFunctionPassAdaptor ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1B = constant 24 bytes, align 8 define void @_ZN1BC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1B, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1B, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1BC2Ev(nocapture noread ptr) define ptr @_Z6make_Bv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1BC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) ---------------------------------------- @_ZTV1C = constant 24 bytes, align 8 define void @_ZN1CC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: store {[3 x ptr]} { { null, null, null } }, ptr @_ZTV1C, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1C, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1CC2Ev(nocapture noread ptr) define ptr @_Z6make_Cv() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1CC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 29. PassManager<Function> : Skipping NOP -- 30. InstCombinePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 31. InstCombinePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 32. AggressiveInstCombinePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 33. AggressiveInstCombinePass ---------------------------------------- @_ZTV1A = constant 24 bytes, align 8 _ZN1A3fooEv = constant ? bytes, align 8 define void @_ZN1AC2Ev(ptr nocapture noread %this) nofree willreturn memory(argmem: write) { init: %__copy_0 = [3 x ptr] { null, null, _ZN1A3fooEv } %__copy_1 = {[3 x ptr]} { %__copy_0 } store {[3 x ptr]} %__copy_1, ptr @_ZTV1A, align 8 br label %entry entry: %__constexpr_0 = gep inbounds ptr @_ZTV1A, 24 x i64 0, 1 x i64 0, 8 x i64 2 store ptr %__constexpr_0, ptr nocapture noread %this, align 8 ret void } Transformation seems to be correct! (syntactically equal) -- 34. PassManager<Function> : Skipping NOP -- 35. PassManager<Function> : Skipping NOP -- 36. InstCombinePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 37. InstCombinePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 38. AggressiveInstCombinePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 39. AggressiveInstCombinePass ---------------------------------------- define void @_ZN1A3fooEv(ptr nocapture noread nowrite %this) nofree willreturn memory(none) { entry: ret void } Transformation seems to be correct! (syntactically equal) -- 40. PassManager<Function> : Skipping NOP -- 41. PassManager<Function> : Skipping NOP -- 42. InstCombinePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation seems to be correct! (syntactically equal) -- 43. InstCombinePass ---------------------------------------- declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } => declare ptr @_Znwm(i64) declare void @_ZN1AC2Ev(nocapture noread ptr) define ptr @_Z6make_Av() nonnull nofree noalias { entry: %call = call ptr @_Znwm(noundef i64 8) dereferenceable(8) nonnull nofree noundef noalias willreturn dereferenceable_or_null(8) alloc-family(_Znwm) allockind(alloc, uninitialized) allocsize(0) memory(inaccessiblemem: readwrite) call void @_ZN1AC2Ev(nonnull nocapture noread ptr %call) nofree willreturn memory(argmem: write) ret ptr %call } Transformation doesn't verify! (unsound) ERROR: Source is more defined than target Example: Source: ptr %call = null Function @_ZN1AC2Ev returned SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 alive: false address: 0 Block 1 > size: 0 align: 1 alloc type: 0 alive: true address: 0 LOCAL BLOCKS: Block 2 > size: 8 align: 8 alloc type: 2 alive: true Target: ptr %call = null Function @_ZN1AC2Ev triggered UB TARGET MEMORY STATE =================== LOCAL BLOCKS: Block 2 > size: 8 align: 8 alloc type: 2 alive: true address: 256 Pass: InstCombinePass 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=lto<O2>' '-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_qnOkABtu_dNzl.bc" ------------------- SMT STATS ------------------- Num queries: 7 Num invalid: 0 Num skips: 0 Num trivial: 2 (22.2%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 7 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
RUN: at line 1: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll -passes='globaldce<vfe-linkage-unit-visibility>' -S | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll + /home/nlopes/alive2/build/opt-alive.sh '-passes=globaldce<vfe-linkage-unit-visibility>' -S + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll RUN: at line 2: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll -passes='lto<O2>' -S | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll + /home/nlopes/alive2/build/opt-alive.sh '-passes=lto<O2>' -S FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll