From 226b7eab997df888127ffbe6f37a0a91e1b477e4 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Tue, 8 Oct 2024 12:48:09 +0800 Subject: [PATCH 1/2] pre-commit: PR91101 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..f81dd0e1d5c 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/91101 # Please rebase manually # git fetch origin From 1cf6f56e4819408b1c3fb0ddff7407438a2fcee5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 05:53:25 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/abc/optimized/AbcGlucose.cpp.ll | 2 +- bench/arrow/optimized/chunked_array.cc.ll | 80 +++--- bench/arrow/optimized/extension_type.cc.ll | 60 +++-- bench/arrow/optimized/record_batch.cc.ll | 96 ++++---- bench/arrow/optimized/table.cc.ll | 158 ++++++------ bench/assimp/optimized/3DSConverter.cpp.ll | 36 ++- bench/bdwgc/optimized/gc.c.ll | 40 +-- bench/box2d/optimized/b2_distance.cpp.ll | 4 +- bench/chibicc/optimized/main.ll | 6 +- bench/chibicc/optimized/parse.ll | 50 ++-- bench/cjson/optimized/cJSON.c.ll | 24 +- bench/cjson/optimized/cJSON_Utils.c.ll | 12 +- bench/cpython/optimized/exceptions.ll | 200 ++++++++++----- bench/crow/optimized/example.cpp.ll | 14 +- bench/cvc5/optimized/cnf_stream.cpp.ll | 102 ++++---- .../optimized/bignum-dtoa.cc.ll | 10 +- bench/faiss/optimized/NSG.cpp.ll | 64 +++-- bench/flatbuffers/optimized/util.cpp.ll | 34 +-- bench/fmt/optimized/assert-test.cc.ll | 32 +-- bench/fmt/optimized/ranges-odr-test.cc.ll | 18 +- bench/gromacs/optimized/mtop_util.cpp.ll | 123 +++++----- bench/icu/optimized/msgfmt.ll | 130 +++++++--- bench/kcp/optimized/ikcp.ll | 22 +- .../optimized/deflate_decompress.c.ll | 8 +- bench/meshlab/optimized/miniz.c.ll | 108 ++++++-- bench/msgpack/optimized/reuse_zone.cpp.ll | 16 +- .../unit-no-mem-leak-on-adl-serialize.cpp.ll | 46 ++-- bench/oniguruma/optimized/regparse.ll | 82 +++---- bench/opencv/optimized/datastructs.cpp.ll | 30 +-- bench/opencv/optimized/gstreaming.cpp.ll | 129 +++++----- bench/opencv/optimized/seam_finders.cpp.ll | 138 +++++------ bench/opencv/optimized/slice_layer.cpp.ll | 124 +++++----- bench/opencv/optimized/tps_trans.cpp.ll | 114 ++++----- bench/opencv/optimized/wbdetector.cpp.ll | 111 ++++----- bench/openjdk/optimized/java.ll | 190 +++++++------- .../optimized/jfrCompilerQueueUtilization.ll | 180 +++++++------- .../optimized/jfrFinalizerStatisticsEvent.ll | 184 +++++++------- .../optimized/jfrThreadCPULoadEvent.ll | 186 +++++++------- .../optimized/libcrypto-lib-pmeth_lib.ll | 34 ++- .../optimized/cross_module_gil_utils.cpp.ll | 76 +++--- bench/quantlib/optimized/abcdatmvolcurve.ll | 62 ++--- bench/quantlib/optimized/cmsmarket.ll | 68 ++---- bench/quantlib/optimized/hestonslvfdmmodel.ll | 54 ++-- bench/quantlib/optimized/hestonslvmcmodel.ll | 16 +- bench/quantlib/optimized/jointcalendar.ll | 29 +-- .../optimized/multisteppathwisewrapper.ll | 12 +- bench/quantlib/optimized/rangeaccrual.ll | 38 ++- .../optimized/tqreigendecomposition.ll | 14 +- bench/quest/optimized/QuEST_cpu.c.ll | 30 +-- bench/raylib/optimized/raudio.c.ll | 231 ++++++++++++------ bench/ring-rs/optimized/1vabw27ldssjsz66.ll | 26 +- .../rocksdb/optimized/compaction_picker.cc.ll | 56 ++--- bench/sentencepiece/optimized/time.cc.ll | 88 +++---- bench/simdjson/optimized/simdjson.cpp.ll | 64 ++--- .../optimized/Vmycpu_top__Syms.ll | 38 +-- bench/spdlog/optimized/stdout_sinks.cpp.ll | 48 ++-- bench/syn/optimized/4pem7cta6fyqelao.ll | 62 ++--- bench/tls-rs/optimized/1edtspt3qu76t3sp.ll | 28 +-- bench/velox/optimized/LambdaExpr.cpp.ll | 44 ++-- bench/wolfssl/optimized/internal.c.ll | 137 ++++++++--- bench/yaml-cpp/optimized/memory.cpp.ll | 190 +++++++------- 61 files changed, 2291 insertions(+), 2117 deletions(-) diff --git a/bench/abc/optimized/AbcGlucose.cpp.ll b/bench/abc/optimized/AbcGlucose.cpp.ll index 03f6fdb7e49..8e884bec6ef 100644 --- a/bench/abc/optimized/AbcGlucose.cpp.ll +++ b/bench/abc/optimized/AbcGlucose.cpp.ll @@ -1310,7 +1310,7 @@ _ZN5Gluco10SimpSolver9addClauseERKNS_3vecINS_3LitEEE.exit: ; preds = %.lr.ph.i.i 46: ; preds = %.loopexit %47 = add nsw i32 %23, -1 - %48 = tail call noundef range(i32 0, -1) i32 @llvm.smax.i32(i32 %.0, i32 %47) + %48 = tail call noundef range(i32 0, -1) i32 @llvm.smax.i32(i32 range(i32 0, -1) %.0, i32 range(i32 0, -1) %47) %49 = shl nsw i32 %47, 1 %50 = or disjoint i32 %49, %.039 %51 = load i32, ptr %7, align 8 diff --git a/bench/arrow/optimized/chunked_array.cc.ll b/bench/arrow/optimized/chunked_array.cc.ll index c16e37f6adb..f5aebf12d2b 100644 --- a/bench/arrow/optimized/chunked_array.cc.ll +++ b/bench/arrow/optimized/chunked_array.cc.ll @@ -1095,7 +1095,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -1105,7 +1105,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #15 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -2939,7 +2939,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -2949,7 +2949,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #15 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -3725,11 +3725,7 @@ if.then.i.i: ; preds = %if.end _ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i: ; preds = %if.end store i64 0, ptr %flattened_chunks, align 8 %cmp.not.i.i.i.i25 = icmp ult i64 %sext, 4294967296 - br i1 %cmp.not.i.i.i.i25, label %_ZNSt12_Vector_baseISt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS4_EESaIS6_EEC2EmRKS7_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS4_EESaIS6_EEC2EmRKS7_.exit.thread.i: ; preds = %_ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i - store i64 0, ptr %flattened_chunks, align 8 - br label %invoke.cont25 + br i1 %cmp.not.i.i.i.i25, label %invoke.cont25, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i %mul.i.i.i.i.i.i = mul nuw nsw i64 %conv, 24 @@ -3740,9 +3736,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIS_ISt1 %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i27, i64 %mul.i.i.i.i.i.i br label %invoke.cont25 -invoke.cont25: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS4_EESaIS6_EEC2EmRKS7_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS4_EESaIS6_EEC2EmRKS7_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS4_EESaIS6_EEC2EmRKS7_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont25: ; preds = %_ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIS_ISt10shared_ptrIN5arrow5ArrayEESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %flattened_chunks, i64 8 %20 = getelementptr inbounds i8, ptr %flattened_chunks, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %20, align 8 @@ -4456,7 +4452,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -4466,7 +4462,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #15 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -4876,11 +4872,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %entry store i64 0, ptr %out_chunks, align 8 %cmp.not.i.i.i.i = icmp ult i64 %sext, 4294967296 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %out_chunks, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv, 4 @@ -4891,9 +4883,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i9, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %out_chunks, i64 8 %2 = getelementptr inbounds i8, ptr %out_chunks, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %2, align 8 @@ -5184,7 +5176,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -5194,7 +5186,7 @@ call.i.noexc: ; preds = %entry lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #15 br label %ehcleanup7 invoke.cont: ; preds = %.noexc @@ -5252,12 +5244,12 @@ invoke.cont6: ; preds = %invoke.cont4 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i.i) #15 %close.i.i = getelementptr inbounds i8, ptr %ref.tmp, i64 184 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i.i) #15 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %chunked_array_delimiters.i) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %chunked_array_delimiters.i) #15 %element.i1.i = getelementptr inbounds i8, ptr %ref.tmp, i64 120 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i1.i) #15 %close.i2.i = getelementptr inbounds i8, ptr %ref.tmp, i64 88 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i2.i) #15 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %array_delimiters.i) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %array_delimiters.i) #15 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %null_rep7.i) #15 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #15 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #15 @@ -5589,13 +5581,13 @@ entry: tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i) #15 %close.i = getelementptr inbounds i8, ptr %this, i64 184 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i) #15 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %chunked_array_delimiters) #15 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %chunked_array_delimiters) #15 %array_delimiters = getelementptr inbounds i8, ptr %this, i64 56 %element.i1 = getelementptr inbounds i8, ptr %this, i64 120 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i1) #15 %close.i2 = getelementptr inbounds i8, ptr %this, i64 88 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i2) #15 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %array_delimiters) #15 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %array_delimiters) #15 %null_rep = getelementptr inbounds i8, ptr %this, i64 16 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %null_rep) #15 ret void @@ -6753,7 +6745,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -6763,7 +6755,7 @@ call.i.noexc: ; preds = %entry lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #15 br label %lpad.body invoke.cont: ; preds = %.noexc @@ -6774,7 +6766,7 @@ invoke.cont: ; preds = %.noexc to label %call.i.noexc7 unwind label %lpad3 call.i.noexc7: ; preds = %invoke.cont - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %close, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %close, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) to label %.noexc9 unwind label %lpad3 .noexc9: ; preds = %call.i.noexc7 @@ -6784,7 +6776,7 @@ call.i.noexc7: ; preds = %invoke.cont lpad.i6: ; preds = %.noexc9 %1 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %close) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %close) #15 br label %lpad3.body invoke.cont4: ; preds = %.noexc9 @@ -6795,7 +6787,7 @@ invoke.cont4: ; preds = %.noexc9 to label %call.i.noexc15 unwind label %lpad6 call.i.noexc15: ; preds = %invoke.cont4 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %element, ptr noundef %call.i16, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %element, ptr noundef %call.i16, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) to label %.noexc17 unwind label %lpad6 .noexc17: ; preds = %call.i.noexc15 @@ -6805,7 +6797,7 @@ call.i.noexc15: ; preds = %invoke.cont4 lpad.i14: ; preds = %.noexc17 %2 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %element) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %element) #15 br label %lpad6.body invoke.cont7: ; preds = %.noexc17 @@ -6864,7 +6856,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(10) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -6873,7 +6865,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(16) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -6881,7 +6873,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(10) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -6925,7 +6917,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(10) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -6934,7 +6926,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(3) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -7061,7 +7053,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !103 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !103 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(65) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !103 invoke.cont.i: ; preds = %entry @@ -7121,7 +7113,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !106 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !106 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(35) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !106 invoke.cont.i: ; preds = %entry @@ -7839,7 +7831,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !109 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !109 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(14) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !109 invoke.cont.i: ; preds = %entry @@ -7882,7 +7874,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(21) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -7891,7 +7883,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(47) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc diff --git a/bench/arrow/optimized/extension_type.cc.ll b/bench/arrow/optimized/extension_type.cc.ll index 847e939ead1..4de5df0904f 100644 --- a/bench/arrow/optimized/extension_type.cc.ll +++ b/bench/arrow/optimized/extension_type.cc.ll @@ -772,11 +772,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %entry store i64 0, ptr %out_chunks, align 8 %cmp.not.i.i.i.i = icmp ult i64 %sext, 4294967296 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %out_chunks, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv, 4 @@ -787,9 +783,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i9, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %out_chunks, i64 8 %4 = getelementptr inbounds i8, ptr %out_chunks, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %4, align 8 @@ -3532,7 +3528,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i1, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i1, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -3542,7 +3538,7 @@ call.i.noexc: ; preds = %entry lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #18 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #18 br label %lpad.body invoke.cont: ; preds = %.noexc @@ -4783,7 +4779,7 @@ define linkonce_odr void @_ZN5arrow25ExtensionTypeRegistryImpl12RegisterTypeESt1 entry: %type_name = alloca %"class.std::__cxx11::basic_string", align 8 %lock_ = getelementptr inbounds i8, ptr %this, i64 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -4824,7 +4820,7 @@ lpad2: ; preds = %if.end, %if.then, % br label %ehcleanup if.end: ; preds = %invoke.cont3 - %call.i3 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail9_Map_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St10shared_ptrIN5arrow13ExtensionTypeEEESaISD_ENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb1ELb0ELb1EEELb1EEixERS8_(ptr noundef nonnull align 1 dereferenceable(1) %name_to_type_, ptr noundef nonnull align 8 dereferenceable(32) %type_name) + %call.i3 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail9_Map_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St10shared_ptrIN5arrow13ExtensionTypeEEESaISD_ENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb1ELb0ELb1EEELb1EEixERS8_(ptr noundef nonnull align 8 dereferenceable(56) %name_to_type_, ptr noundef nonnull align 8 dereferenceable(32) %type_name) to label %invoke.cont13 unwind label %lpad2 invoke.cont13: ; preds = %if.end @@ -4913,12 +4909,12 @@ _ZNSt10shared_ptrIN5arrow13ExtensionTypeEEaSEOS2_.exit: ; preds = %invoke.cont13 cleanup: ; preds = %if.then, %_ZNSt10shared_ptrIN5arrow13ExtensionTypeEEaSEOS2_.exit call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %type_name) #18 - %call1.i.i.i4 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i4 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 ret void ehcleanup: ; preds = %lpad2, %lpad %.pn = phi { ptr, i32 } [ %3, %lpad2 ], [ %2, %lpad ] - %call1.i.i.i5 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i5 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 resume { ptr, i32 } %.pn } @@ -4926,7 +4922,7 @@ ehcleanup: ; preds = %lpad2, %lpad define linkonce_odr void @_ZN5arrow25ExtensionTypeRegistryImpl14UnregisterTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias sret(%"class.arrow::Status") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(104) %this, ptr noundef nonnull align 8 dereferenceable(32) %type_name) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %lock_ = getelementptr inbounds i8, ptr %this, i64 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -4950,7 +4946,7 @@ if.then: ; preds = %invoke.cont lpad: ; preds = %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN5arrow13ExtensionTypeEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE5eraseENSE_14_Node_iteratorISC_Lb0ELb1EEE.exit.i, %if.then, %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit %0 = landingpad { ptr, i32 } cleanup - %call1.i.i.i3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 resume { ptr, i32 } %0 if.end: ; preds = %invoke.cont @@ -4979,7 +4975,7 @@ invoke.cont12: ; preds = %_ZNSt10_HashtableIN br label %cleanup cleanup: ; preds = %if.then, %invoke.cont12 - %call1.i.i.i5 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i5 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 ret void } @@ -4987,7 +4983,7 @@ cleanup: ; preds = %if.then, %invoke.co define linkonce_odr void @_ZN5arrow25ExtensionTypeRegistryImpl7GetTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias sret(%"class.std::shared_ptr.44") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(104) %this, ptr noundef nonnull align 8 dereferenceable(32) %type_name) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %lock_ = getelementptr inbounds i8, ptr %this, i64 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -5011,7 +5007,7 @@ if.then: ; preds = %invoke.cont lpad: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit %0 = landingpad { ptr, i32 } cleanup - %call1.i.i.i2 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i2 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 resume { ptr, i32 } %0 if.else: ; preds = %invoke.cont @@ -5042,7 +5038,7 @@ if.else.i.i.i.i.i: ; preds = %if.then.i.i.i br label %cleanup cleanup: ; preds = %if.else.i.i.i.i.i, %if.then.i.i.i.i.i, %if.else, %if.then - %call1.i.i.i3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %lock_) #18 + %call1.i.i.i3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %lock_) #18 ret void } @@ -5135,7 +5131,7 @@ if.end8.sink.split.i.i.i.i.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN5arrow13ExtensionTypeEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i: ; preds = %if.end8.sink.split.i.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i, %while.body.i %add.ptr.i.i = getelementptr inbounds i8, ptr %__n.addr.04.i, i64 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i) #18 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr.i.i) #18 tail call void @_ZdlPv(ptr noundef nonnull %__n.addr.04.i) #21 %tobool.not.i = icmp eq ptr %1, null br i1 %tobool.not.i, label %invoke.cont2, label %while.body.i, !llvm.loop !61 @@ -5174,13 +5170,13 @@ for.body: ; preds = %if.then, %for.inc %retval.sroa.0.010 = phi ptr [ %retval.sroa.0.0, %for.inc ], [ %retval.sroa.0.08, %if.then ] %add.ptr = getelementptr inbounds i8, ptr %retval.sroa.0.010, i64 8 %call.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 - %call1.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #18 + %call1.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) #18 %cmp.i.i.i = icmp eq i64 %call.i.i.i, %call1.i.i.i br i1 %cmp.i.i.i, label %land.rhs.i.i.i, label %for.inc land.rhs.i.i.i: ; preds = %for.body %call2.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 - %call3.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #18 + %call3.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) #18 %call4.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 %cmp.i.i.i.i = icmp eq i64 %call4.i.i.i, 0 br i1 %cmp.i.i.i.i, label %return, label %_ZNKSt8__detail15_Hashtable_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St10shared_ptrIN5arrow13ExtensionTypeEEENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb1EEEE13_M_key_equalsERS8_RKNS_16_Hash_node_valueISD_Lb1EEE.exit @@ -5262,13 +5258,13 @@ for.cond: ; preds = %lor.lhs.false, %if. land.rhs.i: ; preds = %for.cond %call.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 - %call1.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #18 + %call1.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) #18 %cmp.i.i.i.i = icmp eq i64 %call.i.i.i.i, %call1.i.i.i.i br i1 %cmp.i.i.i.i, label %land.rhs.i.i.i.i, label %if.end3 land.rhs.i.i.i.i: ; preds = %land.rhs.i %call2.i.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 - %call3.i.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #18 + %call3.i.i.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) #18 %call4.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %__k) #18 %cmp.i.i.i.i.i = icmp eq i64 %call4.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i, label %return, label %_ZNKSt8__detail15_Hashtable_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St10shared_ptrIN5arrow13ExtensionTypeEEENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb1EEEE9_M_equalsERS8_mRKNS_16_Hash_node_valueISD_Lb1EEE.exit @@ -5305,7 +5301,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !64 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !64 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(28) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !64 call.i.i.noexc.i: ; preds = %entry @@ -5313,7 +5309,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !64 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args3) to label %invoke.cont5.i unwind label %lpad.i, !noalias !64 invoke.cont5.i: ; preds = %call.i.i.i.noexc.i @@ -5390,7 +5386,7 @@ if.end: ; preds = %_ZNKSt8__detail15_H %call5.i.i.i.i = tail call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #19 store ptr null, ptr %call5.i.i.i.i, align 8 %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i, i64 8 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__k) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN5arrow13ExtensionTypeEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJRS7_EESV_IJEEEEEPNSE_16_Hashtable_allocISaINSE_10_Hash_nodeISC_Lb1EEEEEEDpOT_.exit unwind label %invoke.cont14.i.i invoke.cont14.i.i: ; preds = %if.end @@ -5630,7 +5626,7 @@ if.end8.sink.split.i.i.i.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN5arrow13ExtensionTypeEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit: ; preds = %if.then, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i, %if.end8.sink.split.i.i.i.i.i.i.i.i %add.ptr.i = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i) #18 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr.i) #18 tail call void @_ZdlPv(ptr noundef nonnull %0) #21 br label %if.end @@ -5750,7 +5746,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !68 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !68 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(29) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !68 call.i.i.noexc.i: ; preds = %entry @@ -5758,7 +5754,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !68 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(7) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !68 invoke.cont.i: ; preds = %call.i.i.i.noexc.i @@ -5934,7 +5930,7 @@ if.end8.sink.split.i.i.i.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN5arrow13ExtensionTypeEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit: ; preds = %if.end15, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i, %if.end8.sink.split.i.i.i.i.i.i.i.i %add.ptr.i = getelementptr inbounds i8, ptr %__n, i64 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i) #18 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr.i) #18 tail call void @_ZdlPv(ptr noundef nonnull %__n) #21 %_M_element_count = getelementptr inbounds i8, ptr %this, i64 24 %21 = load i64, ptr %_M_element_count, align 8 diff --git a/bench/arrow/optimized/record_batch.cc.ll b/bench/arrow/optimized/record_batch.cc.ll index 36c0a5f2823..e06695a6cd5 100644 --- a/bench/arrow/optimized/record_batch.cc.ll +++ b/bench/arrow/optimized/record_batch.cc.ll @@ -1118,11 +1118,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %entry store i64 0, ptr %empty_batch, align 8 %cmp.not.i.i.i.i = icmp eq i32 %call1, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %empty_batch, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv, 4 @@ -1133,9 +1129,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i8, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5ArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5ArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %empty_batch, i64 8 %1 = getelementptr inbounds i8, ptr %empty_batch, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %1, align 8 @@ -1782,7 +1778,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -1792,7 +1788,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -5120,7 +5116,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -5130,7 +5126,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -9078,7 +9074,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -9088,7 +9084,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -9555,7 +9551,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -9565,7 +9561,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -10140,7 +10136,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -10150,7 +10146,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -11789,7 +11785,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(26) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -11798,7 +11794,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(23) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -11807,7 +11803,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -11856,7 +11852,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(8) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -11865,7 +11861,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(25) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -11873,7 +11869,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -11904,7 +11900,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(11) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -11913,7 +11909,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(3) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -12005,7 +12001,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -12015,7 +12011,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #19 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #19 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -12080,7 +12076,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !171 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !171 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(30) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !171 invoke.cont.i: ; preds = %entry @@ -13312,7 +13308,7 @@ entry: tail call void @llvm.experimental.noalias.scope.decl(metadata !176) tail call void @llvm.experimental.noalias.scope.decl(metadata !179) call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %__lock.i.i), !noalias !176 - call void @_ZNSt10_Sp_lockerC1EPKv(ptr noundef nonnull align 1 dereferenceable(2) %__lock.i.i, ptr noundef %add.ptr.i) #19, !noalias !182 + call void @_ZNSt10_Sp_lockerC1EPKv(ptr noundef nonnull align 1 dereferenceable(2) %__lock.i.i, ptr noundef nonnull %add.ptr.i) #19, !noalias !182 %1 = load ptr, ptr %add.ptr.i, align 8, !noalias !182 store ptr %1, ptr %agg.result, align 8, !alias.scope !182 %_M_refcount.i.i.i.i = getelementptr inbounds i8, ptr %agg.result, i64 8 @@ -13531,7 +13527,7 @@ if.else.i.i.i.i.i18: ; preds = %if.then.i.i.i14 _ZNSt10shared_ptrIN5arrow5ArrayEEC2ERKS2_.exit: ; preds = %_ZNSt10shared_ptrIN5arrow5ArrayEED2Ev.exit, %if.then.i.i.i.i.i16, %if.else.i.i.i.i.i18 call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %__lock.i.i19) - call void @_ZNSt10_Sp_lockerC1EPKv(ptr noundef nonnull align 1 dereferenceable(2) %__lock.i.i19, ptr noundef %add.ptr.i11) #19 + call void @_ZNSt10_Sp_lockerC1EPKv(ptr noundef nonnull align 1 dereferenceable(2) %__lock.i.i19, ptr noundef nonnull %add.ptr.i11) #19 store ptr %33, ptr %add.ptr.i11, align 8 %_M_refcount.i.i1.i = getelementptr inbounds i8, ptr %add.ptr.i11, i64 8 %38 = load ptr, ptr %_M_refcount.i.i1.i, align 8 @@ -16899,7 +16895,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(18) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -16907,7 +16903,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(33) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -16936,7 +16932,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(73) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -16945,7 +16941,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -18040,7 +18036,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !284 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !284 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(39) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !284 invoke.cont.i: ; preds = %entry @@ -18214,7 +18210,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !287 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !287 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(50) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !287 call.i.i.noexc.i: ; preds = %entry @@ -18422,7 +18418,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(26) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -18431,7 +18427,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(36) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -18461,7 +18457,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(32) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -18470,7 +18466,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(10) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -18478,7 +18474,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(40) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -18509,7 +18505,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !290 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !290 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(22) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !290 call.i.i.noexc.i: ; preds = %entry @@ -18518,7 +18514,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !290 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(20) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !290 invoke.cont.i: ; preds = %call.i.i.i.noexc.i @@ -18961,7 +18957,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !304 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !304 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(49) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !304 invoke.cont.i: ; preds = %entry @@ -20172,7 +20168,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !319 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !319 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(25) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !319 invoke.cont.i: ; preds = %entry @@ -20215,7 +20211,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !322 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !322 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(35) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !322 invoke.cont.i: ; preds = %entry @@ -20256,7 +20252,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(29) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -20265,7 +20261,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -20273,7 +20269,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(52) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc diff --git a/bench/arrow/optimized/table.cc.ll b/bench/arrow/optimized/table.cc.ll index 172a00be7af..1f9efd5c877 100644 --- a/bench/arrow/optimized/table.cc.ll +++ b/bench/arrow/optimized/table.cc.ll @@ -1005,11 +1005,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %entry store i64 0, ptr %empty_table, align 8 %cmp.not.i.i.i.i = icmp eq i32 %call1, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %empty_table, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv, 4 @@ -1020,9 +1016,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i10, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %empty_table, i64 8 %1 = getelementptr inbounds i8, ptr %empty_table, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %1, align 8 @@ -1846,7 +1842,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -1856,7 +1852,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #21 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -2648,11 +2644,7 @@ if.then.i.i: ; preds = %for.end _ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %for.end store i64 0, ptr %columns, align 8 %cmp.not.i.i.i.i = icmp eq i32 %call2, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %columns, align 8 - br label %invoke.cont29 + br i1 %cmp.not.i.i.i.i, label %invoke.cont29, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv26, 4 @@ -2663,10 +2655,10 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i30, i64 %mul.i.i.i.i.i.i br label %invoke.cont29 -invoke.cont29: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %30 = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %call5.i.i.i.i2.i.i30, %for.body.preheader.i.i.i.i.i ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont29: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %30 = phi ptr [ %call5.i.i.i.i2.i.i30, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %columns, i64 8 %31 = getelementptr inbounds i8, ptr %columns, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %31, align 8 @@ -5422,11 +5414,7 @@ if.then.i.i: ; preds = %if.end _ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %if.end store i64 0, ptr %columns, align 8 %cmp.not.i.i.i.i = icmp eq i32 %call2.i22, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %columns, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv8, 4 @@ -5437,9 +5425,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt10sh %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i23, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow12ChunkedArrayEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %columns, i64 8 %19 = getelementptr inbounds i8, ptr %columns, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %19, align 8 @@ -7244,7 +7232,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -7254,7 +7242,7 @@ call.i.noexc: ; preds = %entry lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #21 br label %ehcleanup7 invoke.cont: ; preds = %.noexc @@ -7312,12 +7300,12 @@ invoke.cont6: ; preds = %invoke.cont4 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i.i) #21 %close.i.i = getelementptr inbounds i8, ptr %ref.tmp, i64 184 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i.i) #21 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %chunked_array_delimiters.i) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %chunked_array_delimiters.i) #21 %element.i1.i = getelementptr inbounds i8, ptr %ref.tmp, i64 120 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i1.i) #21 %close.i2.i = getelementptr inbounds i8, ptr %ref.tmp, i64 88 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i2.i) #21 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %array_delimiters.i) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %array_delimiters.i) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %null_rep7.i) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #21 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #21 @@ -7659,7 +7647,7 @@ invoke.cont: ; preds = %if.then lpad: ; preds = %if.end, %if.then %0 = landingpad { ptr, i32 } cleanup - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #21 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #21 resume { ptr, i32 } %0 if.end: ; preds = %entry @@ -7680,13 +7668,13 @@ entry: tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i) #21 %close.i = getelementptr inbounds i8, ptr %this, i64 184 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i) #21 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %chunked_array_delimiters) #21 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %chunked_array_delimiters) #21 %array_delimiters = getelementptr inbounds i8, ptr %this, i64 56 %element.i1 = getelementptr inbounds i8, ptr %this, i64 120 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %element.i1) #21 %close.i2 = getelementptr inbounds i8, ptr %this, i64 88 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %close.i2) #21 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %array_delimiters) #21 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(96) %array_delimiters) #21 %null_rep = getelementptr inbounds i8, ptr %this, i64 16 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %null_rep) #21 ret void @@ -11520,7 +11508,7 @@ if.end8.sink.split.i.i.i.i393: ; preds = %_ZN9__gnu_cxx27__ex _ZNSt10shared_ptrIN5arrow8DataTypeEED2Ev.exit: ; preds = %_ZN5arrow10TypeHolderD2Ev.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i380, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i390, %if.end8.sink.split.i.i.i.i393 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i.i.i.i.i.i) - invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(17) %ref.tmp181) + invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp181) to label %_ZN5arrow5DatumD2Ev.exit unwind label %terminate.lpad.i.i.i.i.i.i.i.i terminate.lpad.i.i.i.i.i.i.i.i: ; preds = %_ZNSt10shared_ptrIN5arrow8DataTypeEED2Ev.exit @@ -11707,7 +11695,7 @@ if.else.i: ; preds = %invoke.cont218 invoke.cont220: ; preds = %_ZNSt16allocator_traitsISaISt10shared_ptrIN5arrow12ChunkedArrayEEEE9constructIS3_JRKS3_EEEvRS4_PT_DpOT0_.exit.i, %if.else.i call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i.i.i.i.i.i451) - invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i451, ptr noundef nonnull align 8 dereferenceable(17) %casted) + invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i451, ptr noundef nonnull align 8 dereferenceable(24) %casted) to label %_ZN5arrow5DatumD2Ev.exit454 unwind label %terminate.lpad.i.i.i.i.i.i.i.i452 terminate.lpad.i.i.i.i.i.i.i.i452: ; preds = %invoke.cont220 @@ -11776,7 +11764,7 @@ if.then.i.i.i458: ; preds = %ehcleanup227 for.end: ; preds = %for.inc, %invoke.cont27 store i8 0, ptr %ref.tmp233, align 1 - %call.i.i463 = invoke { ptr, i32 } @_ZSt9__find_ifISt13_Bit_iteratorN9__gnu_cxx5__ops16_Iter_equals_valIKbEEET_S6_S6_T0_St26random_access_iterator_tag(ptr %fields_seen.sroa.0.0, i32 0, ptr %fields_seen.sroa.16.0, i32 %fields_seen.sroa.23.0, ptr nonnull %ref.tmp233) + %call.i.i463 = invoke { ptr, i32 } @_ZSt9__find_ifISt13_Bit_iteratorN9__gnu_cxx5__ops16_Iter_equals_valIKbEEET_S6_S6_T0_St26random_access_iterator_tag(ptr %fields_seen.sroa.0.0, i32 0, ptr %fields_seen.sroa.16.0, i32 %fields_seen.sroa.23.0, ptr nonnull align 1 dereferenceable(1) %ref.tmp233) to label %invoke.cont238 unwind label %lpad18.loopexit.split-lp invoke.cont238: ; preds = %for.end @@ -12706,7 +12694,7 @@ entry: if.then.i: ; preds = %entry %storage_.i = getelementptr inbounds i8, ptr %this, i64 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i.i.i.i.i.i.i.i) - invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(17) %storage_.i) + invoke void @_ZSt10__do_visitIvZNSt8__detail9__variant16_Variant_storageILb0EJN5arrow5Datum5EmptyESt10shared_ptrINS3_6ScalarEES6_INS3_9ArrayDataEES6_INS3_12ChunkedArrayEES6_INS3_11RecordBatchEES6_INS3_5TableEEEE8_M_resetEvEUlOT_E_JRSt7variantIJS5_S8_SA_SC_SE_SG_EEEEDcOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i.i.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %storage_.i) to label %_ZN5arrow6ResultINS_5DatumEE7DestroyEv.exit unwind label %terminate.lpad.i.i.i.i.i.i.i.i.i.i terminate.lpad.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i @@ -15514,7 +15502,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -15524,7 +15512,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #21 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -18328,7 +18316,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -18338,7 +18326,7 @@ call.i.noexc: ; preds = %entry lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #21 br label %lpad.body invoke.cont: ; preds = %.noexc @@ -18349,7 +18337,7 @@ invoke.cont: ; preds = %.noexc to label %call.i.noexc7 unwind label %lpad3 call.i.noexc7: ; preds = %invoke.cont - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %close, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %close, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) to label %.noexc9 unwind label %lpad3 .noexc9: ; preds = %call.i.noexc7 @@ -18359,7 +18347,7 @@ call.i.noexc7: ; preds = %invoke.cont lpad.i6: ; preds = %.noexc9 %1 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %close) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %close) #21 br label %lpad3.body invoke.cont4: ; preds = %.noexc9 @@ -18370,7 +18358,7 @@ invoke.cont4: ; preds = %.noexc9 to label %call.i.noexc15 unwind label %lpad6 call.i.noexc15: ; preds = %invoke.cont4 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %element, ptr noundef %call.i16, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %element, ptr noundef %call.i16, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) to label %.noexc17 unwind label %lpad6 .noexc17: ; preds = %call.i.noexc15 @@ -18380,7 +18368,7 @@ call.i.noexc15: ; preds = %invoke.cont4 lpad.i14: ; preds = %.noexc17 %2 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %element) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %element) #21 br label %lpad6.body invoke.cont7: ; preds = %.noexc17 @@ -18876,7 +18864,7 @@ declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr #12 ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZNSt18bad_variant_accessD0Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 { entry: - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #21 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) #21 tail call void @_ZdlPv(ptr noundef nonnull %this) #22 ret void } @@ -18962,7 +18950,7 @@ if.then: ; preds = %invoke.cont to label %call.i.noexc5 unwind label %terminate.lpad call.i.noexc5: ; preds = %if.then - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef %call.i6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp4) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc5 @@ -18972,7 +18960,7 @@ call.i.noexc5: ; preds = %if.then lpad.i: ; preds = %.noexc %9 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #21 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3) #21 br label %terminate.lpad.body invoke.cont5: ; preds = %.noexc @@ -19037,7 +19025,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !251 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !251 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(30) %args) to label %invoke.cont1.i unwind label %lpad.i, !noalias !251 invoke.cont1.i: ; preds = %entry @@ -24022,7 +24010,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(66) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -24031,7 +24019,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -24065,7 +24053,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !376 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !376 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(35) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !376 invoke.cont.i: ; preds = %entry @@ -25396,7 +25384,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !405 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !405 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(39) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !405 invoke.cont.i: ; preds = %entry @@ -25439,7 +25427,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !408 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !408 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(8) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !408 call.i.i.noexc.i: ; preds = %entry @@ -25448,7 +25436,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !408 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(10) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !408 invoke.cont.i: ; preds = %call.i.i.i.noexc.i @@ -25489,7 +25477,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(23) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -25498,7 +25486,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(12) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -25506,7 +25494,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(30) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -25535,7 +25523,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(8) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -25544,7 +25532,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(8) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -25552,7 +25540,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(18) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -25561,7 +25549,7 @@ call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noex to label %call.i.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.i.noexc - %call.i.i.i.i.i.i.i.i7 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args11) + %call.i.i.i.i.i.i.i.i7 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args11) to label %call.i.i.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.i.i.noexc @@ -27015,7 +27003,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -27024,7 +27012,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(18) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -27032,7 +27020,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -27356,7 +27344,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !424 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !424 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(58) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !424 invoke.cont.i: ; preds = %entry @@ -27399,7 +27387,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !427 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !427 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(38) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !427 call.i.i.noexc.i: ; preds = %entry @@ -27679,7 +27667,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(28) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -27688,7 +27676,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(19) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -27697,7 +27685,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i2.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i2.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(21) %args7) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %call.i.i.i.i.i.noexc @@ -27726,7 +27714,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !430 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !430 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(22) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !430 call.i.i.noexc.i: ; preds = %entry @@ -27735,7 +27723,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !430 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(20) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !430 invoke.cont.i: ; preds = %call.i.i.i.noexc.i @@ -27778,7 +27766,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !433 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !433 - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(29) %args) to label %invoke.cont.i unwind label %lpad.i, !noalias !433 invoke.cont.i: ; preds = %entry @@ -28046,7 +28034,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(17) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -28055,7 +28043,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(18) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -28063,7 +28051,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -28336,7 +28324,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !467 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !467 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(67) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !467 call.i.i.noexc.i: ; preds = %entry @@ -28383,7 +28371,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !470 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !470 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(25) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !470 call.i.i.noexc.i: ; preds = %entry @@ -28391,7 +28379,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !470 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(49) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !470 invoke.cont.i: ; preds = %call.i.i.i.noexc.i @@ -28432,7 +28420,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss) %ostream_.i = getelementptr inbounds i8, ptr %ss, i64 8 %0 = load ptr, ptr %ostream_.i, align 8 - %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(25) %args) to label %call.i.i.noexc unwind label %lpad call.i.i.noexc: ; preds = %entry @@ -28440,7 +28428,7 @@ call.i.i.noexc: ; preds = %entry to label %call.i.i.i.noexc unwind label %lpad call.i.i.i.noexc: ; preds = %call.i.i.noexc - %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i.i.i.i3 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(23) %args3) to label %call.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc @@ -28448,7 +28436,7 @@ call.i.i.i.i.noexc: ; preds = %call.i.i.i.noexc to label %call.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.noexc - %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args7) + %call.i.i.i.i.i.i5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(5) %args7) to label %call.i.i.i.i.i.i.noexc unwind label %lpad call.i.i.i.i.i.i.noexc: ; preds = %call.i.i.i.i.i.noexc @@ -28656,7 +28644,7 @@ entry: call void @_ZN5arrow4util6detail19StringStreamWrapperC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ss.i), !noalias !474 %ostream_.i.i = getelementptr inbounds i8, ptr %ss.i, i64 8 %0 = load ptr, ptr %ostream_.i.i, align 8, !noalias !474 - %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args) + %call.i.i1.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(29) %args) to label %call.i.i.noexc.i unwind label %lpad.i, !noalias !474 call.i.i.noexc.i: ; preds = %entry @@ -28664,7 +28652,7 @@ call.i.i.noexc.i: ; preds = %entry to label %call.i.i.i.noexc.i unwind label %lpad.i, !noalias !474 call.i.i.i.noexc.i: ; preds = %call.i.i.noexc.i - %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %args3) + %call.i2.i.i3.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(34) %args3) to label %invoke.cont.i unwind label %lpad.i, !noalias !474 invoke.cont.i: ; preds = %call.i.i.i.noexc.i diff --git a/bench/assimp/optimized/3DSConverter.cpp.ll b/bench/assimp/optimized/3DSConverter.cpp.ll index d517259c45d..b6d1412d7f8 100644 --- a/bench/assimp/optimized/3DSConverter.cpp.ll +++ b/bench/assimp/optimized/3DSConverter.cpp.ll @@ -336,7 +336,7 @@ if.then105: ; preds = %land.lhs.true to label %call.i.noexc unwind label %lpad108 call.i.noexc: ; preds = %if.then105 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp106, ptr noundef %call.i45, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp107) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp106, ptr noundef %call.i45, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp107) to label %.noexc unwind label %lpad108 .noexc: ; preds = %call.i.noexc @@ -346,7 +346,7 @@ call.i.noexc: ; preds = %if.then105 lpad.i: ; preds = %.noexc %32 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp106) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp106) #23 br label %ehcleanup invoke.cont109: ; preds = %.noexc @@ -835,11 +835,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i: ; preds = %entry store i64 0, ptr %vNew, align 8 %cmp.not.i.i.i.i = icmp eq ptr %0, %1 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i - store i64 0, ptr %vNew, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i %mul.i.i.i.i.i.i = mul i64 %sub.ptr.div.i, 36 @@ -850,10 +846,10 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorI10aiVe %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i22, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i - %2 = phi ptr [ null, %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %call5.i.i.i.i2.i.i22, %for.body.preheader.i.i.i.i.i ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i, %for.body.preheader.i.i.i.i.i + %2 = phi ptr [ %call5.i.i.i.i2.i.i22, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %vNew, i64 8 %3 = getelementptr inbounds i8, ptr %vNew, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %3, align 8 @@ -2295,19 +2291,19 @@ entry: %message.addr = alloca ptr, align 8 %agg.tmp = alloca %"class.Assimp::Formatter::basic_formatter", align 8 store ptr %message, ptr %message.addr, align 8 - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) invoke void @_ZN15DeadlyErrorBaseC2IJEPKcEEN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEEOT0_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %agg.tmp, ptr noundef nonnull align 8 dereferenceable(8) %message.addr) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) #23 + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) #23 store ptr getelementptr inbounds (i8, ptr @_ZTV17DeadlyImportError, i64 16), ptr %this, align 8 ret void lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) #23 + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) #23 resume { ptr, i32 } %0 } @@ -4742,14 +4738,14 @@ entry: %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %agg.tmp = alloca %"class.Assimp::Formatter::basic_formatter", align 8 %0 = load ptr, ptr %u, align 8 - %call.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %f, ptr noundef %0) + %call.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(376) %f, ptr noundef %0) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) - invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(112) %f) + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) + invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(376) %f) to label %invoke.cont.i unwind label %lpad.i invoke.cont.i: ; preds = %entry - %call.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) + %call.i1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %_ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2EOS5_.exit unwind label %lpad3.i lpad.i: ; preds = %entry @@ -4765,7 +4761,7 @@ lpad3.i: ; preds = %invoke.cont.i common.resume: ; preds = %lpad.i, %lpad3.i, %lpad %common.resume.op = phi { ptr, i32 } [ %3, %lpad ], [ %2, %lpad3.i ], [ %1, %lpad.i ] - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) #23 + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) #23 resume { ptr, i32 } %common.resume.op _ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2EOS5_.exit: ; preds = %invoke.cont.i @@ -4775,7 +4771,7 @@ _ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2EOS5_.exit: ; p to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %_ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2EOS5_.exit - call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %agg.tmp) #23 + call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(376) %agg.tmp) #23 ret void lpad: ; preds = %_ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2EOS5_.exit diff --git a/bench/bdwgc/optimized/gc.c.ll b/bench/bdwgc/optimized/gc.c.ll index fe1823fe5b8..ec504bf4cd5 100644 --- a/bench/bdwgc/optimized/gc.c.ll +++ b/bench/bdwgc/optimized/gc.c.ll @@ -2562,7 +2562,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %.0.i = select i1 %or.cond.i, i64 %0, i64 %52 %53 = tail call i64 @llvm.uadd.sat.i64(i64 %.0.i, i64 15) %54 = and i64 %53, -16 - %55 = tail call fastcc ptr @GC_alloc_large(i64 noundef %54, i32 noundef %42, i32 noundef %2, i64 noundef 0) + %55 = tail call fastcc ptr @GC_alloc_large(i64 noundef range(i64 0, -15) %54, i32 noundef %42, i32 noundef range(i32 0, 2) %2, i64 noundef 0) %.not.i.i = icmp eq ptr %55, null br i1 %.not.i.i, label %GC_generic_malloc_inner.exit, label %56 @@ -2724,7 +2724,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %32 = tail call i64 @llvm.uadd.sat.i64(i64 %23, i64 %27) %33 = tail call i64 @llvm.uadd.sat.i64(i64 %32, i64 15) %34 = and i64 %33, -16 - %35 = tail call fastcc ptr @GC_alloc_large(i64 noundef %34, i32 noundef %28, i32 noundef 0, i64 noundef 0) + %35 = tail call fastcc ptr @GC_alloc_large(i64 noundef range(i64 0, -15) %34, i32 noundef %28, i32 noundef range(i32 0, 2) 0, i64 noundef 0) %.not.i.i = icmp eq ptr %35, null br i1 %.not.i.i, label %GC_generic_malloc_inner.exit.thread27, label %36 @@ -8527,7 +8527,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti br i1 %75, label %76, label %77 76: ; preds = %74 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_normal_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_normal_finalize_mark_proc) br label %81 77: ; preds = %74 @@ -8539,7 +8539,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti store ptr %1, ptr %78, align 8 %80 = getelementptr inbounds i8, ptr %78, i64 8 store ptr %2, ptr %80, align 8 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_normal_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_normal_finalize_mark_proc) br label %81 81: ; preds = %79, %76 @@ -8749,7 +8749,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti br i1 %75, label %76, label %77 76: ; preds = %74 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_null_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_null_finalize_mark_proc) br label %81 77: ; preds = %74 @@ -8761,7 +8761,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti store ptr %1, ptr %78, align 8 %80 = getelementptr inbounds i8, ptr %78, i64 8 store ptr %2, ptr %80, align 8 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_null_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_null_finalize_mark_proc) br label %81 81: ; preds = %79, %76 @@ -8961,7 +8961,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti br i1 %75, label %76, label %77 76: ; preds = %74 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_unreachable_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_unreachable_finalize_mark_proc) br label %81 77: ; preds = %74 @@ -8973,7 +8973,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti store ptr %1, ptr %78, align 8 %80 = getelementptr inbounds i8, ptr %78, i64 8 store ptr %2, ptr %80, align 8 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_unreachable_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_unreachable_finalize_mark_proc) br label %81 81: ; preds = %79, %76 @@ -9173,7 +9173,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti br i1 %75, label %76, label %77 76: ; preds = %74 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_ignore_self_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef null, ptr noundef null, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_ignore_self_finalize_mark_proc) br label %81 77: ; preds = %74 @@ -9185,7 +9185,7 @@ GC_base.exit.thread: ; preds = %52, %GC_find_starti store ptr %1, ptr %78, align 8 %80 = getelementptr inbounds i8, ptr %78, i64 8 store ptr %2, ptr %80, align 8 - call fastcc void @GC_register_finalizer_inner(ptr noundef %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_ignore_self_finalize_mark_proc) + call fastcc void @GC_register_finalizer_inner(ptr noundef nonnull %61, ptr noundef nonnull @GC_debug_invoke_finalizer, ptr noundef nonnull %78, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull @GC_ignore_self_finalize_mark_proc) br label %81 81: ; preds = %79, %76 @@ -9468,7 +9468,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %.0.i.i = select i1 %44, i64 %37, i64 %45 %46 = tail call i64 @llvm.uadd.sat.i64(i64 %.0.i.i, i64 15) %47 = and i64 %46, -16 - %48 = tail call fastcc ptr @GC_alloc_large(i64 noundef %47, i32 noundef 1, i32 noundef 1, i64 noundef 0) + %48 = tail call fastcc ptr @GC_alloc_large(i64 noundef range(i64 0, -15) %47, i32 noundef 1, i32 noundef range(i32 0, 2) 1, i64 noundef 0) %.not.i.i.i = icmp eq ptr %48, null br i1 %.not.i.i.i, label %ensure_toggleref_capacity.exit.thread, label %49 @@ -10252,7 +10252,7 @@ GC_base.exit.thread: ; preds = %46, %GC_find_starti unreachable GC_general_register_disappearing_link.exit: ; preds = %62 - %66 = tail call fastcc range(i32 0, 4) i32 @GC_register_disappearing_link_inner(ptr noundef nonnull getelementptr inbounds (i8, ptr @GC_arrays, i64 336), ptr noundef %0, ptr noundef %55, ptr noundef nonnull @.str.41) + %66 = tail call fastcc range(i32 0, 4) i32 @GC_register_disappearing_link_inner(ptr noundef nonnull getelementptr inbounds (i8, ptr @GC_arrays, i64 336), ptr noundef nonnull %0, ptr noundef nonnull %55, ptr noundef nonnull @.str.41) ret i32 %66 } @@ -16029,7 +16029,7 @@ GC_build_fl4.exit.i163: ; preds = %433 %455 = tail call i64 @llvm.uadd.sat.i64(i64 %450, i64 %451) %456 = tail call i64 @llvm.uadd.sat.i64(i64 %455, i64 15) %457 = and i64 %456, -16 - %458 = tail call fastcc ptr @GC_alloc_large(i64 noundef %457, i32 noundef %1, i32 noundef 0, i64 noundef 0) + %458 = tail call fastcc ptr @GC_alloc_large(i64 noundef range(i64 0, -15) %457, i32 noundef %1, i32 noundef range(i32 0, 2) 0, i64 noundef 0) %.not.i.i = icmp eq ptr %458, null br i1 %.not.i.i, label %GC_build_fl.exit185, label %459 @@ -20769,7 +20769,7 @@ GC_lock.exit41: ; preds = %.preheader.i.i39, % unreachable GC_general_register_disappearing_link.exit: ; preds = %168 - %176 = tail call fastcc range(i32 0, 4) i32 @GC_register_disappearing_link_inner(ptr noundef nonnull getelementptr inbounds (i8, ptr @GC_arrays, i64 336), ptr noundef %171, ptr noundef %66, ptr noundef nonnull @.str.41) + %176 = tail call fastcc range(i32 0, 4) i32 @GC_register_disappearing_link_inner(ptr noundef nonnull getelementptr inbounds (i8, ptr @GC_arrays, i64 336), ptr noundef nonnull %171, ptr noundef nonnull %66, ptr noundef nonnull @.str.41) %177 = icmp eq i32 %176, 2 br i1 %177, label %178, label %GC_malloc_explicitly_typed.exit @@ -21480,7 +21480,7 @@ define hidden ptr @GC_get_main_stack_base() local_unnamed_addr #1 { %.01316.i.i = phi i64 [ %36, %35 ], [ 0, %22 ] %29 = getelementptr inbounds i8, ptr %1, i64 %.01316.i.i %30 = sub nuw nsw i64 4096, %.01316.i.i - %31 = call i64 @read(i32 noundef %23, ptr noundef nonnull %29, i64 noundef %30) #41 + %31 = call i64 @read(i32 noundef range(i32 0, -1) %23, ptr noundef nonnull %29, i64 noundef %30) #41 %32 = icmp slt i64 %31, 0 br i1 %32, label %GC_repeat_read.exit.i, label %33 @@ -26121,7 +26121,7 @@ define hidden void @GC_print_address_map() local_unnamed_addr #1 { 7: ; preds = %11, %6 %.07.i.i.i = phi i64 [ 0, %6 ], [ %12, %11 ] - %8 = call i64 @read(i32 noundef %4, ptr noundef nonnull %3, i64 noundef 500) #41 + %8 = call i64 @read(i32 noundef range(i32 0, -2147483648) %4, ptr noundef nonnull %3, i64 noundef 500) #41 %9 = icmp eq i64 %8, -1 br i1 %9, label %GC_get_maps_len.exit.thread54.i, label %11 @@ -26500,7 +26500,7 @@ GC_scratch_alloc.exit.i: ; preds = %40 183: ; preds = %187, %182 %.07.i.i30.i = phi i64 [ 0, %182 ], [ %188, %187 ] - %184 = call i64 @read(i32 noundef %180, ptr noundef nonnull %2, i64 noundef 500) #41 + %184 = call i64 @read(i32 noundef range(i32 0, -2147483648) %180, ptr noundef nonnull %2, i64 noundef 500) #41 %185 = icmp eq i64 %184, -1 br i1 %185, label %GC_get_maps_len.exit34.thread66.i, label %187 @@ -26560,7 +26560,7 @@ GC_get_maps_len.exit34.thread.i: ; preds = %GC_get_maps_len.exi %.01316.i.i = phi i64 [ %210, %209 ], [ 0, %.preheader72.i ] %203 = getelementptr inbounds i8, ptr %201, i64 %.01316.i.i %204 = sub nuw i64 %202, %.01316.i.i - %205 = tail call i64 @read(i32 noundef %194, ptr noundef %203, i64 noundef %204) #41 + %205 = tail call i64 @read(i32 noundef range(i32 0, -1) %194, ptr noundef %203, i64 noundef %204) #41 %206 = icmp slt i64 %205, 0 br i1 %206, label %GC_repeat_read.exit.thread.i, label %207 @@ -33708,7 +33708,7 @@ GC_is_marked.exit.i: ; preds = %202 %219 = inttoptr i64 %198 to ptr %220 = getelementptr inbounds i8, ptr %.0167.i, i64 40 %221 = load ptr, ptr %220, align 8 - call void %221(ptr noundef %219) #41 + call void %221(ptr noundef nonnull %219) #41 %222 = load volatile ptr, ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 168), align 8 %223 = load ptr, ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 152), align 8 %.not2.i.i = icmp ult ptr %222, %223 @@ -40717,7 +40717,7 @@ define internal fastcc void @GC_grow_table(ptr nocapture noundef %0, ptr nocaptu %.0.i = select i1 %31, i64 %24, i64 %32 %33 = call i64 @llvm.uadd.sat.i64(i64 %.0.i, i64 15) %34 = and i64 %33, -16 - %35 = call fastcc ptr @GC_alloc_large(i64 noundef %34, i32 noundef 1, i32 noundef 1, i64 noundef 0) + %35 = call fastcc ptr @GC_alloc_large(i64 noundef range(i64 0, -15) %34, i32 noundef 1, i32 noundef range(i32 0, 2) 1, i64 noundef 0) %.not.i.i = icmp eq ptr %35, null br i1 %.not.i.i, label %GC_generic_malloc_inner.exit.thread, label %36 diff --git a/bench/box2d/optimized/b2_distance.cpp.ll b/bench/box2d/optimized/b2_distance.cpp.ll index 1e2ccf080cb..d3dc3781603 100644 --- a/bench/box2d/optimized/b2_distance.cpp.ll +++ b/bench/box2d/optimized/b2_distance.cpp.ll @@ -444,7 +444,7 @@ if.end.i: ; preds = %sw.bb14 if.then8.i: ; preds = %if.end.i store float 1.000000e+00, ptr %a10.i, align 4 store i32 1, ptr %m_count, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %simplex, ptr noundef nonnull align 4 dereferenceable(36) %m_v2.i, i64 36, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %simplex, ptr noundef nonnull align 4 dereferenceable(36) %m_v2.i, i64 36, i1 false) br label %sw.bb.i if.end.thread204: ; preds = %if.end.i @@ -1613,7 +1613,7 @@ if.end.i233: ; preds = %sw.bb73 if.then8.i: ; preds = %if.end.i233 store float 1.000000e+00, ptr %a10.i, align 4 store i32 1, ptr %m_count, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %simplex, ptr noundef nonnull align 4 dereferenceable(36) %m_v2.i, i64 36, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(112) %simplex, ptr noundef nonnull align 4 dereferenceable(36) %m_v2.i, i64 36, i1 false) br label %sw.bb2.i if.end78.thread362: ; preds = %if.end.i233 diff --git a/bench/chibicc/optimized/main.ll b/bench/chibicc/optimized/main.ll index 3aa79f159d9..c055ed302cd 100644 --- a/bench/chibicc/optimized/main.ll +++ b/bench/chibicc/optimized/main.ll @@ -1490,7 +1490,7 @@ if.end2.i: ; preds = %endswith.exit.tail. endswith.exit21.i: ; preds = %if.end2.i %add.ptr5.i18.i = getelementptr inbounds i8, ptr %add.ptr.i.i100, i64 -3 - %call6.i19.i = call i32 @strcmp(ptr noundef nonnull readonly dereferenceable(1) %add.ptr5.i18.i, ptr noundef nonnull readonly dereferenceable(4) @.str.81) #20 + %call6.i19.i = call i32 @strcmp(ptr noundef nonnull readonly dereferenceable(1) %add.ptr5.i18.i, ptr noundef nonnull dereferenceable(4) @.str.81) #20 %tobool.not.i20.i = icmp eq i32 %call6.i19.i, 0 br i1 %tobool.not.i20.i, label %if.then43, label %endswith.exit37.i @@ -1744,14 +1744,14 @@ if.then72: ; preds = %for.end call void @strarray_push(ptr noundef nonnull %arr.i, ptr noundef nonnull @.str.91) #19 call void @strarray_push(ptr noundef nonnull %arr.i, ptr noundef nonnull @.str.92) #19 call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %st.i.i.i) - %call.i.i.i206 = call i32 @stat(ptr noundef nonnull readonly @.str.118, ptr noundef nonnull %st.i.i.i) #19 + %call.i.i.i206 = call i32 @stat(ptr noundef nonnull @.str.118, ptr noundef nonnull %st.i.i.i) #19 %tobool.not.i.i.i207 = icmp eq i32 %call.i.i.i206, 0 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %st.i.i.i) br i1 %tobool.not.i.i.i207, label %find_libpath.exit.i, label %if.end.i.i208 if.end.i.i208: ; preds = %if.then72 call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %st.i1.i.i) - %call.i2.i.i = call i32 @stat(ptr noundef nonnull readonly @.str.120, ptr noundef nonnull %st.i1.i.i) #19 + %call.i2.i.i = call i32 @stat(ptr noundef nonnull @.str.120, ptr noundef nonnull %st.i1.i.i) #19 %tobool.not.i3.i.i = icmp eq i32 %call.i2.i.i, 0 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %st.i1.i.i) br i1 %tobool.not.i3.i.i, label %find_libpath.exit.i, label %if.end3.i.i diff --git a/bench/chibicc/optimized/parse.ll b/bench/chibicc/optimized/parse.ll index 66ecb183ec5..a36adcef957 100644 --- a/bench/chibicc/optimized/parse.ll +++ b/bench/chibicc/optimized/parse.ll @@ -1760,7 +1760,7 @@ if.then23: ; preds = %if.end21 %17 = load ptr, ptr %next, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %head.i) %18 = load ptr, ptr %ty2.i.i, align 8 - %call.i16 = call fastcc ptr @initializer(ptr noundef %tok.addr, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %ty2.i.i) + %call.i16 = call fastcc ptr @initializer(ptr noundef nonnull %tok.addr, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %ty2.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %head.i, i8 0, i64 32, i1 false) %19 = load ptr, ptr %ty2.i.i, align 8 %size.i = getelementptr inbounds i8, ptr %19, i64 4 @@ -5449,7 +5449,7 @@ if.then: ; preds = %if.end.i, %is_typen store ptr %9, ptr %tok.addr.i, align 8 %call.i5 = call fastcc ptr @declspec(ptr noundef %tok.addr.i, ptr noundef %9, ptr noundef null) %10 = load ptr, ptr %tok.addr.i, align 8 - %call1.i = call fastcc ptr @abstract_declarator(ptr noundef %tok.addr, ptr noundef %10, ptr noundef %call.i5) + %call1.i = call fastcc ptr @abstract_declarator(ptr noundef nonnull %tok.addr, ptr noundef %10, ptr noundef %call.i5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tok.addr.i) %11 = load ptr, ptr %tok.addr, align 8 %call4 = call ptr @skip(ptr noundef %11, ptr noundef nonnull @.str.24) #13 @@ -5829,7 +5829,7 @@ if.then: ; preds = %entry if.then.i: ; preds = %if.then %next.i = getelementptr inbounds i8, ptr %call3, i64 8 %3 = load ptr, ptr %next.i, align 8 - %call1.i = call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %3, ptr noundef %call) + %call1.i = call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %3, ptr noundef %call) br label %type_suffix.exit if.end.i: ; preds = %if.then @@ -5839,7 +5839,7 @@ if.end.i: ; preds = %if.then if.then3.i: ; preds = %if.end.i %next4.i = getelementptr inbounds i8, ptr %call3, i64 8 %4 = load ptr, ptr %next4.i, align 8 - %call5.i = call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %4, ptr noundef %call) + %call5.i = call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %4, ptr noundef %call) br label %type_suffix.exit if.end6.i: ; preds = %if.end.i @@ -5859,7 +5859,7 @@ if.end: ; preds = %entry if.then.i14: ; preds = %if.end %next.i15 = getelementptr inbounds i8, ptr %0, i64 8 %6 = load ptr, ptr %next.i15, align 8 - %call1.i16 = tail call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %6, ptr noundef %call) + %call1.i16 = tail call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %6, ptr noundef %call) br label %return if.end.i7: ; preds = %if.end @@ -5869,7 +5869,7 @@ if.end.i7: ; preds = %if.end if.then3.i11: ; preds = %if.end.i7 %next4.i12 = getelementptr inbounds i8, ptr %0, i64 8 %7 = load ptr, ptr %next4.i12, align 8 - %call5.i13 = tail call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %7, ptr noundef %call) + %call5.i13 = tail call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %7, ptr noundef %call) br label %return if.end6.i9: ; preds = %if.end.i7 @@ -6086,7 +6086,7 @@ if.then: ; preds = %while.end if.then.i: ; preds = %if.then %next.i = getelementptr inbounds i8, ptr %2, i64 8 %3 = load ptr, ptr %next.i, align 8 - %call1.i = tail call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %3, ptr noundef %ty) + %call1.i = tail call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %3, ptr noundef %ty) br label %type_suffix.exit if.end.i: ; preds = %if.then @@ -6096,7 +6096,7 @@ if.end.i: ; preds = %if.then if.then3.i: ; preds = %if.end.i %next4.i = getelementptr inbounds i8, ptr %2, i64 8 %4 = load ptr, ptr %next4.i, align 8 - %call5.i = tail call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %4, ptr noundef %ty) + %call5.i = tail call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %4, ptr noundef %ty) br label %type_suffix.exit if.end6.i: ; preds = %if.end.i @@ -6119,7 +6119,7 @@ if.end: ; preds = %while.end if.then.i17: ; preds = %if.end %next.i18 = getelementptr inbounds i8, ptr %call7, i64 8 %6 = load ptr, ptr %next.i18, align 8 - %call1.i19 = call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %6, ptr noundef %ty) + %call1.i19 = call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %6, ptr noundef %ty) br label %type_suffix.exit20 if.end.i10: ; preds = %if.end @@ -6129,7 +6129,7 @@ if.end.i10: ; preds = %if.end if.then3.i14: ; preds = %if.end.i10 %next4.i15 = getelementptr inbounds i8, ptr %call7, i64 8 %7 = load ptr, ptr %next4.i15, align 8 - %call5.i16 = call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %7, ptr noundef %ty) + %call5.i16 = call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %7, ptr noundef %ty) br label %type_suffix.exit20 if.end6.i12: ; preds = %if.end.i10 @@ -6188,7 +6188,7 @@ if.then: ; preds = %entry if.then.i: ; preds = %if.then %next.i = getelementptr inbounds i8, ptr %call3, i64 8 %3 = load ptr, ptr %next.i, align 8 - %call1.i = call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %3, ptr noundef %call) + %call1.i = call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %3, ptr noundef %call) br label %type_suffix.exit if.end.i: ; preds = %if.then @@ -6198,7 +6198,7 @@ if.end.i: ; preds = %if.then if.then3.i: ; preds = %if.end.i %next4.i = getelementptr inbounds i8, ptr %call3, i64 8 %4 = load ptr, ptr %next4.i, align 8 - %call5.i = call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %4, ptr noundef %call) + %call5.i = call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %4, ptr noundef %call) br label %type_suffix.exit if.end6.i: ; preds = %if.end.i @@ -6230,7 +6230,7 @@ if.end9: ; preds = %if.then7, %if.end if.then.i17: ; preds = %if.end9 %next.i18 = getelementptr inbounds i8, ptr %8, i64 8 %9 = load ptr, ptr %next.i18, align 8 - %call1.i19 = tail call fastcc ptr @func_params(ptr noundef %rest, ptr noundef %9, ptr noundef %call) + %call1.i19 = tail call fastcc ptr @func_params(ptr noundef nonnull %rest, ptr noundef %9, ptr noundef %call) br label %type_suffix.exit20 if.end.i10: ; preds = %if.end9 @@ -6240,7 +6240,7 @@ if.end.i10: ; preds = %if.end9 if.then3.i14: ; preds = %if.end.i10 %next4.i15 = getelementptr inbounds i8, ptr %8, i64 8 %10 = load ptr, ptr %next4.i15, align 8 - %call5.i16 = tail call fastcc ptr @array_dimensions(ptr noundef %rest, ptr noundef %10, ptr noundef %call) + %call5.i16 = tail call fastcc ptr @array_dimensions(ptr noundef nonnull %rest, ptr noundef %10, ptr noundef %call) br label %type_suffix.exit20 if.end6.i12: ; preds = %if.end.i10 @@ -6951,7 +6951,7 @@ if.then: ; preds = %if.end.i, %is_typen store ptr %9, ptr %tok.addr.i, align 8 %call.i15 = call fastcc ptr @declspec(ptr noundef %tok.addr.i, ptr noundef %9, ptr noundef null) %10 = load ptr, ptr %tok.addr.i, align 8 - %call1.i = call fastcc ptr @abstract_declarator(ptr noundef %tok.addr, ptr noundef %10, ptr noundef %call.i15) + %call1.i = call fastcc ptr @abstract_declarator(ptr noundef nonnull %tok.addr, ptr noundef %10, ptr noundef %call.i15) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tok.addr.i) %11 = load ptr, ptr %tok.addr, align 8 %call4 = call ptr @skip(ptr noundef %11, ptr noundef nonnull @.str.24) #13 @@ -6989,7 +6989,7 @@ if.then6: ; preds = %if.then store ptr %call.i.i.i16, ptr @globals, align 8 %18 = load ptr, ptr %tok.addr, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %head.i) - %call.i17 = call fastcc ptr @initializer(ptr noundef %rest, ptr noundef %18, ptr noundef %call1.i, ptr noundef nonnull %ty2.i.i.i) + %call.i17 = call fastcc ptr @initializer(ptr noundef nonnull %rest, ptr noundef %18, ptr noundef %call1.i, ptr noundef nonnull %ty2.i.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %head.i, i8 0, i64 32, i1 false) %19 = load ptr, ptr %ty2.i.i.i, align 8 %size.i = getelementptr inbounds i8, ptr %19, i64 4 @@ -7032,7 +7032,7 @@ if.end: ; preds = %if.then store ptr %call.i.i19, ptr @locals, align 8 %24 = load ptr, ptr %tok.addr, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %desg.i) - %call.i23 = call fastcc ptr @initializer(ptr noundef %rest, ptr noundef %24, ptr noundef %call1.i, ptr noundef nonnull %ty2.i.i) + %call.i23 = call fastcc ptr @initializer(ptr noundef nonnull %rest, ptr noundef %24, ptr noundef %call1.i, ptr noundef nonnull %ty2.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %desg.i, i8 0, i64 24, i1 false) %var2.i = getelementptr inbounds i8, ptr %desg.i, i64 24 store ptr %call.i.i19, ptr %var2.i, align 8 @@ -7182,7 +7182,7 @@ if.then23.i: ; preds = %if.end.i236, %is_ty store ptr %46, ptr %tok.addr.i232, align 8 %call.i233 = call fastcc ptr @declspec(ptr noundef %tok.addr.i232, ptr noundef %46, ptr noundef null) %47 = load ptr, ptr %tok.addr.i232, align 8 - %call1.i234 = call fastcc ptr @abstract_declarator(ptr noundef %tok.addr.i30, ptr noundef %47, ptr noundef %call.i233) + %call1.i234 = call fastcc ptr @abstract_declarator(ptr noundef nonnull %tok.addr.i30, ptr noundef %47, ptr noundef %call.i233) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tok.addr.i232) %48 = load ptr, ptr %tok.addr.i30, align 8 %call27.i = call ptr @skip(ptr noundef %48, ptr noundef nonnull @.str.24) #13 @@ -7249,7 +7249,7 @@ if.end39.i: ; preds = %for.cond.i.i.i243, if.then41.i: ; preds = %if.end39.i %next43.i = getelementptr inbounds i8, ptr %tok, i64 8 %56 = load ptr, ptr %next43.i, align 8 - %call44.i = call fastcc ptr @unary(ptr noundef %tok.addr, ptr noundef %56) + %call44.i = call fastcc ptr @unary(ptr noundef nonnull %tok.addr, ptr noundef %56) call void @add_type(ptr noundef %call44.i) #13 %ty45.i = getelementptr inbounds i8, ptr %call44.i, i64 16 %57 = load ptr, ptr %ty45.i, align 16 @@ -7376,7 +7376,7 @@ if.end78.i: ; preds = %for.cond.i.i.i195, if.then80.i: ; preds = %if.end78.i %next82.i = getelementptr inbounds i8, ptr %tok, i64 8 %81 = load ptr, ptr %next82.i, align 8 - %call83.i = call fastcc ptr @unary(ptr noundef %tok.addr, ptr noundef %81) + %call83.i = call fastcc ptr @unary(ptr noundef nonnull %tok.addr, ptr noundef %81) call void @add_type(ptr noundef %call83.i) #13 %ty84.i = getelementptr inbounds i8, ptr %call83.i, i64 16 %82 = load ptr, ptr %ty84.i, align 16 @@ -7461,7 +7461,7 @@ if.end16.i: ; preds = %while.body.i167 store ptr %92, ptr %tok.addr.i.i, align 8 %call.i.i168 = call fastcc ptr @declspec(ptr noundef %tok.addr.i.i, ptr noundef %92, ptr noundef null) %95 = load ptr, ptr %tok.addr.i.i, align 8 - %call1.i.i = call fastcc ptr @abstract_declarator(ptr noundef %tok.addr.i159, ptr noundef %95, ptr noundef %call.i.i168) + %call1.i.i = call fastcc ptr @abstract_declarator(ptr noundef nonnull %tok.addr.i159, ptr noundef %95, ptr noundef %call.i.i168) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tok.addr.i.i) %96 = load ptr, ptr %tok.addr.i159, align 8 %call18.i169 = call ptr @skip(ptr noundef %96, ptr noundef nonnull @.str.3) #13 @@ -9304,7 +9304,7 @@ if.else.i56: ; preds = %if.end.i54 %children15.i = getelementptr inbounds i8, ptr %init, i64 40 %94 = load ptr, ptr %children15.i, align 8 %95 = load ptr, ptr %94, align 8 - tail call fastcc void @initializer2(ptr noundef %rest, ptr noundef %tok, ptr noundef %95) + tail call fastcc void @initializer2(ptr noundef nonnull %rest, ptr noundef %tok, ptr noundef %95) br label %union_initializer.exit union_initializer.exit: ; preds = %if.then.i62, %if.then9.i57, %if.else.i56 @@ -10926,7 +10926,7 @@ if.then17: ; preds = %get_ident.exit %20 = load ptr, ptr %next, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %head.i) %21 = load ptr, ptr %ty2.i.i.i, align 8 - %call.i30 = call fastcc ptr @initializer(ptr noundef %tok.addr, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %ty2.i.i.i) + %call.i30 = call fastcc ptr @initializer(ptr noundef nonnull %tok.addr, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %ty2.i.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %head.i, i8 0, i64 32, i1 false) %22 = load ptr, ptr %ty2.i.i.i, align 8 %size.i = getelementptr inbounds i8, ptr %22, i64 4 @@ -11132,7 +11132,7 @@ if.then54: ; preds = %if.end52 %53 = load ptr, ptr %next56, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %desg.i) %54 = load ptr, ptr %ty2.i.i63, align 8 - %call.i70 = call fastcc ptr @initializer(ptr noundef %tok.addr, ptr noundef %53, ptr noundef %54, ptr noundef nonnull %ty2.i.i63) + %call.i70 = call fastcc ptr @initializer(ptr noundef nonnull %tok.addr, ptr noundef %53, ptr noundef %54, ptr noundef nonnull %ty2.i.i63) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %desg.i, i8 0, i64 24, i1 false) store ptr %call.i.i61, ptr %var2.i, align 8 %call.i80 = call noalias noundef dereferenceable_or_null(288) ptr @calloc(i64 noundef 1, i64 noundef 288) #14 @@ -12284,7 +12284,7 @@ if.then: ; preds = %if.end.i, %is_typen store ptr %call, ptr %tok.addr.i, align 8 %call.i2 = call fastcc ptr @declspec(ptr noundef %tok.addr.i, ptr noundef nonnull %call, ptr noundef null) %8 = load ptr, ptr %tok.addr.i, align 8 - %call1.i = call fastcc ptr @abstract_declarator(ptr noundef %tok.addr, ptr noundef %8, ptr noundef %call.i2) + %call1.i = call fastcc ptr @abstract_declarator(ptr noundef nonnull %tok.addr, ptr noundef %8, ptr noundef %call.i2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tok.addr.i) br label %if.end diff --git a/bench/cjson/optimized/cJSON.c.ll b/bench/cjson/optimized/cJSON.c.ll index bd032a18768..b01973dfcda 100644 --- a/bench/cjson/optimized/cJSON.c.ll +++ b/bench/cjson/optimized/cJSON.c.ll @@ -1454,7 +1454,7 @@ ensure.exit59: ; preds = %156, %120 %.03747.i = phi i32 [ 4, %.thread.i ], [ %.037.i, %187 ] %189 = zext nneg i32 %.03747.i to i64 %190 = add nuw nsw i64 %189, 1 - %191 = call fastcc ptr @ensure(ptr noundef %1, i64 noundef %190) + %191 = call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %190) %192 = icmp eq ptr %191, null br i1 %192, label %print_number.exit, label %.preheader.i @@ -1510,7 +1510,7 @@ print_number.exit: ; preds = %187, %188, %._crit_ 213: ; preds = %6 %214 = getelementptr i8, ptr %0, i64 32 %.val = load ptr, ptr %214, align 8 - %215 = tail call fastcc range(i32 0, 2) i32 @print_string_ptr(ptr noundef %.val, ptr noundef %1) + %215 = tail call fastcc range(i32 0, 2) i32 @print_string_ptr(ptr noundef %.val, ptr noundef nonnull %1) br label %print_array.exit 216: ; preds = %6 @@ -1631,7 +1631,7 @@ ensure.exit79: ; preds = %265, %229 274: ; preds = %.lr.ph101, %296 %.0.i62100 = phi ptr [ %218, %.lr.ph101 ], [ %.pre, %296 ] - %275 = tail call fastcc i32 @print_value(ptr noundef nonnull %.0.i62100, ptr noundef %1) + %275 = tail call fastcc i32 @print_value(ptr noundef nonnull %.0.i62100, ptr noundef nonnull %1) %.not34.i = icmp eq i32 %275, 0 br i1 %.not34.i, label %print_array.exit, label %276 @@ -1658,7 +1658,7 @@ update_offset.exit: ; preds = %276, %279 %.not36.i = icmp eq i32 %286, 0 %287 = select i1 %.not36.i, i64 1, i64 2 %288 = add nuw nsw i64 %287, 1 - %289 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %288) + %289 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %288) %290 = icmp eq ptr %289, null br i1 %290, label %print_array.exit, label %291 @@ -1685,7 +1685,7 @@ update_offset.exit: ; preds = %276, %279 br i1 %.not.i63, label %._crit_edge102, label %274 ._crit_edge102: ; preds = %update_offset.exit, %296, %ensure.exit79 - %299 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef 2) + %299 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef 2) %300 = icmp eq ptr %299, null br i1 %300, label %print_array.exit, label %301 @@ -1706,7 +1706,7 @@ update_offset.exit: ; preds = %276, %279 %.not.i64 = icmp eq i32 %309, 0 %310 = select i1 %.not.i64, i64 1, i64 2 %311 = add nuw nsw i64 %310, 1 - %312 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %311) + %312 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %311) %313 = icmp eq ptr %312, null br i1 %313, label %print_array.exit, label %314 @@ -1741,7 +1741,7 @@ update_offset.exit: ; preds = %276, %279 326: ; preds = %.lr.ph93 %327 = load i64, ptr %315, align 8 - %328 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %327) + %328 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %327) %329 = icmp eq ptr %328, null br i1 %329, label %print_array.exit, label %.preheader86 @@ -1770,7 +1770,7 @@ update_offset.exit: ; preds = %276, %279 337: ; preds = %._crit_edge, %.lr.ph93 %338 = getelementptr inbounds i8, ptr %.064.i91, i64 56 %339 = load ptr, ptr %338, align 8 - %340 = tail call fastcc i32 @print_string_ptr(ptr noundef %339, ptr noundef %1) + %340 = tail call fastcc i32 @print_string_ptr(ptr noundef %339, ptr noundef nonnull %1) %.not79.i = icmp eq i32 %340, 0 br i1 %.not79.i, label %print_array.exit, label %341 @@ -1791,7 +1791,7 @@ update_offset.exit81: ; preds = %341, %344 %349 = load i32, ptr %308, align 4 %.not80.i = icmp eq i32 %349, 0 %350 = select i1 %.not80.i, i64 1, i64 2 - %351 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %350) + %351 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %350) %352 = icmp eq ptr %351, null br i1 %352, label %print_array.exit, label %353 @@ -1810,7 +1810,7 @@ update_offset.exit81: ; preds = %341, %344 %358 = load i64, ptr %322, align 8 %359 = add i64 %358, %350 store i64 %359, ptr %322, align 8 - %360 = tail call fastcc i32 @print_value(ptr noundef nonnull %.064.i91, ptr noundef %1) + %360 = tail call fastcc i32 @print_value(ptr noundef nonnull %.064.i91, ptr noundef nonnull %1) %.not82.i = icmp eq i32 %360, 0 br i1 %.not82.i, label %print_array.exit, label %361 @@ -1836,7 +1836,7 @@ update_offset.exit80: ; preds = %361, %364 %372 = zext i1 %.not84.i to i64 %373 = add nuw nsw i64 %372, %370 %374 = add nuw nsw i64 %373, 1 - %375 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %374) + %375 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %374) %376 = icmp eq ptr %375, null br i1 %376, label %print_array.exit, label %377 @@ -1883,7 +1883,7 @@ update_offset.exit80: ; preds = %361, %364 393: ; preds = %390, %._crit_edge94 %394 = phi i64 [ %392, %390 ], [ 2, %._crit_edge94 ] - %395 = tail call fastcc ptr @ensure(ptr noundef %1, i64 noundef %394) + %395 = tail call fastcc ptr @ensure(ptr noundef nonnull %1, i64 noundef %394) %396 = icmp eq ptr %395, null br i1 %396, label %print_array.exit, label %397 diff --git a/bench/cjson/optimized/cJSON_Utils.c.ll b/bench/cjson/optimized/cJSON_Utils.c.ll index fbd81b27e6a..a1b67efd88f 100644 --- a/bench/cjson/optimized/cJSON_Utils.c.ll +++ b/bench/cjson/optimized/cJSON_Utils.c.ll @@ -1142,11 +1142,11 @@ define internal fastcc void @create_patches(ptr noundef %0, ptr noundef %1, ptr sort_object.exit112: ; preds = %16 %65 = getelementptr inbounds i8, ptr %2, i64 16 %66 = load ptr, ptr %65, align 8 - %67 = tail call fastcc ptr @sort_list(ptr noundef %66, i32 noundef %4) + %67 = tail call fastcc ptr @sort_list(ptr noundef %66, i32 noundef range(i32 0, 2) %4) store ptr %67, ptr %65, align 8 %68 = getelementptr inbounds i8, ptr %3, i64 16 %69 = load ptr, ptr %68, align 8 - %70 = tail call fastcc ptr @sort_list(ptr noundef %69, i32 noundef %4) + %70 = tail call fastcc ptr @sort_list(ptr noundef %69, i32 noundef range(i32 0, 2) %4) store ptr %70, ptr %68, align 8 %71 = load ptr, ptr %65, align 8 %72 = icmp ne ptr %71, null @@ -1528,14 +1528,14 @@ define internal fastcc ptr @generate_merge_patch(ptr noundef %0, ptr noundef %1, 15: ; preds = %13 %16 = getelementptr inbounds i8, ptr %0, i64 16 %17 = load ptr, ptr %16, align 8 - %18 = tail call fastcc ptr @sort_list(ptr noundef %17, i32 noundef %2) + %18 = tail call fastcc ptr @sort_list(ptr noundef %17, i32 noundef range(i32 0, 2) %2) store ptr %18, ptr %16, align 8 br label %sort_object.exit48 sort_object.exit48: ; preds = %13, %15 %19 = getelementptr inbounds i8, ptr %1, i64 16 %20 = load ptr, ptr %19, align 8 - %21 = tail call fastcc ptr @sort_list(ptr noundef %20, i32 noundef %2) + %21 = tail call fastcc ptr @sort_list(ptr noundef %20, i32 noundef range(i32 0, 2) %2) store ptr %21, ptr %19, align 8 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8 @@ -1805,11 +1805,11 @@ define internal fastcc range(i32 0, 2) i32 @compare_json(ptr noundef %0, ptr nou sort_object.exit61: ; preds = %13 %49 = getelementptr inbounds i8, ptr %0, i64 16 %50 = load ptr, ptr %49, align 8 - %51 = tail call fastcc ptr @sort_list(ptr noundef %50, i32 noundef %2) + %51 = tail call fastcc ptr @sort_list(ptr noundef %50, i32 noundef range(i32 0, 2) %2) store ptr %51, ptr %49, align 8 %52 = getelementptr inbounds i8, ptr %1, i64 16 %53 = load ptr, ptr %52, align 8 - %54 = tail call fastcc ptr @sort_list(ptr noundef %53, i32 noundef %2) + %54 = tail call fastcc ptr @sort_list(ptr noundef %53, i32 noundef range(i32 0, 2) %2) store ptr %54, ptr %52, align 8 %.not.i = icmp eq i32 %2, 0 br i1 %.not.i, label %sort_object.exit61.split.us, label %sort_object.exit61.split diff --git a/bench/cpython/optimized/exceptions.ll b/bench/cpython/optimized/exceptions.ll index a50ce998a91..d4bbfd6961c 100644 --- a/bench/cpython/optimized/exceptions.ll +++ b/bench/cpython/optimized/exceptions.ll @@ -6804,21 +6804,92 @@ if.then.i.i.i: ; preds = %if.end10 %4 = load i32, ptr %3, align 8 %add.i.i.i.i = add i32 %4, 1 %cmp.i.i.i.i = icmp eq i32 %add.i.i.i.i, 0 - br i1 %cmp.i.i.i.i, label %if.then13, label %if.end.i.i.i.i + br i1 %cmp.i.i.i.i, label %if.end.i49, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.then.i.i.i store i32 %add.i.i.i.i, ptr %3, align 8 - br label %if.then13 + %5 = add i32 %4, 2 + br label %if.end.i49 + +if.end.i49: ; preds = %if.end.i.i.i.i, %if.then.i.i.i + %add.i.i.i = phi i32 [ %5, %if.end.i.i.i.i ], [ 0, %if.then.i.i.i ] + %6 = getelementptr i8, ptr %3, i64 8 + %tb.val.i = load ptr, ptr %6, align 8 + %cmp.i10.not.i = icmp eq ptr %tb.val.i, @PyTraceBack_Type + br i1 %cmp.i10.not.i, label %do.body.i, label %if.else.i + +do.body.i: ; preds = %if.end.i49 + %traceback.i50 = getelementptr inbounds i8, ptr %call4, i64 40 + %7 = load ptr, ptr %traceback.i50, align 8 + %cmp.i.i.i51 = icmp eq i32 %add.i.i.i, 0 + br i1 %cmp.i.i.i51, label %_Py_NewRef.exit.i, label %if.end.i.i.i52 + +if.end.i.i.i52: ; preds = %do.body.i + store i32 %add.i.i.i, ptr %3, align 8 + br label %_Py_NewRef.exit.i -if.then13: ; preds = %if.then.i.i.i, %if.end.i.i.i.i - %call1.i = tail call range(i32 -1, 1) i32 @BaseException_set_tb(ptr noundef nonnull %call4, ptr noundef nonnull %3, ptr poison) - %5 = load i64, ptr %3, align 8 - %6 = and i64 %5, 2147483648 - %cmp.i79.not = icmp eq i64 %6, 0 +_Py_NewRef.exit.i: ; preds = %if.end.i.i.i52, %do.body.i + store ptr %3, ptr %traceback.i50, align 8 + %cmp.not.i.i53 = icmp eq ptr %7, null + br i1 %cmp.not.i.i53, label %BaseException_set_tb.exit, label %if.then.i.i54 + +if.then.i.i54: ; preds = %_Py_NewRef.exit.i + %8 = load i64, ptr %7, align 8 + %9 = and i64 %8, 2147483648 + %cmp.i2.not.i.i55 = icmp eq i64 %9, 0 + br i1 %cmp.i2.not.i.i55, label %if.end.i.i12.i, label %BaseException_set_tb.exit + +if.end.i.i12.i: ; preds = %if.then.i.i54 + %dec.i.i.i56 = add i64 %8, -1 + store i64 %dec.i.i.i56, ptr %7, align 8 + %cmp.i.i13.i = icmp eq i64 %dec.i.i.i56, 0 + br i1 %cmp.i.i13.i, label %if.then1.i.i.i57, label %BaseException_set_tb.exit + +if.then1.i.i.i57: ; preds = %if.end.i.i12.i + tail call void @_Py_Dealloc(ptr noundef nonnull %7) #10 + br label %BaseException_set_tb.exit + +if.else.i: ; preds = %if.end.i49 + %cmp3.i = icmp eq ptr %3, @_Py_NoneStruct + br i1 %cmp3.i, label %do.body5.i, label %if.else11.i + +do.body5.i: ; preds = %if.else.i + %traceback6.i = getelementptr inbounds i8, ptr %call4, i64 40 + %10 = load ptr, ptr %traceback6.i, align 8 + %cmp7.not.i = icmp eq ptr %10, null + br i1 %cmp7.not.i, label %BaseException_set_tb.exit, label %if.then8.i + +if.then8.i: ; preds = %do.body5.i + store ptr null, ptr %traceback6.i, align 8 + %11 = load i64, ptr %10, align 8 + %12 = and i64 %11, 2147483648 + %cmp.i15.not.i = icmp eq i64 %12, 0 + br i1 %cmp.i15.not.i, label %if.end.i.i, label %BaseException_set_tb.exit + +if.end.i.i: ; preds = %if.then8.i + %dec.i.i = add i64 %11, -1 + store i64 %dec.i.i, ptr %10, align 8 + %cmp.i.i = icmp eq i64 %dec.i.i, 0 + br i1 %cmp.i.i, label %if.then1.i.i, label %BaseException_set_tb.exit + +if.then1.i.i: ; preds = %if.end.i.i + tail call void @_Py_Dealloc(ptr noundef nonnull %10) #10 + br label %BaseException_set_tb.exit + +if.else11.i: ; preds = %if.else.i + %13 = load ptr, ptr @PyExc_TypeError, align 8 + tail call void @PyErr_SetString(ptr noundef %13, ptr noundef nonnull @.str.20) #10 + br label %BaseException_set_tb.exit + +BaseException_set_tb.exit: ; preds = %_Py_NewRef.exit.i, %if.then.i.i54, %if.end.i.i12.i, %if.then1.i.i.i57, %do.body5.i, %if.then8.i, %if.end.i.i, %if.then1.i.i, %if.else11.i + %cmp15 = phi i1 [ true, %if.else11.i ], [ false, %do.body5.i ], [ false, %if.then8.i ], [ false, %if.then1.i.i ], [ false, %if.end.i.i ], [ false, %_Py_NewRef.exit.i ], [ false, %if.then.i.i54 ], [ false, %if.end.i.i12.i ], [ false, %if.then1.i.i.i57 ] + %14 = load i64, ptr %3, align 8 + %15 = and i64 %14, 2147483648 + %cmp.i79.not = icmp eq i64 %15, 0 br i1 %cmp.i79.not, label %if.end.i72, label %Py_DECREF.exit77 -if.end.i72: ; preds = %if.then13 - %dec.i73 = add i64 %5, -1 +if.end.i72: ; preds = %BaseException_set_tb.exit + %dec.i73 = add i64 %14, -1 store i64 %dec.i73, ptr %3, align 8 %cmp.i74 = icmp eq i64 %dec.i73, 0 br i1 %cmp.i74, label %if.then1.i75, label %Py_DECREF.exit77 @@ -6827,88 +6898,87 @@ if.then1.i75: ; preds = %if.end.i72 tail call void @_Py_Dealloc(ptr noundef nonnull %3) #10 br label %Py_DECREF.exit77 -Py_DECREF.exit77: ; preds = %if.then13, %if.then1.i75, %if.end.i72 - %cmp15 = icmp slt i32 %call1.i, 0 +Py_DECREF.exit77: ; preds = %BaseException_set_tb.exit, %if.then1.i75, %if.end.i72 br i1 %cmp15, label %error, label %if.end18 if.end18: ; preds = %if.end10, %Py_DECREF.exit77 %context1.i = getelementptr inbounds i8, ptr %_orig, i64 48 - %7 = load ptr, ptr %context1.i, align 8 - %cmp.not.i.i.i29 = icmp eq ptr %7, null + %16 = load ptr, ptr %context1.i, align 8 + %cmp.not.i.i.i29 = icmp eq ptr %16, null br i1 %cmp.not.i.i.i29, label %PyException_GetContext.exit, label %if.then.i.i.i30 if.then.i.i.i30: ; preds = %if.end18 - %8 = load i32, ptr %7, align 8 - %add.i.i.i.i31 = add i32 %8, 1 + %17 = load i32, ptr %16, align 8 + %add.i.i.i.i31 = add i32 %17, 1 %cmp.i.i.i.i32 = icmp eq i32 %add.i.i.i.i31, 0 br i1 %cmp.i.i.i.i32, label %PyException_GetContext.exit, label %if.end.i.i.i.i33 if.end.i.i.i.i33: ; preds = %if.then.i.i.i30 - store i32 %add.i.i.i.i31, ptr %7, align 8 + store i32 %add.i.i.i.i31, ptr %16, align 8 br label %PyException_GetContext.exit PyException_GetContext.exit: ; preds = %if.end18, %if.then.i.i.i30, %if.end.i.i.i.i33 %context1.i34 = getelementptr inbounds i8, ptr %call4, i64 48 - %9 = load ptr, ptr %context1.i34, align 8 - store ptr %7, ptr %context1.i34, align 8 - %cmp.not.i.i = icmp eq ptr %9, null + %18 = load ptr, ptr %context1.i34, align 8 + store ptr %16, ptr %context1.i34, align 8 + %cmp.not.i.i = icmp eq ptr %18, null br i1 %cmp.not.i.i, label %PyException_SetContext.exit, label %if.then.i.i if.then.i.i: ; preds = %PyException_GetContext.exit - %10 = load i64, ptr %9, align 8 - %11 = and i64 %10, 2147483648 - %cmp.i2.not.i.i = icmp eq i64 %11, 0 + %19 = load i64, ptr %18, align 8 + %20 = and i64 %19, 2147483648 + %cmp.i2.not.i.i = icmp eq i64 %20, 0 br i1 %cmp.i2.not.i.i, label %if.end.i.i.i, label %PyException_SetContext.exit if.end.i.i.i: ; preds = %if.then.i.i - %dec.i.i.i = add i64 %10, -1 - store i64 %dec.i.i.i, ptr %9, align 8 + %dec.i.i.i = add i64 %19, -1 + store i64 %dec.i.i.i, ptr %18, align 8 %cmp.i.i.i = icmp eq i64 %dec.i.i.i, 0 br i1 %cmp.i.i.i, label %if.then1.i.i.i, label %PyException_SetContext.exit if.then1.i.i.i: ; preds = %if.end.i.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %9) #10 + tail call void @_Py_Dealloc(ptr noundef nonnull %18) #10 br label %PyException_SetContext.exit PyException_SetContext.exit: ; preds = %PyException_GetContext.exit, %if.then.i.i, %if.end.i.i.i, %if.then1.i.i.i %cause1.i = getelementptr inbounds i8, ptr %_orig, i64 56 - %12 = load ptr, ptr %cause1.i, align 8 - %cmp.not.i.i.i35 = icmp eq ptr %12, null + %21 = load ptr, ptr %cause1.i, align 8 + %cmp.not.i.i.i35 = icmp eq ptr %21, null br i1 %cmp.not.i.i.i35, label %PyException_GetCause.exit, label %if.then.i.i.i36 if.then.i.i.i36: ; preds = %PyException_SetContext.exit - %13 = load i32, ptr %12, align 8 - %add.i.i.i.i37 = add i32 %13, 1 + %22 = load i32, ptr %21, align 8 + %add.i.i.i.i37 = add i32 %22, 1 %cmp.i.i.i.i38 = icmp eq i32 %add.i.i.i.i37, 0 br i1 %cmp.i.i.i.i38, label %PyException_GetCause.exit, label %if.end.i.i.i.i39 if.end.i.i.i.i39: ; preds = %if.then.i.i.i36 - store i32 %add.i.i.i.i37, ptr %12, align 8 + store i32 %add.i.i.i.i37, ptr %21, align 8 br label %PyException_GetCause.exit PyException_GetCause.exit: ; preds = %PyException_SetContext.exit, %if.then.i.i.i36, %if.end.i.i.i.i39 %suppress_context.i = getelementptr inbounds i8, ptr %call4, i64 64 store i8 1, ptr %suppress_context.i, align 8 %cause1.i40 = getelementptr inbounds i8, ptr %call4, i64 56 - %14 = load ptr, ptr %cause1.i40, align 8 - store ptr %12, ptr %cause1.i40, align 8 - %cmp.not.i.i41 = icmp eq ptr %14, null + %23 = load ptr, ptr %cause1.i40, align 8 + store ptr %21, ptr %cause1.i40, align 8 + %cmp.not.i.i41 = icmp eq ptr %23, null br i1 %cmp.not.i.i41, label %PyException_SetCause.exit, label %if.then.i.i42 if.then.i.i42: ; preds = %PyException_GetCause.exit - %15 = load i64, ptr %14, align 8 - %16 = and i64 %15, 2147483648 - %cmp.i2.not.i.i43 = icmp eq i64 %16, 0 + %24 = load i64, ptr %23, align 8 + %25 = and i64 %24, 2147483648 + %cmp.i2.not.i.i43 = icmp eq i64 %25, 0 br i1 %cmp.i2.not.i.i43, label %if.end.i.i.i44, label %PyException_SetCause.exit if.end.i.i.i44: ; preds = %if.then.i.i42 - %dec.i.i.i45 = add i64 %15, -1 - store i64 %dec.i.i.i45, ptr %14, align 8 + %dec.i.i.i45 = add i64 %24, -1 + store i64 %dec.i.i.i45, ptr %23, align 8 %cmp.i.i.i46 = icmp eq i64 %dec.i.i.i45, 0 br i1 %cmp.i.i.i46, label %if.then1.i.i.i47, label %PyException_SetCause.exit if.then1.i.i.i47: ; preds = %if.end.i.i.i44 - tail call void @_Py_Dealloc(ptr noundef nonnull %14) #10 + tail call void @_Py_Dealloc(ptr noundef nonnull %23) #10 br label %PyException_SetCause.exit PyException_SetCause.exit: ; preds = %PyException_GetCause.exit, %if.then.i.i42, %if.end.i.i.i44, %if.then1.i.i.i47 @@ -6917,32 +6987,32 @@ PyException_SetCause.exit: ; preds = %PyException_GetCaus br i1 %cmp22, label %error, label %if.end24 if.end24: ; preds = %PyException_SetCause.exit - %17 = load ptr, ptr %notes, align 8 - %tobool25.not = icmp eq ptr %17, null + %26 = load ptr, ptr %notes, align 8 + %tobool25.not = icmp eq ptr %26, null br i1 %tobool25.not, label %if.end41, label %if.then26 if.then26: ; preds = %if.end24 - %call27 = call i32 @PySequence_Check(ptr noundef nonnull %17) #10 + %call27 = call i32 @PySequence_Check(ptr noundef nonnull %26) #10 %tobool28.not = icmp eq i32 %call27, 0 - %18 = load ptr, ptr %notes, align 8 + %27 = load ptr, ptr %notes, align 8 br i1 %tobool28.not, label %if.else39, label %if.then29 if.then29: ; preds = %if.then26 - %call30 = call ptr @PySequence_List(ptr noundef %18) #10 - %19 = load ptr, ptr %notes, align 8 - %20 = load i64, ptr %19, align 8 - %21 = and i64 %20, 2147483648 - %cmp.i82.not = icmp eq i64 %21, 0 + %call30 = call ptr @PySequence_List(ptr noundef %27) #10 + %28 = load ptr, ptr %notes, align 8 + %29 = load i64, ptr %28, align 8 + %30 = and i64 %29, 2147483648 + %cmp.i82.not = icmp eq i64 %30, 0 br i1 %cmp.i82.not, label %if.end.i63, label %Py_DECREF.exit68 if.end.i63: ; preds = %if.then29 - %dec.i64 = add i64 %20, -1 - store i64 %dec.i64, ptr %19, align 8 + %dec.i64 = add i64 %29, -1 + store i64 %dec.i64, ptr %28, align 8 %cmp.i65 = icmp eq i64 %dec.i64, 0 br i1 %cmp.i65, label %if.then1.i66, label %Py_DECREF.exit68 if.then1.i66: ; preds = %if.end.i63 - call void @_Py_Dealloc(ptr noundef nonnull %19) #10 + call void @_Py_Dealloc(ptr noundef nonnull %28) #10 br label %Py_DECREF.exit68 Py_DECREF.exit68: ; preds = %if.then29, %if.then1.i66, %if.end.i63 @@ -6951,13 +7021,13 @@ Py_DECREF.exit68: ; preds = %if.then29, %if.then if.end33: ; preds = %Py_DECREF.exit68 %call35 = call i32 @PyObject_SetAttr(ptr noundef nonnull %call4, ptr noundef nonnull getelementptr inbounds (i8, ptr @_PyRuntime, i64 32080), ptr noundef nonnull %call30) #10 - %22 = load i64, ptr %call30, align 8 - %23 = and i64 %22, 2147483648 - %cmp.i86.not = icmp eq i64 %23, 0 + %31 = load i64, ptr %call30, align 8 + %32 = and i64 %31, 2147483648 + %cmp.i86.not = icmp eq i64 %32, 0 br i1 %cmp.i86.not, label %if.end.i54, label %Py_DECREF.exit59 if.end.i54: ; preds = %if.end33 - %dec.i55 = add i64 %22, -1 + %dec.i55 = add i64 %31, -1 store i64 %dec.i55, ptr %call30, align 8 %cmp.i56 = icmp eq i64 %dec.i55, 0 br i1 %cmp.i56, label %if.then1.i57, label %Py_DECREF.exit59 @@ -6971,19 +7041,19 @@ Py_DECREF.exit59: ; preds = %if.end33, %if.then1 br i1 %cmp36, label %error, label %if.end41 if.else39: ; preds = %if.then26 - %24 = load i64, ptr %18, align 8 - %25 = and i64 %24, 2147483648 - %cmp.i90.not = icmp eq i64 %25, 0 + %33 = load i64, ptr %27, align 8 + %34 = and i64 %33, 2147483648 + %cmp.i90.not = icmp eq i64 %34, 0 br i1 %cmp.i90.not, label %if.end.i45, label %if.end41 if.end.i45: ; preds = %if.else39 - %dec.i46 = add i64 %24, -1 - store i64 %dec.i46, ptr %18, align 8 + %dec.i46 = add i64 %33, -1 + store i64 %dec.i46, ptr %27, align 8 %cmp.i47 = icmp eq i64 %dec.i46, 0 br i1 %cmp.i47, label %if.then1.i48, label %if.end41 if.then1.i48: ; preds = %if.end.i45 - call void @_Py_Dealloc(ptr noundef nonnull %18) #10 + call void @_Py_Dealloc(ptr noundef nonnull %27) #10 br label %if.end41 if.end41: ; preds = %Py_DECREF.exit59, %if.else39, %if.then1.i48, %if.end.i45, %if.end24 @@ -6991,13 +7061,13 @@ if.end41: ; preds = %Py_DECREF.exit59, % br label %return error: ; preds = %Py_DECREF.exit59, %Py_DECREF.exit68, %PyException_SetCause.exit, %Py_DECREF.exit77, %if.then9 - %26 = load i64, ptr %call4, align 8 - %27 = and i64 %26, 2147483648 - %cmp.i94.not = icmp eq i64 %27, 0 + %35 = load i64, ptr %call4, align 8 + %36 = and i64 %35, 2147483648 + %cmp.i94.not = icmp eq i64 %36, 0 br i1 %cmp.i94.not, label %if.end.i, label %return if.end.i: ; preds = %error - %dec.i = add i64 %26, -1 + %dec.i = add i64 %35, -1 store i64 %dec.i, ptr %call4, align 8 %cmp.i = icmp eq i64 %dec.i, 0 br i1 %cmp.i, label %if.then1.i, label %return diff --git a/bench/crow/optimized/example.cpp.ll b/bench/crow/optimized/example.cpp.ll index b2331cad744..848202c9e86 100644 --- a/bench/crow/optimized/example.cpp.ll +++ b/bench/crow/optimized/example.cpp.ll @@ -81182,7 +81182,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail22deadline_timer_serviceINS0_ %65 = load ptr, ptr %64, align 8, !tbaa !119, !noalias !1651 %66 = getelementptr inbounds i8, ptr %65, i64 24 %67 = load ptr, ptr %66, align 8, !tbaa !1658, !noalias !1651 - %68 = invoke noundef ptr %67(ptr noundef nonnull align 8 dereferenceable(40) %3) + %68 = invoke noundef ptr %67(ptr noundef nonnull align 8 dereferenceable(48) %3) to label %69 unwind label %71 69: ; preds = %59 @@ -83501,7 +83501,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail22deadline_timer_serviceINS0_ %62 = load ptr, ptr %61, align 8, !tbaa !119, !noalias !1701 %63 = getelementptr inbounds i8, ptr %62, i64 24 %64 = load ptr, ptr %63, align 8, !tbaa !1658, !noalias !1701 - %65 = invoke noundef ptr %64(ptr noundef nonnull align 8 dereferenceable(40) %3) + %65 = invoke noundef ptr %64(ptr noundef nonnull align 8 dereferenceable(48) %3) to label %66 unwind label %68 66: ; preds = %56 @@ -84197,7 +84197,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail22deadline_timer_serviceINS0_ %62 = load ptr, ptr %61, align 8, !tbaa !119, !noalias !1720 %63 = getelementptr inbounds i8, ptr %62, i64 24 %64 = load ptr, ptr %63, align 8, !tbaa !1658, !noalias !1720 - %65 = invoke noundef ptr %64(ptr noundef nonnull align 8 dereferenceable(40) %3) + %65 = invoke noundef ptr %64(ptr noundef nonnull align 8 dereferenceable(48) %3) to label %66 unwind label %68 66: ; preds = %56 @@ -85501,7 +85501,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail18signal_set_service10async_w %63 = load ptr, ptr %62, align 8, !tbaa !119, !noalias !1753 %64 = getelementptr inbounds i8, ptr %63, i64 24 %65 = load ptr, ptr %64, align 8, !tbaa !1658, !noalias !1753 - %66 = invoke noundef ptr %65(ptr noundef nonnull align 8 dereferenceable(40) %3) + %66 = invoke noundef ptr %65(ptr noundef nonnull align 8 dereferenceable(48) %3) to label %67 unwind label %69 67: ; preds = %57 @@ -92300,7 +92300,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail28reactive_socket_service_bas %74 = load ptr, ptr %73, align 8, !tbaa !119, !noalias !1883 %75 = getelementptr inbounds i8, ptr %74, i64 24 %76 = load ptr, ptr %75, align 8, !tbaa !1658, !noalias !1883 - %77 = invoke noundef ptr %76(ptr noundef nonnull align 8 dereferenceable(40) %5) + %77 = invoke noundef ptr %76(ptr noundef nonnull align 8 dereferenceable(48) %5) to label %78 unwind label %80 78: ; preds = %68 @@ -100789,7 +100789,7 @@ define linkonce_odr dso_local void @_ZN4crow6Router14handle_initialERNS_7request br i1 %1364, label %_ZN4crow6loggerlsIA20_cEERS0_RKT_.exit, label %1365 1365: ; preds = %1361 - %1366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.505, i64 noundef 19) + %1366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(380) %42, ptr noundef nonnull @.str.505, i64 noundef 19) to label %._ZN4crow6loggerlsIA20_cEERS0_RKT_.exit_crit_edge unwind label %1396 ._ZN4crow6loggerlsIA20_cEERS0_RKT_.exit_crit_edge: ; preds = %1365 @@ -100822,7 +100822,7 @@ _ZN4crow6loggerlsIA20_cEERS0_RKT_.exit: ; preds = %._ZN4crow6loggerlsI br i1 %1378, label %_ZN4crow6loggerlsIA3_cEERS0_RKT_.exit, label %1379 1379: ; preds = %1375 - %1380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.510, i64 noundef 2) + %1380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(380) %42, ptr noundef nonnull @.str.510, i64 noundef 2) to label %._ZN4crow6loggerlsIA3_cEERS0_RKT_.exit_crit_edge unwind label %1396 ._ZN4crow6loggerlsIA3_cEERS0_RKT_.exit_crit_edge: ; preds = %1379 diff --git a/bench/cvc5/optimized/cnf_stream.cpp.ll b/bench/cvc5/optimized/cnf_stream.cpp.ll index 2869379659f..163c533e46c 100644 --- a/bench/cvc5/optimized/cnf_stream.cpp.ll +++ b/bench/cvc5/optimized/cnf_stream.cpp.ll @@ -318,14 +318,14 @@ entry: %d_satSolver = getelementptr inbounds i8, ptr %this, i64 16 store ptr %satSolver, ptr %d_satSolver, align 8 %d_booleanVariables = getelementptr inbounds i8, ptr %this, i64 24 - tail call void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(40) %d_booleanVariables, ptr noundef %c) + tail call void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(74) %d_booleanVariables, ptr noundef %c) store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4_EESaIS4_EEE, i64 16), ptr %d_booleanVariables, align 8 %d_list.i = getelementptr inbounds i8, ptr %this, i64 64 %d_callCleanup.i = getelementptr inbounds i8, ptr %this, i64 96 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %d_list.i, i8 0, i64 32, i1 false) store i8 1, ptr %d_callCleanup.i, align 8 %d_notifyFormulas = getelementptr inbounds i8, ptr %this, i64 104 - invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(40) %d_notifyFormulas, ptr noundef %c) + invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(56) %d_notifyFormulas, ptr noundef %c) to label %.noexc unwind label %lpad2 .noexc: ; preds = %entry @@ -335,7 +335,7 @@ entry: call.i.i.noexc: ; preds = %.noexc tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %call.i.i9, i8 0, i64 136, i1 false) - invoke void @_ZNSt11_Deque_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %call.i.i9, i64 noundef 0) + invoke void @_ZNSt11_Deque_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(136) %call.i.i9, i64 noundef 0) to label %invoke.cont3 unwind label %lpad2.i.i lpad2.i.i: ; preds = %call.i.i.noexc @@ -362,7 +362,7 @@ invoke.cont3: ; preds = %call.i.i.noexc store i64 0, ptr %d_size.i.i, align 8 store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context9CDHashSetINS_8internal12NodeTemplateILb1EEESt4hashIS4_EEE, i64 16), ptr %d_notifyFormulas, align 8 %d_nodeToLiteralMap = getelementptr inbounds i8, ptr %this, i64 160 - invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(40) %d_nodeToLiteralMap, ptr noundef %c) + invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(56) %d_nodeToLiteralMap, ptr noundef %c) to label %.noexc10 unwind label %lpad4 .noexc10: ; preds = %invoke.cont3 @@ -372,7 +372,7 @@ invoke.cont3: ; preds = %call.i.i.noexc call.i.noexc: ; preds = %.noexc10 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %call.i11, i8 0, i64 136, i1 false) - invoke void @_ZNSt11_Deque_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %call.i11, i64 noundef 0) + invoke void @_ZNSt11_Deque_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(136) %call.i11, i64 noundef 0) to label %invoke.cont5 unwind label %lpad2.i lpad2.i: ; preds = %call.i.noexc @@ -398,7 +398,7 @@ invoke.cont5: ; preds = %call.i.noexc %d_size.i = getelementptr inbounds i8, ptr %this, i64 208 store i64 0, ptr %d_size.i, align 8 %d_literalToNodeMap = getelementptr inbounds i8, ptr %this, i64 216 - invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(40) %d_literalToNodeMap, ptr noundef %c) + invoke void @_ZN4cvc57context10ContextObjC2EPNS0_7ContextE(ptr noundef nonnull align 8 dereferenceable(56) %d_literalToNodeMap, ptr noundef %c) to label %.noexc22 unwind label %lpad6 .noexc22: ; preds = %invoke.cont5 @@ -408,7 +408,7 @@ invoke.cont5: ; preds = %call.i.noexc call.i.noexc23: ; preds = %.noexc22 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %call.i24, i8 0, i64 136, i1 false) - invoke void @_ZNSt11_Deque_baseIN4cvc58internal4prop10SatLiteralESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %call.i24, i64 noundef 0) + invoke void @_ZNSt11_Deque_baseIN4cvc58internal4prop10SatLiteralESaIS3_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(136) %call.i24, i64 noundef 0) to label %invoke.cont7 unwind label %lpad2.i13 lpad2.i13: ; preds = %call.i.noexc23 @@ -635,7 +635,7 @@ terminate.lpad: ; preds = %entry define linkonce_odr hidden void @_ZN4cvc57context9CDHashSetINS_8internal12NodeTemplateILb1EEESt4hashIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EEE, i64 16), ptr %this, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %this) to label %invoke.cont.i unwind label %terminate.lpad.i invoke.cont.i: ; preds = %entry @@ -955,7 +955,7 @@ for.body.i.i.i.i: ; preds = %for.cond.i.i.i.i if.end15.i.i.i.i: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit %d_hashMap.i.i = getelementptr inbounds i8, ptr %2, i64 80 - %call2.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %d_hashMap.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + %call2.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %call2.i.i.i.i.i.noexc unwind label %lpad call2.i.i.i.i.i.noexc: ; preds = %if.end15.i.i.i.i @@ -1167,7 +1167,7 @@ if.then: ; preds = %if.end3.i.i.i.i.i.i br i1 %cmp.i.i.i2, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i, label %if.then.i.i if.then.i.i: ; preds = %if.then - tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %d_literalToNodeMap) + tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %d_literalToNodeMap) %.pre = load ptr, ptr %d_insertMap.i, align 8 br label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i @@ -1202,7 +1202,7 @@ if.then.i.i.i: ; preds = %_ZN4cvc57context10C br label %_ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEE6insertERKS4_RKS6_.exit if.else.i.i.i: ; preds = %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i - call void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 8 dereferenceable(8) %lit) + call void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(136) %19, ptr noundef nonnull align 8 dereferenceable(8) %lit) %.pre34 = load i64, ptr %lit, align 8 br label %_ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEE6insertERKS4_RKS6_.exit @@ -1215,7 +1215,7 @@ _ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTempla %27 = load ptr, ptr %n, align 8, !noalias !14 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %nb.i.i), !noalias !14 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i.i), !noalias !14 - call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull %call.i, i32 noundef 18), !noalias !14 + call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull align 8 dereferenceable(3360) %call.i, i32 noundef 18), !noalias !14 store ptr %27, ptr %agg.tmp.i.i, align 8, !noalias !17 %call.i.i = invoke noundef nonnull align 8 dereferenceable(116) ptr @_ZN4cvc58internal11NodeBuilderlsENS0_12NodeTemplateILb0EEE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull %agg.tmp.i.i) to label %invoke.cont3.i.i unwind label %lpad2.i.i, !noalias !17 @@ -1258,7 +1258,7 @@ _ZNK4cvc58internal12NodeTemplateILb0EE7notNodeEv.exit: ; preds = %invoke.cont3.i br i1 %cmp.i.i.i8, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i10, label %if.then.i.i9 if.then.i.i9: ; preds = %_ZNK4cvc58internal12NodeTemplateILb0EE7notNodeEv.exit - invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %d_literalToNodeMap) + invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %d_literalToNodeMap) to label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i10 unwind label %lpad11 _ZN4cvc57context10ContextObj11makeCurrentEv.exit.i10: ; preds = %if.then.i.i9, %_ZNK4cvc58internal12NodeTemplateILb0EE7notNodeEv.exit @@ -1291,7 +1291,7 @@ if.then.i.i.i21: ; preds = %call.i.i2.i.i16.noe br label %invoke.cont12 if.else.i.i.i23: ; preds = %call.i.i2.i.i16.noexc - invoke void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %36, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + invoke void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(136) %36, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont12 unwind label %lpad11 invoke.cont12: ; preds = %if.then.i.i.i21, %if.else.i.i.i23 @@ -1385,7 +1385,7 @@ for.cond.i.i.i.i.i: ; preds = %for.cond.i.i.i.i.i, if.end15.i.i.i.i.i: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit %d_hashMap.i.i.i = getelementptr inbounds i8, ptr %2, i64 80 - %call2.i.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + %call2.i.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %call2.i.i.i.i.i.i.noexc unwind label %lpad call2.i.i.i.i.i.i.noexc: ; preds = %if.end15.i.i.i.i.i @@ -1708,7 +1708,7 @@ call.i.noexc: ; preds = %invoke.cont82 %24 = load ptr, ptr %n, align 8, !noalias !30 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %nb.i.i), !noalias !30 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i.i), !noalias !30 - invoke void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull %call.i82, i32 noundef 18) + invoke void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull align 8 dereferenceable(3360) %call.i82, i32 noundef 18) to label %.noexc unwind label %lpad36 .noexc: ; preds = %call.i.noexc @@ -2006,7 +2006,7 @@ entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc58internal9ExceptionE, i64 16), ptr %this, align 8 %d_msg.i = getelementptr inbounds i8, ptr %this, i64 8 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %d_msg.i) #24 - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #24 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) #24 ret void } @@ -2169,7 +2169,7 @@ for.body.i.i: ; preds = %for.cond.i.i br i1 %cmp.i.i.i.i.i, label %if.else, label %for.cond.i.i, !llvm.loop !37 if.end15.i.i: ; preds = %if.end - %call2.i.i.i160 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb0EEEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %cache, ptr noundef nonnull align 8 dereferenceable(8) %cur) + %call2.i.i.i160 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb0EEEEclERKS3_(ptr noundef nonnull align 8 dereferenceable(56) %cache, ptr noundef nonnull align 8 dereferenceable(8) %cur) to label %call2.i.i.i.noexc unwind label %lpad9.loopexit.split-lp.loopexit.loopexit call2.i.i.i.noexc: ; preds = %if.end15.i.i @@ -2774,7 +2774,7 @@ if.else: ; preds = %if.end3.i.i.i.i.i.i br i1 %cmp.i.i.i2, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i, label %if.then.i.i if.then.i.i: ; preds = %if.else - tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %this) %.pre = load ptr, ptr %d_insertMap.i, align 8 br label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i @@ -2810,7 +2810,7 @@ if.then.i.i.i: ; preds = %_ZN4cvc57context10C br label %_ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEE6insertERKS4_RKS6_.exit if.else.i.i.i: ; preds = %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i - call void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 8 dereferenceable(8) %k) + call void @_ZNSt5dequeIN4cvc58internal4prop10SatLiteralESaIS3_EE16_M_push_back_auxIJRKS3_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(136) %19, ptr noundef nonnull align 8 dereferenceable(8) %k) br label %_ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEE6insertERKS4_RKS6_.exit _ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEE6insertERKS4_RKS6_.exit: ; preds = %if.then.i.i.i, %if.else.i.i.i @@ -3055,7 +3055,7 @@ _ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit375: ; preds = %if.the br i1 %cmp.i.i.i, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i, label %if.then.i.i376 if.then.i.i376: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit375 - invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %d_nodeToLiteralMap) + invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %d_nodeToLiteralMap) to label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i unwind label %lpad76 _ZN4cvc57context10ContextObj11makeCurrentEv.exit.i: ; preds = %if.then.i.i376, %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit375 @@ -3100,7 +3100,7 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit389: ; preds = %invoke.cont77, %if %28 = load ptr, ptr %node, align 8, !noalias !55 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %nb.i.i), !noalias !55 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i.i), !noalias !55 - call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull %call.i390, i32 noundef 18), !noalias !55 + call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull align 8 dereferenceable(3360) %call.i390, i32 noundef 18), !noalias !55 store ptr %28, ptr %agg.tmp.i.i, align 8, !noalias !58 %call.i.i391 = invoke noundef nonnull align 8 dereferenceable(116) ptr @_ZN4cvc58internal11NodeBuilderlsENS0_12NodeTemplateILb0EEE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i, ptr noundef nonnull %agg.tmp.i.i) to label %invoke.cont3.i.i unwind label %lpad2.i.i, !noalias !58 @@ -3145,7 +3145,7 @@ invoke.cont82: ; preds = %invoke.cont3.i.i br i1 %cmp.i.i.i395, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i397, label %if.then.i.i396 if.then.i.i396: ; preds = %invoke.cont82 - invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %d_nodeToLiteralMap) + invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %d_nodeToLiteralMap) to label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i397 unwind label %lpad81 _ZN4cvc57context10ContextObj11makeCurrentEv.exit.i397: ; preds = %if.then.i.i396, %invoke.cont82 @@ -3220,7 +3220,7 @@ if.then110: ; preds = %lor.lhs.false, %if. %46 = load ptr, ptr %node, align 8, !noalias !61 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %nb.i.i482), !noalias !61 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i.i483), !noalias !61 - call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i482, ptr noundef nonnull %call.i484, i32 noundef 18), !noalias !61 + call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i482, ptr noundef nonnull align 8 dereferenceable(3360) %call.i484, i32 noundef 18), !noalias !61 store ptr %46, ptr %agg.tmp.i.i483, align 8, !noalias !64 %call.i.i485 = invoke noundef nonnull align 8 dereferenceable(116) ptr @_ZN4cvc58internal11NodeBuilderlsENS0_12NodeTemplateILb0EEE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i.i482, ptr noundef nonnull %agg.tmp.i.i483) to label %invoke.cont3.i.i489 unwind label %lpad2.i.i486, !noalias !64 @@ -3526,7 +3526,7 @@ for.body.i.i.i.i.i: ; preds = %for.cond.i.i.i.i.i if.end15.i.i.i.i.i: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit %d_hashMap.i.i.i = getelementptr inbounds i8, ptr %2, i64 80 - %call2.i.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2) + %call2.i.i.i.i.i.i1 = invoke noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2) to label %call2.i.i.i.i.i.i.noexc unwind label %lpad call2.i.i.i.i.i.i.noexc: ; preds = %if.end15.i.i.i.i.i @@ -4086,7 +4086,7 @@ cond.false: ; preds = %entry %3 = load ptr, ptr %this, align 8 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %nb.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i) - call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i, ptr noundef nonnull %call3, i32 noundef 18) + call void @_ZN4cvc58internal11NodeBuilderC1EPNS0_11NodeManagerENS0_4kind6Kind_tE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i, ptr noundef nonnull align 8 dereferenceable(3360) %call3, i32 noundef 18) store ptr %3, ptr %agg.tmp.i, align 8, !noalias !78 %call.i = invoke noundef nonnull align 8 dereferenceable(116) ptr @_ZN4cvc58internal11NodeBuilderlsENS0_12NodeTemplateILb0EEE(ptr noundef nonnull align 8 dereferenceable(116) %nb.i, ptr noundef nonnull %agg.tmp.i) to label %invoke.cont3.i unwind label %lpad2.i, !noalias !78 @@ -5666,11 +5666,7 @@ if.then.i.i: ; preds = %if.else _ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %if.else store i64 0, ptr %clause, align 8 %cmp.not.i.i.i.i = icmp eq i32 %cond.i.i, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.inc.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %clause, align 8 - br label %invoke.cont19 + br i1 %cmp.not.i.i.i.i, label %invoke.cont19, label %for.inc.preheader.i.i.i.i.i for.inc.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv16, 3 @@ -5681,10 +5677,10 @@ for.inc.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN4cvc5 %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i141, i64 %mul.i.i.i.i.i.i br label %invoke.cont19 -invoke.cont19: ; preds = %for.inc.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i - %3 = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %call5.i.i.i.i2.i.i141, %for.inc.preheader.i.i.i.i.i ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.inc.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.inc.preheader.i.i.i.i.i ] +invoke.cont19: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.inc.preheader.i.i.i.i.i + %3 = phi ptr [ %call5.i.i.i.i2.i.i141, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %clause, i64 8 %4 = getelementptr inbounds i8, ptr %clause, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %4, align 8 @@ -6213,11 +6209,7 @@ if.then.i.i: ; preds = %if.then _ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %if.then store i64 0, ptr %clause, align 8 %cmp.not.i.i.i.i = icmp eq i32 %cond.i.i, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i, label %for.inc.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %clause, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.inc.preheader.i.i.i.i.i for.inc.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv11, 3 @@ -6228,10 +6220,10 @@ for.inc.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN4cvc5 %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i131, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.inc.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i - %1 = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %call5.i.i.i.i2.i.i131, %for.inc.preheader.i.i.i.i.i ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %add.ptr.i.i.i, %for.inc.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EEC2EmRKS4_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.inc.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %for.inc.preheader.i.i.i.i.i + %1 = phi ptr [ %call5.i.i.i.i2.i.i131, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.inc.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %clause, i64 8 %2 = getelementptr inbounds i8, ptr %clause, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %2, align 8 @@ -7684,7 +7676,7 @@ entry: tail call void @_ZN4cvc57context15CDInsertHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb0EEENS3_22SatLiteralHashFunctionEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %d_literalToNodeMap) #24 %d_nodeToLiteralMap = getelementptr inbounds i8, ptr %this, i64 160 store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EEE, i64 16), ptr %d_nodeToLiteralMap, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %d_nodeToLiteralMap) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %d_nodeToLiteralMap) to label %invoke.cont.i unwind label %terminate.lpad.i invoke.cont.i: ; preds = %entry @@ -7708,7 +7700,7 @@ terminate.lpad.i: ; preds = %entry _ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EED2Ev.exit: ; preds = %invoke.cont.i, %delete.notnull.i %d_notifyFormulas = getelementptr inbounds i8, ptr %this, i64 104 store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EEE, i64 16), ptr %d_notifyFormulas, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %d_notifyFormulas) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %d_notifyFormulas) to label %invoke.cont.i.i unwind label %terminate.lpad.i.i invoke.cont.i.i: ; preds = %_ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EED2Ev.exit @@ -7732,7 +7724,7 @@ terminate.lpad.i.i: ; preds = %_ZN4cvc57context15C _ZN4cvc57context9CDHashSetINS_8internal12NodeTemplateILb1EEESt4hashIS4_EED2Ev.exit: ; preds = %invoke.cont.i.i, %delete.notnull.i.i %d_booleanVariables = getelementptr inbounds i8, ptr %this, i64 24 store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4_EESaIS4_EEE, i64 16), ptr %d_booleanVariables, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %d_booleanVariables) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(74) %d_booleanVariables) to label %invoke.cont.i2 unwind label %terminate.lpad.i1 invoke.cont.i2: ; preds = %_ZN4cvc57context9CDHashSetINS_8internal12NodeTemplateILb1EEESt4hashIS4_EED2Ev.exit @@ -7954,7 +7946,7 @@ _ZN4cvc57context13InsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EE8 %9 = phi ptr [ %add.ptr.i.i.i.i.i, %if.then.i.i.i.i ], [ %4, %while.body.i ] %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %9, i64 -8 %call.i.i.i.i = tail call noundef i64 @_ZNSt10_HashtableIKN4cvc58internal12NodeTemplateILb1EEESt4pairIS4_KbESaIS7_ENSt8__detail10_Select1stESt8equal_toIS4_ESt4hashIS3_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseESt17integral_constantIbLb1EERS4_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i, ptr noundef nonnull align 8 dereferenceable(8) %incdec.ptr.i.i.i.i) - tail call void @_ZNSt5dequeIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %1) #24 + tail call void @_ZNSt5dequeIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(136) %1) #24 br label %while.cond.i, !llvm.loop !178 _ZN4cvc57context13InsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EE11pop_to_sizeEm.exit: ; preds = %while.cond.i @@ -7996,7 +7988,7 @@ terminate.lpad: ; preds = %entry define linkonce_odr hidden void @_ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EED0Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EEE, i64 16), ptr %this, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %this) to label %invoke.cont.i unwind label %terminate.lpad.i invoke.cont.i: ; preds = %entry @@ -8748,7 +8740,7 @@ _ZN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4 define linkonce_odr hidden void @_ZN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4_EESaIS4_EED0Ev(ptr noundef nonnull align 8 dereferenceable(74) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4_EESaIS4_EEE, i64 16), ptr %this, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(74) %this) to label %invoke.cont.i unwind label %terminate.lpad.i invoke.cont.i: ; preds = %entry @@ -8809,7 +8801,7 @@ _ZN4cvc57context6CDListINS_8internal12NodeTemplateILb0EEENS0_14DefaultCleanUpIS4 define linkonce_odr hidden void @_ZN4cvc57context9CDHashSetINS_8internal12NodeTemplateILb1EEESt4hashIS4_EED0Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EEE, i64 16), ptr %this, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %this) to label %invoke.cont.i.i unwind label %terminate.lpad.i.i invoke.cont.i.i: ; preds = %entry @@ -9070,7 +9062,7 @@ _ZN4cvc57context13InsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatL %9 = phi ptr [ %add.ptr.i.i.i.i.i, %if.then.i.i.i.i ], [ %4, %while.body.i ] %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %9, i64 -8 %call.i.i.i.i = tail call noundef i64 @_ZNSt10_HashtableIKN4cvc58internal12NodeTemplateILb1EEESt4pairIS4_KNS1_4prop10SatLiteralEESaIS9_ENSt8__detail10_Select1stESt8equal_toIS4_ESt4hashIS3_ENSB_18_Mod_range_hashingENSB_20_Default_ranged_hashENSB_20_Prime_rehash_policyENSB_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseESt17integral_constantIbLb1EERS4_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i, ptr noundef nonnull align 8 dereferenceable(8) %incdec.ptr.i.i.i.i) - tail call void @_ZNSt5dequeIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %1) #24 + tail call void @_ZNSt5dequeIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(136) %1) #24 br label %while.cond.i, !llvm.loop !190 _ZN4cvc57context13InsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EE11pop_to_sizeEm.exit: ; preds = %while.cond.i @@ -9083,7 +9075,7 @@ _ZN4cvc57context13InsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatL define linkonce_odr hidden void @_ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EED0Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EEE, i64 16), ptr %this, align 8 - invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + invoke void @_ZN4cvc57context10ContextObj7destroyEv(ptr noundef nonnull align 8 dereferenceable(56) %this) to label %invoke.cont.i unwind label %terminate.lpad.i invoke.cont.i: ; preds = %entry @@ -10417,7 +10409,7 @@ for.body.i.i.i.i.i: ; preds = %for.cond.i.i.i.i.i if.end15.i.i.i.i.i: ; preds = %entry %d_hashMap.i.i.i = getelementptr inbounds i8, ptr %0, i64 80 - %call2.i.i.i.i.i.i = tail call noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %k) + %call2.i.i.i.i.i.i = tail call noundef i64 @_ZNKSt4hashIN4cvc58internal12NodeTemplateILb1EEEEclERKS3_(ptr noundef nonnull align 8 dereferenceable(56) %d_hashMap.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %k) %_M_bucket_count.i.i.i.i.i.i = getelementptr inbounds i8, ptr %0, i64 88 %4 = load i64, ptr %_M_bucket_count.i.i.i.i.i.i, align 8 %rem.i.i.i.i.i.i.i.i = urem i64 %call2.i.i.i.i.i.i, %4 @@ -10472,7 +10464,7 @@ if.else: ; preds = %if.end3.i.i.i.i.i.i br i1 %cmp.i.i.i2, label %_ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EE6insertERKS4_RKb.exit, label %if.then.i.i if.then.i.i: ; preds = %if.else - tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(40) %this) + tail call void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(56) %this) br label %_ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EE6insertERKS4_RKb.exit _ZN4cvc57context15CDInsertHashMapINS_8internal12NodeTemplateILb1EEEbSt4hashIS4_EE6insertERKS4_RKb.exit: ; preds = %if.else, %if.then.i.i diff --git a/bench/double_conversion/optimized/bignum-dtoa.cc.ll b/bench/double_conversion/optimized/bignum-dtoa.cc.ll index 401960bbd5a..6c990a722fa 100644 --- a/bench/double_conversion/optimized/bignum-dtoa.cc.ll +++ b/bench/double_conversion/optimized/bignum-dtoa.cc.ll @@ -110,7 +110,7 @@ if.end26: ; preds = %_ZN17double_convers if.then.i: ; preds = %if.end26 call void @_ZN17double_conversion6Bignum12AssignUInt64Em(ptr noundef nonnull align 4 dereferenceable(516) %numerator, i64 noundef %significand.0) - call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %numerator, i32 noundef %exponent.0) + call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %numerator, i32 noundef range(i32 0, -2147483648) %exponent.0) call void @_ZN17double_conversion6Bignum17AssignPowerUInt16Eti(ptr noundef nonnull align 4 dereferenceable(516) %denominator, i16 noundef zeroext 10, i32 noundef %conv1.i) br i1 %7, label %if.then.i.i, label %_ZN17double_conversionL24InitialScaledStartValuesEmibibPNS_6BignumES1_S1_S1_.exit @@ -118,9 +118,9 @@ if.then.i.i: ; preds = %if.then.i call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %denominator, i32 noundef 1) call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %numerator, i32 noundef 1) call void @_ZN17double_conversion6Bignum12AssignUInt16Et(ptr noundef nonnull align 4 dereferenceable(516) %delta_plus, i16 noundef zeroext 1) - call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %delta_plus, i32 noundef %exponent.0) + call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %delta_plus, i32 noundef range(i32 0, -2147483648) %exponent.0) call void @_ZN17double_conversion6Bignum12AssignUInt16Et(ptr noundef nonnull align 4 dereferenceable(516) %delta_minus, i16 noundef zeroext 1) - call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %delta_minus, i32 noundef %exponent.0) + call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %delta_minus, i32 noundef range(i32 0, -2147483648) %exponent.0) br label %if.end7.i if.else.i: ; preds = %if.end26 @@ -129,7 +129,7 @@ if.else.i: ; preds = %if.end26 if.then3.i: ; preds = %if.else.i call void @_ZN17double_conversion6Bignum12AssignUInt64Em(ptr noundef nonnull align 4 dereferenceable(516) %numerator, i64 noundef %significand.0) - call void @_ZN17double_conversion6Bignum17AssignPowerUInt16Eti(ptr noundef nonnull align 4 dereferenceable(516) %denominator, i16 noundef zeroext 10, i32 noundef %conv1.i) + call void @_ZN17double_conversion6Bignum17AssignPowerUInt16Eti(ptr noundef nonnull align 4 dereferenceable(516) %denominator, i16 noundef zeroext 10, i32 noundef range(i32 0, -2147483648) %conv1.i) %sub.i.i = sub nsw i32 0, %exponent.0 call void @_ZN17double_conversion6Bignum9ShiftLeftEi(ptr noundef nonnull align 4 dereferenceable(516) %denominator, i32 noundef %sub.i.i) br i1 %7, label %if.then.i23.i, label %_ZN17double_conversionL24InitialScaledStartValuesEmibibPNS_6BignumES1_S1_S1_.exit @@ -405,7 +405,7 @@ if.else8.i: ; preds = %if.then4.i if.else9.i: ; preds = %if.else.i63 %add.i65 = add nsw i32 %24, %requested_digits - call fastcc void @_ZN17double_conversionL21GenerateCountedDigitsEiPiPNS_6BignumES2_NS_6VectorIcEES0_(i32 noundef %add.i65, ptr noundef nonnull %decimal_point, ptr noundef %numerator, ptr noundef %denominator, ptr %buffer.coerce0, ptr noundef %length) + call fastcc void @_ZN17double_conversionL21GenerateCountedDigitsEiPiPNS_6BignumES2_NS_6VectorIcEES0_(i32 noundef %add.i65, ptr noundef nonnull %decimal_point, ptr noundef nonnull %numerator, ptr noundef nonnull %denominator, ptr %buffer.coerce0, ptr noundef %length) br label %sw.epilog sw.bb32: ; preds = %_ZN17double_conversionL15FixupMultiply10EibPiPNS_6BignumES2_S2_S2_.exit diff --git a/bench/faiss/optimized/NSG.cpp.ll b/bench/faiss/optimized/NSG.cpp.ll index 3d27e53795e..5a545ad5404 100644 --- a/bench/faiss/optimized/NSG.cpp.ll +++ b/bench/faiss/optimized/NSG.cpp.ll @@ -2144,7 +2144,7 @@ _ZN5faiss3nsg5GraphINS_4NodeEED2Ev.exit: ; preds = %_ZSt6fill_nIPiliET_ to label %132 unwind label %151 132: ; preds = %_ZN5faiss3nsg5GraphINS_4NodeEED2Ev.exit - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @2, i32 1, ptr nonnull @_ZNK5faiss3NSG11check_graphEv.omp_outlined, ptr nonnull %0) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @2, i32 1, ptr nonnull @_ZNK5faiss3NSG11check_graphEv.omp_outlined, ptr nonnull align 8 dereferenceable(5048) %0) store i8 1, ptr %10, align 8 br i1 %4, label %.preheader66, label %165 @@ -2455,7 +2455,7 @@ _ZN5faiss3nsg25storage_distance_computerEPKNS_5IndexE.exit: ; preds = %._ZN5fais unreachable _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %67 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %6, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq i32 %68, 0 br i1 %.not.i.i.i.i.i, label %78, label %.noexc3.i @@ -2605,10 +2605,6 @@ _ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i: ; preds = %5 %.not.i.i.i.i = icmp eq i32 %8, 0 br i1 %.not.i.i.i.i, label %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i, label %.lr.ph.preheader.i.i.i.i.i -_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i: ; preds = %_ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i - store i64 0, ptr %7, align 8 - br label %14 - .lr.ph.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i %11 = mul nuw nsw i64 %9, 40 %12 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %11) #21 @@ -2616,25 +2612,25 @@ _ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i: ; preds = %_ZNSt6ve %13 = getelementptr inbounds %"class.std::mutex", ptr %12, i64 %9 call void @llvm.memset.p0.i64(ptr nonnull align 8 %12, i8 0, i64 %11, i1 false) %scevgep.i.i.i.i.i = getelementptr i8, ptr %12, i64 %11 - br label %14 - -14: ; preds = %.lr.ph.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i - %.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i ], [ %13, %.lr.ph.preheader.i.i.i.i.i ] - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ] - %15 = getelementptr inbounds i8, ptr %7, i64 8 - %16 = getelementptr inbounds i8, ptr %7, i64 16 - store ptr %.sink.i, ptr %16, align 8 - store ptr %.0.lcssa.i.i.i.i.i, ptr %15, align 8 + br label %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i + +_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i: ; preds = %_ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i, %.lr.ph.preheader.i.i.i.i.i + %.sink.i = phi ptr [ %13, %.lr.ph.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i ] + %.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorISt5mutexSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i ] + %14 = getelementptr inbounds i8, ptr %7, i64 8 + %15 = getelementptr inbounds i8, ptr %7, i64 16 + store ptr %.sink.i, ptr %15, align 8 + store ptr %.0.lcssa.i.i.i.i.i, ptr %14, align 8 call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @2, i32 4, ptr nonnull @_ZN5faiss3NSG4linkEPNS_5IndexERKNS_3nsg5GraphIlEERNS4_INS_4NodeEEEb.omp_outlined.10, ptr nonnull %6, ptr nonnull %0, ptr nonnull %7, ptr nonnull %3) - %17 = load ptr, ptr %7, align 8 - %.not.i.i.i = icmp eq ptr %17, null - br i1 %.not.i.i.i, label %_ZNSt6vectorISt5mutexSaIS0_EED2Ev.exit, label %18 + %16 = load ptr, ptr %7, align 8 + %.not.i.i.i = icmp eq ptr %16, null + br i1 %.not.i.i.i, label %_ZNSt6vectorISt5mutexSaIS0_EED2Ev.exit, label %17 -18: ; preds = %14 - call void @_ZdlPv(ptr noundef nonnull %17) #22 +17: ; preds = %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i + call void @_ZdlPv(ptr noundef nonnull %16) #22 br label %_ZNSt6vectorISt5mutexSaIS0_EED2Ev.exit -_ZNSt6vectorISt5mutexSaIS0_EED2Ev.exit: ; preds = %14, %18 +_ZNSt6vectorISt5mutexSaIS0_EED2Ev.exit: ; preds = %_ZNSt12_Vector_baseISt5mutexSaIS0_EEC2EmRKS1_.exit.thread.i, %17 ret void } @@ -2768,7 +2764,7 @@ define noundef i32 @_ZN5faiss3NSG9tree_growEPNS_5IndexERSt6vectorIiSaIiEE(ptr no unreachable _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %3 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %4, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq i32 %8, 0 br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i15, label %.noexc3.i @@ -2791,7 +2787,7 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %3 _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i15: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %18 = getelementptr inbounds i8, ptr %4, i64 24 store i8 1, ptr %18, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %5, i8 0, i64 24, i1 false) br label %_ZN5faiss12VisitedTableC2Ei.exit21 .noexc3.i17: ; preds = %17, %.noexc3.i @@ -2800,7 +2796,7 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i15: ; preds = %_ZNSt6vect store ptr %.0.i.i.i.i.i.i.ph, ptr %19, align 8 %20 = getelementptr inbounds i8, ptr %4, i64 24 store i8 1, ptr %20, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %5, i8 0, i64 24, i1 false) %21 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %9) #21 to label %.noexc20 unwind label %_ZN5faiss12VisitedTableD2Ev.exit.thread @@ -3561,7 +3557,7 @@ define internal void @_ZN5faiss3NSG4linkEPNS_5IndexERKNS_3nsg5GraphIlEERNS4_INS_ unreachable _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %22 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(25) %9, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq i32 %23, 0 br i1 %.not.i.i.i.i.i, label %33, label %.noexc3.i @@ -4932,7 +4928,7 @@ define void @_ZN5faiss3NSG17add_reverse_linksEiRSt6vectorISt5mutexSaIS2_EERNS_16 %22 = sext i32 %17 to i64 %23 = load ptr, ptr %2, align 8 %24 = getelementptr inbounds %"class.std::mutex", ptr %23, i64 %22 - %25 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %24) #15 + %25 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %24) #15 %.not.i.i = icmp eq i32 %25, 0 br i1 %.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit.preheader, label %29 @@ -4942,7 +4938,7 @@ _ZNSt10lock_guardISt5mutexEC2ERS0_.exit.preheader: ; preds = %19 br i1 %27, label %.lr.ph, label %.critedge76.thread .critedge76.thread: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit.preheader - %28 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %24) #15 + %28 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %24) #15 br label %74 29: ; preds = %19 @@ -5067,18 +5063,18 @@ _ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit: ; preds = %_ZNSt6vector 68: ; preds = %.loopexit.split-lp188, %.loopexit187 %lpad.phi191 = phi { ptr, i32 } [ %lpad.loopexit189, %.loopexit187 ], [ %lpad.loopexit.split-lp190, %.loopexit.split-lp188 ] - %69 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %24) #15 + %69 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %24) #15 br label %_ZNSt6vectorIN5faiss4NodeESaIS1_EED2Ev.exit 70: ; preds = %38 - %71 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %24) #15 + %71 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %24) #15 br label %_ZNSt6vectorIN5faiss4NodeESaIS1_EED2Ev.exit122 .critedge76: ; preds = %.lr.ph, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit %.sroa.23.1.lcssa = phi ptr [ %.sroa.23.1256, %.lr.ph ], [ %.sroa.23.3, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit ] %.sroa.12.1.lcssa = phi ptr [ %.sroa.12.1257, %.lr.ph ], [ %.sroa.12.3, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit ] %.sroa.0151.2.lcssa = phi ptr [ %.sroa.0151.2258, %.lr.ph ], [ %.sroa.0151.5, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit ] - %72 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %24) #15 + %72 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %24) #15 %.not.i81 = icmp eq ptr %.sroa.12.1.lcssa, %.sroa.23.1.lcssa br i1 %.not.i81, label %74, label %73 @@ -5323,7 +5319,7 @@ _ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit117: ; preds = %118, %131 %.lcssa214 = phi i64 [ 1, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit105 ], [ %152, %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit117 ], [ %112, %.lr.ph275 ] %156 = load ptr, ptr %2, align 8 %157 = getelementptr inbounds %"class.std::mutex", ptr %156, i64 %22 - %158 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %157) #15 + %158 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %157) #15 %.not.i.i118 = icmp eq i32 %158, 0 br i1 %.not.i.i118, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit120.preheader, label %159 @@ -5355,14 +5351,14 @@ _ZNSt10lock_guardISt5mutexEC2ERS0_.exit120: ; preds = %_ZNSt10lock_guardIS br i1 %exitcond348.not, label %.loopexit355, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit120, !llvm.loop !64 .loopexit355: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit120, %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit120.preheader - %169 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %157) #15 + %169 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %157) #15 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0131.3.lcssa) #22 br label %_ZNSt6vectorIN5faiss4NodeESaIS1_EED2Ev.exit122 170: ; preds = %_ZNSt6vectorIN5faiss4NodeESaIS1_EE9push_backERKS1_.exit91 %171 = load ptr, ptr %2, align 8 %172 = getelementptr inbounds %"class.std::mutex", ptr %171, i64 %22 - %173 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %172) #15 + %173 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %172) #15 %.not.i.i123 = icmp eq i32 %173, 0 br i1 %.not.i.i123, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit125.preheader, label %180 @@ -5407,7 +5403,7 @@ _ZNSt10lock_guardISt5mutexEC2ERS0_.exit125: ; preds = %181 br label %.loopexit186 .loopexit186: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit125, %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit125.preheader, %186 - %188 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %172) #15 + %188 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %172) #15 br label %_ZNSt6vectorIN5faiss4NodeESaIS1_EED2Ev.exit122 _ZNSt6vectorIN5faiss4NodeESaIS1_EED2Ev.exit122: ; preds = %.loopexit355, %.loopexit186, %70 diff --git a/bench/flatbuffers/optimized/util.cpp.ll b/bench/flatbuffers/optimized/util.cpp.ll index f33c8a7aaa1..3bab5f8a249 100644 --- a/bench/flatbuffers/optimized/util.cpp.ll +++ b/bench/flatbuffers/optimized/util.cpp.ll @@ -366,7 +366,7 @@ cond.false: ; preds = %entry to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %cond.false - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -376,7 +376,7 @@ call.i.noexc: ; preds = %cond.false lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #17 br label %lpad.body cond.end: ; preds = %entry @@ -445,7 +445,7 @@ cond.false: ; preds = %entry to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %cond.false - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -455,7 +455,7 @@ call.i.noexc: ; preds = %cond.false lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #17 br label %lpad.body cond.end: ; preds = %entry @@ -598,7 +598,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i1, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i1, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -615,7 +615,7 @@ invoke.cont.i: ; preds = %if.then.i lpad.i: ; preds = %if.end.i, %if.then.i %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #17 br label %lpad.body if.end.i: ; preds = %.noexc @@ -871,7 +871,7 @@ while.end33: ; preds = %while.end33.loopexi to label %call.i18.noexc unwind label %lpad35 call.i18.noexc: ; preds = %while.end33 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i1819, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp34) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i1819, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp34) to label %.noexc unwind label %lpad35 .noexc: ; preds = %call.i18.noexc @@ -881,7 +881,7 @@ call.i18.noexc: ; preds = %while.end33 lpad.i: ; preds = %.noexc %12 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #17 br label %lpad35.body invoke.cont36: ; preds = %.noexc @@ -1050,13 +1050,13 @@ if.then2: ; preds = %entry to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %if.then2 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) to label %if.end.i unwind label %lpad lpad.i: ; preds = %if.end.i %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #17 br label %lpad.body if.end.i: ; preds = %call.i.noexc @@ -1108,13 +1108,13 @@ if.then2: ; preds = %entry to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %if.then2 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) to label %if.end.i unwind label %lpad lpad.i: ; preds = %if.end.i %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #17 br label %lpad.body if.end.i: ; preds = %call.i.noexc @@ -1451,7 +1451,7 @@ invoke.cont13: ; preds = %sw.bb11 br i1 %tobool.not.i.i, label %return, label %if.then.i.i if.then.i.i: ; preds = %invoke.cont13 - %call.i.i46 = invoke noundef zeroext i1 %26(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp, i32 noundef 3) + %call.i.i46 = invoke noundef zeroext i1 %26(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, i32 noundef 3) to label %return unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then.i.i @@ -1469,7 +1469,7 @@ lpad12: ; preds = %sw.bb11 br i1 %tobool.not.i.i48, label %common.resume, label %if.then.i.i49 if.then.i.i49: ; preds = %lpad12 - %call.i.i50 = invoke noundef zeroext i1 %30(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp, i32 noundef 3) + %call.i.i50 = invoke noundef zeroext i1 %30(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, i32 noundef 3) to label %common.resume unwind label %terminate.lpad.i.i51 terminate.lpad.i.i51: ; preds = %if.then.i.i49 @@ -1496,7 +1496,7 @@ invoke.cont17: ; preds = %sw.bb14 br i1 %tobool.not.i.i57, label %return, label %if.then.i.i58 if.then.i.i58: ; preds = %invoke.cont17 - %call.i.i59 = invoke noundef zeroext i1 %34(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp15, ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp15, i32 noundef 3) + %call.i.i59 = invoke noundef zeroext i1 %34(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp15, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp15, i32 noundef 3) to label %return unwind label %terminate.lpad.i.i60 terminate.lpad.i.i60: ; preds = %if.then.i.i58 @@ -1514,7 +1514,7 @@ lpad16: ; preds = %sw.bb14 br i1 %tobool.not.i.i63, label %common.resume, label %if.then.i.i64 if.then.i.i64: ; preds = %lpad16 - %call.i.i65 = invoke noundef zeroext i1 %38(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp15, ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp15, i32 noundef 3) + %call.i.i65 = invoke noundef zeroext i1 %38(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp15, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp15, i32 noundef 3) to label %common.resume unwind label %terminate.lpad.i.i66 terminate.lpad.i.i66: ; preds = %if.then.i.i64 @@ -1829,7 +1829,7 @@ if.then.i: ; preds = %for.body if.end.i: ; preds = %for.body %2 = load ptr, ptr %_M_invoker.i, align 8 - %call2.i4 = invoke noundef signext i8 %2(ptr noundef nonnull align 8 dereferenceable(16) %transform, ptr noundef nonnull align 1 dereferenceable(1) %__args.addr.i) + %call2.i4 = invoke noundef signext i8 %2(ptr noundef nonnull align 8 dereferenceable(32) %transform, ptr noundef nonnull align 1 dereferenceable(1) %__args.addr.i) to label %invoke.cont unwind label %lpad.loopexit invoke.cont: ; preds = %if.end.i diff --git a/bench/fmt/optimized/assert-test.cc.ll b/bench/fmt/optimized/assert-test.cc.ll index 4b1c753447e..2c349b08a6f 100644 --- a/bench/fmt/optimized/assert-test.cc.ll +++ b/bench/fmt/optimized/assert-test.cc.ll @@ -701,7 +701,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i2, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i2, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -718,7 +718,7 @@ invoke.cont.i: ; preds = %if.then.i lpad.i: ; preds = %if.end.i, %if.then.i %1 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #15 br label %ehcleanup.thread if.end.i: ; preds = %.noexc @@ -1273,7 +1273,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -1290,7 +1290,7 @@ invoke.cont.i: ; preds = %if.then.i lpad.i: ; preds = %if.end.i, %if.then.i %3 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #15 br label %ehcleanup if.end.i: ; preds = %.noexc @@ -1346,7 +1346,7 @@ entry: to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -1363,7 +1363,7 @@ invoke.cont.i: ; preds = %if.then.i lpad.i: ; preds = %if.end.i, %if.then.i %3 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #15 br label %ehcleanup if.end.i: ; preds = %.noexc @@ -1823,7 +1823,7 @@ entry: to label %call.i.noexc.i unwind label %lpad.i call.i.noexc.i: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp.i, ptr noundef %call.i4.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef %call.i4.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) to label %.noexc.i unwind label %lpad.i .noexc.i: ; preds = %call.i.noexc.i @@ -1833,11 +1833,11 @@ call.i.noexc.i: ; preds = %entry lpad.i.i: ; preds = %.noexc.i %1 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #15 br label %common.resume invoke.cont.i: ; preds = %.noexc.i - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %invoke.cont3.i unwind label %lpad2.i invoke.cont3.i: ; preds = %invoke.cont.i @@ -1876,7 +1876,7 @@ lpad2.i: ; preds = %invoke.cont.i lpad4.i: ; preds = %invoke.cont13.i, %invoke.cont8.i, %invoke.cont6.i, %invoke.cont5.i, %invoke.cont3.i %4 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i) #15 br label %ehcleanup16.i ehcleanup16.i: ; preds = %lpad4.i, %lpad2.i @@ -1891,7 +1891,7 @@ common.resume: ; preds = %lpad.i.i9, %lpad.i4 resume { ptr, i32 } %common.resume.op __cxx_global_var_init.1.exit: ; preds = %invoke.cont13.i - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i) #15 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #15 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) #15 store ptr %call15.i, ptr @_ZN21assert_test_fail_Test10test_info_E, align 8 @@ -1906,7 +1906,7 @@ __cxx_global_var_init.1.exit: ; preds = %invoke.cont13.i to label %call.i.noexc.i7 unwind label %lpad.i4 call.i.noexc.i7: ; preds = %__cxx_global_var_init.1.exit - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp.i2, ptr noundef %call.i3.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i2, ptr noundef %call.i3.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i3) to label %.noexc.i8 unwind label %lpad.i4 .noexc.i8: ; preds = %call.i.noexc.i7 @@ -1916,11 +1916,11 @@ call.i.noexc.i7: ; preds = %__cxx_global_var_in lpad.i.i9: ; preds = %.noexc.i8 %5 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i2) #15 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i2) #15 br label %common.resume invoke.cont.i10: ; preds = %.noexc.i8 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i1, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i1, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i2) to label %invoke.cont3.i13 unwind label %lpad2.i11 invoke.cont3.i13: ; preds = %invoke.cont.i10 @@ -1959,7 +1959,7 @@ lpad2.i11: ; preds = %invoke.cont.i10 lpad4.i16: ; preds = %invoke.cont10.i, %invoke.cont8.i21, %invoke.cont6.i19, %invoke.cont5.i17, %invoke.cont3.i13 %8 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i1) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i1) #15 br label %ehcleanup16.i12 ehcleanup16.i12: ; preds = %lpad4.i16, %lpad2.i11 @@ -1968,7 +1968,7 @@ ehcleanup16.i12: ; preds = %lpad4.i16, %lpad2.i br label %common.resume __cxx_global_var_init.5.exit: ; preds = %invoke.cont10.i - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i1) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i1) #15 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i2) #15 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i3) #15 store ptr %call15.i23, ptr @_ZN30assert_test_dangling_else_Test10test_info_E, align 8 diff --git a/bench/fmt/optimized/ranges-odr-test.cc.ll b/bench/fmt/optimized/ranges-odr-test.cc.ll index dd17c2f9721..ded43fdf5e2 100644 --- a/bench/fmt/optimized/ranges-odr-test.cc.ll +++ b/bench/fmt/optimized/ranges-odr-test.cc.ll @@ -376,7 +376,7 @@ entry: to label %invoke.cont7 unwind label %lpad5 invoke.cont7: ; preds = %entry - %call.i.i.i = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef nonnull @.str.7) #20, !noalias !8 + %call.i.i.i = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp3, ptr noundef nonnull align 1 dereferenceable(20) @.str.7) #20, !noalias !8 %cmp.i.i.i = icmp eq i32 %call.i.i.i, 0 br i1 %cmp.i.i.i, label %if.then.i.i, label %if.end.i.i @@ -6071,7 +6071,7 @@ _ZN7testing8internal33FormatForComparisonFailureMessageINSt7__cxx1112basic_strin .noexc: ; preds = %_ZN7testing8internal33FormatForComparisonFailureMessageINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA20_cEES7_RKT_RKT0_.exit %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %ss.i.i.i.i, i64 16 - invoke void @_ZN7testing8internal21UniversalTersePrinterIPKcE5PrintES3_PSo(ptr noundef nonnull %rhs, ptr noundef nonnull %add.ptr.i.i.i.i) + invoke void @_ZN7testing8internal21UniversalTersePrinterIPKcE5PrintES3_PSo(ptr noundef nonnull align 1 dereferenceable(20) %rhs, ptr noundef nonnull %add.ptr.i.i.i.i) to label %invoke.cont.i.i.i.i unwind label %lpad.i.i.i.i, !noalias !85 invoke.cont.i.i.i.i: ; preds = %.noexc @@ -6144,13 +6144,13 @@ if.else: ; preds = %entry to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %if.else - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i4, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i4, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1) to label %if.end.i unwind label %lpad lpad.i: ; preds = %if.end.i %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #20 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #20 br label %ehcleanup if.end.i: ; preds = %call.i.noexc @@ -6204,7 +6204,7 @@ entry: to label %call.i.noexc.i unwind label %lpad.i call.i.noexc.i: ; preds = %entry - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp.i, ptr noundef %call.i4.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef %call.i4.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) to label %.noexc.i unwind label %lpad.i .noexc.i: ; preds = %call.i.noexc.i @@ -6214,11 +6214,11 @@ call.i.noexc.i: ; preds = %entry lpad.i.i: ; preds = %.noexc.i %1 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #20 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #20 br label %ehcleanup17.i invoke.cont.i: ; preds = %.noexc.i - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %invoke.cont3.i unwind label %lpad2.i invoke.cont3.i: ; preds = %invoke.cont.i @@ -6257,7 +6257,7 @@ lpad2.i: ; preds = %invoke.cont.i lpad4.i: ; preds = %invoke.cont13.i, %invoke.cont8.i, %invoke.cont6.i, %invoke.cont5.i, %invoke.cont3.i %4 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i) #20 br label %ehcleanup16.i ehcleanup16.i: ; preds = %lpad4.i, %lpad2.i @@ -6271,7 +6271,7 @@ ehcleanup17.i: ; preds = %ehcleanup16.i, %lpa resume { ptr, i32 } %.pn.pn.pn.i __cxx_global_var_init.1.exit: ; preds = %invoke.cont13.i - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %agg.tmp.i) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #20 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) #20 store ptr %call15.i, ptr @_ZN34ranges_odr_test_format_vector_Test10test_info_E, align 8 diff --git a/bench/gromacs/optimized/mtop_util.cpp.ll b/bench/gromacs/optimized/mtop_util.cpp.ll index 552bf2761f8..3c707a3b25c 100644 --- a/bench/gromacs/optimized/mtop_util.cpp.ll +++ b/bench/gromacs/optimized/mtop_util.cpp.ll @@ -662,10 +662,10 @@ define void @_Z21gmx_mtop_global_atomsRK10gmx_mtop_t(ptr dead_on_unwind noalias %88 = add nsw i32 %24, %87 %89 = sext i32 %88 to i64 %90 = load ptr, ptr %16, align 8 - %91 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %90, i64 noundef %89, i64 noundef 36) + %91 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %90, i64 noundef range(i64 -2147483648, 2147483648) %89, i64 noundef 36) store ptr %91, ptr %16, align 8 %92 = load ptr, ptr %17, align 8 - %93 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %92, i64 noundef %89, i64 noundef 8) + %93 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %92, i64 noundef range(i64 -2147483648, 2147483648) %89, i64 noundef 8) store ptr %93, ptr %17, align 8 %94 = load i8, ptr %12, align 2 %95 = trunc i8 %94 to i1 @@ -673,7 +673,7 @@ define void @_Z21gmx_mtop_global_atomsRK10gmx_mtop_t(ptr dead_on_unwind noalias 96: ; preds = %86 %97 = load ptr, ptr %18, align 8 - %98 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %97, i64 noundef %89, i64 noundef 8) + %98 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %97, i64 noundef range(i64 -2147483648, 2147483648) %89, i64 noundef 8) store ptr %98, ptr %18, align 8 %99 = load i8, ptr %14, align 1 %100 = trunc i8 %99 to i1 @@ -681,7 +681,7 @@ define void @_Z21gmx_mtop_global_atomsRK10gmx_mtop_t(ptr dead_on_unwind noalias 101: ; preds = %96 %102 = load ptr, ptr %19, align 8 - %103 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %102, i64 noundef %89, i64 noundef 8) + %103 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %102, i64 noundef range(i64 -2147483648, 2147483648) %89, i64 noundef 8) store ptr %103, ptr %19, align 8 br label %104 @@ -692,7 +692,7 @@ define void @_Z21gmx_mtop_global_atomsRK10gmx_mtop_t(ptr dead_on_unwind noalias 107: ; preds = %104 %108 = load ptr, ptr %20, align 8 - %109 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %108, i64 noundef %89, i64 noundef 52) + %109 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %108, i64 noundef range(i64 -2147483648, 2147483648) %89, i64 noundef 52) store ptr %109, ptr %20, align 8 br label %110 @@ -708,7 +708,7 @@ define void @_Z21gmx_mtop_global_atomsRK10gmx_mtop_t(ptr dead_on_unwind noalias %116 = add nsw i32 %114, %115 %117 = sext i32 %116 to i64 %118 = load ptr, ptr %22, align 8 - %119 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %118, i64 noundef %117, i64 noundef 32) + %119 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %118, i64 noundef range(i64 -2147483648, 2147483648) %117, i64 noundef 32) store ptr %119, ptr %22, align 8 br label %120 @@ -1796,8 +1796,8 @@ _ZL13resizeIParamsPSt6vectorI9t_iparamsSaIS0_EEi.exit.i.i.i: ; preds = %421, %41 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #21 br label %common.resume.i.i -common.resume.i: ; preds = %998, %877, %705, %703, %common.resume.i.i - %common.resume.op.i = phi { ptr, i32 } [ %common.resume.op.i.i, %common.resume.i.i ], [ %lpad.phi.i.i, %877 ], [ %999, %998 ], [ %704, %705 ], [ %704, %703 ] +common.resume.i: ; preds = %999, %877, %705, %703, %common.resume.i.i + %common.resume.op.i = phi { ptr, i32 } [ %common.resume.op.i.i, %common.resume.i.i ], [ %lpad.phi.i.i, %877 ], [ %1000, %999 ], [ %704, %705 ], [ %704, %703 ] resume { ptr, i32 } %common.resume.op.i common.resume.i.i: ; preds = %543, %537, %450, %444 @@ -2673,7 +2673,7 @@ _ZL20globalExclusionListsRK10gmx_mtop_t.exit.i: ; preds = %._crit_edge.i19.i, store ptr %887, ptr %891, align 8 store ptr %886, ptr %892, align 8 %.not.i.i.i.i.i.i.i = icmp eq ptr %890, null - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %12, i8 0, i64 24, i1 false) br i1 %.not.i.i.i.i.i.i.i, label %_ZNSt6vectorIiSaIiEEaSEOS1_.exit.i.i, label %893 893: ; preds = %_ZL20globalExclusionListsRK10gmx_mtop_t.exit.i @@ -2851,77 +2851,78 @@ _ZN3gmx11ListOfListsIiED2Ev.exit.i: ; preds = %898, %_ZNSt6vectorI unreachable _ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i: ; preds = %._crit_edge.i31.i + store i64 0, ptr %5, align 8 %.not.i.i.i.i.i32.i = icmp eq i64 %975, 0 br i1 %.not.i.i.i.i.i32.i, label %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i, label %.lr.ph.preheader.i.i.i.i.i.i.i .lr.ph.preheader.i.i.i.i.i.i.i: ; preds = %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i %977 = mul nuw nsw i64 %975, 24 %978 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %977) #19 + store ptr %978, ptr %5, align 8 %979 = getelementptr inbounds %"struct.gmx::ExclusionBlock", ptr %978, i64 %975 call void @llvm.memset.p0.i64(ptr nonnull align 8 %978, i8 0, i64 %977, i1 false) %scevgep.i.i.i.i.i.i.i = getelementptr i8, ptr %978, i64 %977 br label %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i _ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i: ; preds = %.lr.ph.preheader.i.i.i.i.i.i.i, %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i - %.sink.i = phi ptr [ %978, %.lr.ph.preheader.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ] + %980 = phi ptr [ %978, %.lr.ph.preheader.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ] %.sink.i.i33.i = phi ptr [ %979, %.lr.ph.preheader.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ] %.0.lcssa.i.i.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ] - store ptr %.sink.i, ptr %5, align 8 - %980 = getelementptr inbounds i8, ptr %5, i64 8 - %981 = getelementptr inbounds i8, ptr %5, i64 16 - store ptr %.sink.i.i33.i, ptr %981, align 8 - store ptr %.0.lcssa.i.i.i.i.i.i.i, ptr %980, align 8 - %982 = ptrtoint ptr %.0.lcssa.i.i.i.i.i.i.i to i64 - %983 = ptrtoint ptr %.sink.i to i64 - %984 = sub i64 %982, %983 - %985 = getelementptr inbounds i8, ptr %.sink.i, i64 %984 - invoke void @_ZN3gmx23blockaToExclusionBlocksEPK8t_blockaNS_8ArrayRefINS_14ExclusionBlockEEE(ptr noundef nonnull %4, ptr %.sink.i, ptr %985) - to label %986 unwind label %998 - -986: ; preds = %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i - %987 = load ptr, ptr %5, align 8 - %988 = load ptr, ptr %980, align 8 - %989 = ptrtoint ptr %988 to i64 - %990 = ptrtoint ptr %987 to i64 - %991 = sub i64 %989, %990 - %992 = getelementptr inbounds i8, ptr %987, i64 %991 - invoke void @_ZN3gmx15mergeExclusionsEPNS_11ListOfListsIiEENS_8ArrayRefINS_14ExclusionBlockEEE(ptr noundef nonnull %889, ptr %987, ptr %992) - to label %993 unwind label %998 - -993: ; preds = %986 - %.not4.i.i.i.i.i.i = icmp eq ptr %987, %988 + %981 = getelementptr inbounds i8, ptr %5, i64 8 + %982 = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %.sink.i.i33.i, ptr %982, align 8 + store ptr %.0.lcssa.i.i.i.i.i.i.i, ptr %981, align 8 + %983 = ptrtoint ptr %.0.lcssa.i.i.i.i.i.i.i to i64 + %984 = ptrtoint ptr %980 to i64 + %985 = sub i64 %983, %984 + %986 = getelementptr inbounds i8, ptr %980, i64 %985 + invoke void @_ZN3gmx23blockaToExclusionBlocksEPK8t_blockaNS_8ArrayRefINS_14ExclusionBlockEEE(ptr noundef nonnull %4, ptr %980, ptr %986) + to label %987 unwind label %999 + +987: ; preds = %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i + %988 = load ptr, ptr %5, align 8 + %989 = load ptr, ptr %981, align 8 + %990 = ptrtoint ptr %989 to i64 + %991 = ptrtoint ptr %988 to i64 + %992 = sub i64 %990, %991 + %993 = getelementptr inbounds i8, ptr %988, i64 %992 + invoke void @_ZN3gmx15mergeExclusionsEPNS_11ListOfListsIiEENS_8ArrayRefINS_14ExclusionBlockEEE(ptr noundef nonnull %889, ptr %988, ptr %993) + to label %994 unwind label %999 + +994: ; preds = %987 + %.not4.i.i.i.i.i.i = icmp eq ptr %988, %989 br i1 %.not4.i.i.i.i.i.i, label %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i, label %.lr.ph.i.i.i.i.i.i -.lr.ph.i.i.i.i.i.i: ; preds = %993, %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i - %.05.i.i.i.i.i.i = phi ptr [ %996, %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i ], [ %987, %993 ] - %994 = load ptr, ptr %.05.i.i.i.i.i.i, align 8 - %.not.i.i.i.i.i.i.i.i.i.i34.i = icmp eq ptr %994, null - br i1 %.not.i.i.i.i.i.i.i.i.i.i34.i, label %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i, label %995 +.lr.ph.i.i.i.i.i.i: ; preds = %994, %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i + %.05.i.i.i.i.i.i = phi ptr [ %997, %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i ], [ %988, %994 ] + %995 = load ptr, ptr %.05.i.i.i.i.i.i, align 8 + %.not.i.i.i.i.i.i.i.i.i.i34.i = icmp eq ptr %995, null + br i1 %.not.i.i.i.i.i.i.i.i.i.i34.i, label %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i, label %996 -995: ; preds = %.lr.ph.i.i.i.i.i.i - call void @_ZdlPv(ptr noundef nonnull %994) #20 +996: ; preds = %.lr.ph.i.i.i.i.i.i + call void @_ZdlPv(ptr noundef nonnull %995) #20 br label %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i -_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i: ; preds = %995, %.lr.ph.i.i.i.i.i.i - %996 = getelementptr inbounds i8, ptr %.05.i.i.i.i.i.i, i64 24 - %.not.i.i.i.i47.i.i = icmp eq ptr %996, %988 +_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i: ; preds = %996, %.lr.ph.i.i.i.i.i.i + %997 = getelementptr inbounds i8, ptr %.05.i.i.i.i.i.i, i64 24 + %.not.i.i.i.i47.i.i = icmp eq ptr %997, %989 br i1 %.not.i.i.i.i47.i.i, label %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i, label %.lr.ph.i.i.i.i.i.i, !llvm.loop !38 -_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i: ; preds = %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i, %993 - %.not.i.i.i.i35.i = icmp eq ptr %987, null - br i1 %.not.i.i.i.i35.i, label %_ZL18addMimicExclusionsPN3gmx11ListOfListsIiEENS_8ArrayRefIKiEE.exit.i, label %997 +_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i: ; preds = %_ZSt8_DestroyIN3gmx14ExclusionBlockEEvPT_.exit.i.i.i.i.i.i, %994 + %.not.i.i.i.i35.i = icmp eq ptr %988, null + br i1 %.not.i.i.i.i35.i, label %_ZL18addMimicExclusionsPN3gmx11ListOfListsIiEENS_8ArrayRefIKiEE.exit.i, label %998 -997: ; preds = %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i - call void @_ZdlPv(ptr noundef nonnull %987) #20 +998: ; preds = %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i + call void @_ZdlPv(ptr noundef nonnull %988) #20 br label %_ZL18addMimicExclusionsPN3gmx11ListOfListsIiEENS_8ArrayRefIKiEE.exit.i -998: ; preds = %986, %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i - %999 = landingpad { ptr, i32 } +999: ; preds = %987, %_ZNSt12_Vector_baseIN3gmx14ExclusionBlockESaIS1_EEC2EmRKS2_.exit.thread.i.i.i + %1000 = landingpad { ptr, i32 } cleanup call void @_ZNSt6vectorIN3gmx14ExclusionBlockESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #21 br label %common.resume.i -_ZL18addMimicExclusionsPN3gmx11ListOfListsIiEENS_8ArrayRefIKiEE.exit.i: ; preds = %997, %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i +_ZL18addMimicExclusionsPN3gmx11ListOfListsIiEENS_8ArrayRefIKiEE.exit.i: ; preds = %998, %_ZSt8_DestroyIPN3gmx14ExclusionBlockES1_EvT_S3_RSaIT0_E.exit.i.i.i call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) br label %_ZL13gen_local_topRK10gmx_mtop_tbbP14gmx_localtop_t.exit @@ -3109,7 +3110,7 @@ define linkonce_odr void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC 8: ; preds = %10, %6 %9 = landingpad { ptr, i32 } cleanup - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #21 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #21 resume { ptr, i32 } %9 10: ; preds = %3 @@ -3126,7 +3127,7 @@ define linkonce_odr void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC define linkonce_odr void @_ZNSt10filesystem7__cxx114pathC2IA128_cS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 1 dereferenceable(128) %1, i8 noundef zeroext %2) unnamed_addr #2 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = alloca %"struct.std::__cxx11::basic_string::__sv_wrapper", align 8 %5 = alloca %"class.std::allocator.79", align 1 - %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #21 + %6 = tail call noundef i64 @strlen(ptr noundef nonnull align 1 dereferenceable(128) %1) #21 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #21 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %7 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %6, ptr nonnull %1) #21 @@ -3172,7 +3173,7 @@ define linkonce_odr void @_ZNSt10filesystem7__cxx114pathC2IA128_cS1_EERKT_NS1_6f br i1 %.not.i.i, label %_ZNSt10filesystem7__cxx114path5_ListD2Ev.exit, label %24 24: ; preds = %21 - call void @_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull %23) #21 + call void @_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull %23) #21 br label %_ZNSt10filesystem7__cxx114path5_ListD2Ev.exit _ZNSt10filesystem7__cxx114path5_ListD2Ev.exit: ; preds = %21, %24 @@ -3197,7 +3198,7 @@ define linkonce_odr void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull br i1 %.not.i.i, label %_ZNSt10filesystem7__cxx114path5_ListD2Ev.exit, label %4 4: ; preds = %1 - tail call void @_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull %3) #21 + tail call void @_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull %3) #21 br label %_ZNSt10filesystem7__cxx114path5_ListD2Ev.exit _ZNSt10filesystem7__cxx114path5_ListD2Ev.exit: ; preds = %1, %4 @@ -4201,7 +4202,7 @@ _ZL24copyFFParametersFromMtopRK10gmx_mtop_tP6t_idef.exit.i: ; preds = %60, %56, %107 = getelementptr inbounds i8, ptr %90, i64 8 %108 = sext i32 %105 to i64 %109 = load ptr, ptr %107, align 8 - %110 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %109, i64 noundef %108, i64 noundef 4) + %110 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %109, i64 noundef range(i64 -2147483648, 2147483648) %108, i64 noundef 4) store ptr %110, ptr %107, align 8 %111 = icmp sgt i32 %92, 0 br i1 %111, label %.preheader.lr.ph.i.i.i, label %_ZL8ilistcatiP7t_ilistRK15InteractionListiii.exit.i.i @@ -4357,7 +4358,7 @@ _ZL8ilistcatiP7t_ilistRK15InteractionListiii.exit.i.i: ; preds = %._crit_edge.sp call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) %183 = sdiv i32 %179, 2 %184 = sext i32 %183 to i64 - %185 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %78, i64 noundef %184, i64 noundef 48) + %185 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %78, i64 noundef range(i64 -1073741824, 1073741824) %184, i64 noundef 48) store ptr %185, ptr %61, align 8 %186 = icmp slt i32 %182, %183 br i1 %186, label %.lr.ph.i.i.i, label %_ZL17set_posres_paramsI6t_idefEvPT_PK14gmx_molblock_tii.exit.i.i @@ -4504,7 +4505,7 @@ _ZL17set_posres_paramsI6t_idefEvPT_PK14gmx_molblock_tii.exit.i.i: ; preds = %247 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) %256 = sdiv i32 %252, 2 %257 = sext i32 %256 to i64 - %258 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %77, i64 noundef %257, i64 noundef 48) + %258 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %77, i64 noundef range(i64 -1073741824, 1073741824) %257, i64 noundef 48) store ptr %258, ptr %74, align 8 %259 = icmp slt i32 %255, %256 br i1 %259, label %.lr.ph.i77.i.i, label %_ZL19set_fbposres_paramsI6t_idefEvPT_PK14gmx_molblock_tii.exit.i.i @@ -4640,7 +4641,7 @@ _ZL19set_fbposres_paramsI6t_idefEvPT_PK14gmx_molblock_tii.exit.i.i: ; preds = %2 %329 = getelementptr inbounds i8, ptr %313, i64 8 %330 = sext i32 %327 to i64 %331 = load ptr, ptr %329, align 8 - %332 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %331, i64 noundef %330, i64 noundef 4) + %332 = tail call noundef ptr @_Z12save_reallocPKcS0_iPvmm(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %331, i64 noundef range(i64 -2147483648, 2147483648) %330, i64 noundef 4) store ptr %332, ptr %329, align 8 %333 = icmp sgt i32 %.fr37.i84.i.i, 0 br i1 %333, label %.preheader.us.preheader.i97.i.i, label %.preheader.preheader.i86.i.i @@ -4864,7 +4865,7 @@ define void @_Z14get_atom_indexRK10gmx_mtop_t(ptr dead_on_unwind noalias nocaptu %7 = alloca %class.AtomIterator, align 8 %8 = alloca %class.AtomProxy, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) - invoke void @_ZN12AtomIteratorC1ERK10gmx_mtop_ti(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 8 dereferenceable(768) %1, i32 noundef 0) + invoke void @_ZN12AtomIteratorC1ERK10gmx_mtop_ti(ptr noundef nonnull align 8 dereferenceable(80) %5, ptr noundef nonnull align 8 dereferenceable(768) %1, i32 noundef 0) to label %.noexc unwind label %.loopexit.split-lp .noexc: ; preds = %2 diff --git a/bench/icu/optimized/msgfmt.ll b/bench/icu/optimized/msgfmt.ll index f59e157f041..b0cbec1ca7f 100644 --- a/bench/icu/optimized/msgfmt.ll +++ b/bench/icu/optimized/msgfmt.ll @@ -2430,13 +2430,13 @@ _ZNK6icu_7513MessageFormat20nextTopLevelArgStartEi.exit: ; preds = %for.cond.i br i1 %cmp.i13, label %if.then.i15, label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit if.then.i15: ; preds = %_ZNK6icu_7513MessageFormat20nextTopLevelArgStartEi.exit - %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) + %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) store ptr %call.i, ptr %customFormatArgStarts, align 8 br label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit _ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %_ZNK6icu_7513MessageFormat20nextTopLevelArgStartEi.exit, %if.then.i15 %9 = phi ptr [ %call.i, %if.then.i15 ], [ %8, %_ZNK6icu_7513MessageFormat20nextTopLevelArgStartEi.exit ] - %call4.i = call i32 @uhash_iputi_75(ptr noundef %9, i32 noundef %6, i32 noundef 1, ptr noundef nonnull %status) + %call4.i = call i32 @uhash_iputi_75(ptr noundef %9, i32 noundef %6, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %cmp11 = icmp uge i64 %indvars.iv.next, %2 %10 = load i32, ptr %status, align 4 @@ -2583,13 +2583,13 @@ if.end22: ; preds = %if.then15, %if.then br i1 %cmp.i11, label %if.then.i13, label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit if.then.i13: ; preds = %if.end22 - %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) + %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) store ptr %call.i, ptr %customFormatArgStarts, align 8 br label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit _ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %if.end22, %if.then.i13 %11 = phi ptr [ %call.i, %if.then.i13 ], [ %10, %if.end22 ] - %call4.i = call i32 @uhash_iputi_75(ptr noundef %11, i32 noundef %7, i32 noundef 1, ptr noundef nonnull %status) + %call4.i = call i32 @uhash_iputi_75(ptr noundef %11, i32 noundef %7, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %cmp11 = icmp uge i64 %indvars.iv.next, %2 %12 = load i32, ptr %status, align 4 @@ -2676,13 +2676,13 @@ if.then4: ; preds = %invoke.cont br i1 %cmp.i, label %if.then.i5, label %if.end.i4 if.then.i5: ; preds = %if.then4 - %call.i6 = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) + %call.i6 = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) store ptr %call.i6, ptr %customFormatArgStarts.i, align 8 br label %if.end.i4 if.end.i4: ; preds = %if.then.i5, %if.then4 %5 = phi ptr [ %call.i6, %if.then.i5 ], [ %4, %if.then4 ] - %call4.i7 = call i32 @uhash_iputi_75(ptr noundef %5, i32 noundef %3, i32 noundef 1, ptr noundef nonnull %status) + %call4.i7 = call i32 @uhash_iputi_75(ptr noundef %5, i32 noundef %3, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) br label %_ZN6icu_7512LocalPointerINS_6FormatEED2Ev.exit12 cleanup: ; preds = %for.cond.i, %entry @@ -2891,7 +2891,7 @@ if.end31: ; preds = %if.then15, %invoke. br i1 %cmp.i18, label %if.then.i20, label %if.end.i19 if.then.i20: ; preds = %.noexc - %call.i21 = invoke ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) + %call.i21 = invoke ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %call.i.noexc unwind label %lpad.loopexit.loopexit.split-lp call.i.noexc: ; preds = %if.then.i20 @@ -2900,7 +2900,7 @@ call.i.noexc: ; preds = %if.then.i20 if.end.i19: ; preds = %call.i.noexc, %.noexc %21 = phi ptr [ %call.i21, %call.i.noexc ], [ %20, %.noexc ] - %call4.i22 = invoke i32 @uhash_iputi_75(ptr noundef %21, i32 noundef %5, i32 noundef 1, ptr noundef nonnull %status) + %call4.i22 = invoke i32 @uhash_iputi_75(ptr noundef %21, i32 noundef %5, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %for.cond.outer unwind label %lpad.loopexit.loopexit.split-lp, !llvm.loop !21 cleanup: ; preds = %invoke.cont6, %for.cond.i, %entry, %if.then4 @@ -2922,7 +2922,7 @@ _ZN6icu_7512LocalPointerINS_6FormatEED2Ev.exit27: ; preds = %cleanup.thread, %cl declare noundef i32 @_ZN6icu_7514MessagePattern20validateArgumentNameERKNS_13UnicodeStringE(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #6 ; Function Attrs: mustprogress uwtable -define void @_ZN6icu_7513MessageFormat9setFormatEiRKNS_6FormatE(ptr nocapture noundef nonnull align 8 dereferenceable(816) %this, i32 noundef %n, ptr noundef nonnull align 8 dereferenceable(322) %newFormat) unnamed_addr #1 align 2 { +define void @_ZN6icu_7513MessageFormat9setFormatEiRKNS_6FormatE(ptr nocapture noundef nonnull align 8 dereferenceable(816) %this, i32 noundef %n, ptr noundef nonnull align 8 dereferenceable(322) %newFormat) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 { entry: %status = alloca i32, align 4 %cmp = icmp sgt i32 %n, -1 @@ -2973,24 +2973,53 @@ if.then4: ; preds = %_ZNK6icu_7513Messag %4 = load ptr, ptr %vfn, align 8 %call5 = tail call noundef ptr %4(ptr noundef nonnull align 8 dereferenceable(322) %newFormat) %tobool.not = icmp eq ptr %call5, null - br i1 %tobool.not, label %if.end8, label %if.then6 + br i1 %tobool.not, label %if.end8, label %if.end.i8 -if.then6: ; preds = %if.then4 +if.end.i8: ; preds = %if.then4 store i32 0, ptr %status, align 4 - call void @_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, i32 noundef %3, ptr noundef nonnull %call5, ptr noundef nonnull align 4 dereferenceable(4) %status) + %cachedFormatters.i = getelementptr inbounds i8, ptr %this, i64 736 + %5 = load ptr, ptr %cachedFormatters.i, align 8 + %cmp.i9 = icmp eq ptr %5, null + br i1 %cmp.i9, label %if.then2.i, label %if.end20.i + +if.then2.i: ; preds = %if.end.i8 + %call3.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef nonnull @_ZL19equalFormatsForHash8UElementS_, ptr noundef nonnull align 4 dereferenceable(4) %status) + store ptr %call3.i, ptr %cachedFormatters.i, align 8 + %6 = load i32, ptr %status, align 4 + %cmp.i7.i = icmp slt i32 %6, 1 + br i1 %cmp.i7.i, label %if.end13.i, label %delete.notnull9.i + +delete.notnull9.i: ; preds = %if.then2.i + %vtable10.i = load ptr, ptr %call5, align 8 + %vfn11.i = getelementptr inbounds i8, ptr %vtable10.i, i64 8 + %7 = load ptr, ptr %vfn11.i, align 8 + call void %7(ptr noundef nonnull align 8 dereferenceable(322) %call5) #20 + br label %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + +if.end13.i: ; preds = %if.then2.i + %call15.i = call ptr @uhash_setValueDeleter_75(ptr noundef %call3.i, ptr noundef nonnull @uprv_deleteUObject_75) + %.pre = load ptr, ptr %cachedFormatters.i, align 8 + br label %if.end20.i + +if.end20.i: ; preds = %if.end.i8, %if.end13.i + %8 = phi ptr [ %5, %if.end.i8 ], [ %.pre, %if.end13.i ] + %call22.i = call ptr @uhash_iput_75(ptr noundef %8, i32 noundef %3, ptr noundef nonnull %call5, ptr noundef nonnull align 4 dereferenceable(4) %status) + br label %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + +_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %delete.notnull9.i, %if.end20.i %customFormatArgStarts.i = getelementptr inbounds i8, ptr %this, i64 744 - %5 = load ptr, ptr %customFormatArgStarts.i, align 8 - %cmp.i = icmp eq ptr %5, null + %9 = load ptr, ptr %customFormatArgStarts.i, align 8 + %cmp.i = icmp eq ptr %9, null br i1 %cmp.i, label %if.then.i6, label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit -if.then.i6: ; preds = %if.then6 - %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) +if.then.i6: ; preds = %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + %call.i = call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) store ptr %call.i, ptr %customFormatArgStarts.i, align 8 br label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit -_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %if.then6, %if.then.i6 - %6 = phi ptr [ %call.i, %if.then.i6 ], [ %5, %if.then6 ] - %call4.i = call i32 @uhash_iputi_75(ptr noundef %6, i32 noundef %3, i32 noundef 1, ptr noundef nonnull %status) +_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit, %if.then.i6 + %10 = phi ptr [ %call.i, %if.then.i6 ], [ %9, %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit ] + %call4.i = call i32 @uhash_iputi_75(ptr noundef %10, i32 noundef %3, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) br label %if.end8 if.end8: ; preds = %for.cond.i, %if.then4, %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit, %entry @@ -3139,7 +3168,7 @@ return: ; preds = %for.cond.i, %if.els } ; Function Attrs: mustprogress uwtable -define void @_ZN6icu_7513MessageFormat9setFormatERKNS_13UnicodeStringERKNS_6FormatER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, ptr noundef nonnull align 8 dereferenceable(64) %formatName, ptr noundef nonnull align 8 dereferenceable(322) %newFormat, ptr noundef nonnull align 4 dereferenceable(4) %status) unnamed_addr #1 align 2 { +define void @_ZN6icu_7513MessageFormat9setFormatERKNS_13UnicodeStringERKNS_6FormatER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, ptr noundef nonnull align 8 dereferenceable(64) %formatName, ptr noundef nonnull align 8 dereferenceable(322) %newFormat, ptr noundef nonnull align 4 dereferenceable(4) %status) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i32, ptr %status, align 4 %cmp.i = icmp slt i32 %0, 1 @@ -3158,6 +3187,7 @@ for.cond.preheader: ; preds = %if.end %fLength.i.i.i.i = getelementptr inbounds i8, ptr %formatName, i64 12 %fBuffer.i.i.i.i.i = getelementptr inbounds i8, ptr %formatName, i64 10 %fArray.i.i.i.i.i = getelementptr inbounds i8, ptr %formatName, i64 24 + %cachedFormatters.i = getelementptr inbounds i8, ptr %this, i64 736 %customFormatArgStarts.i = getelementptr inbounds i8, ptr %this, i64 744 br label %for.cond @@ -3263,19 +3293,59 @@ if.then11: ; preds = %_ZNK6icu_7514Messag br i1 %cmp13, label %for.end.sink.split, label %if.end15 if.end15: ; preds = %if.then11 - tail call void @_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, i32 noundef %4, ptr noundef nonnull %call12, ptr noundef nonnull align 4 dereferenceable(4) %status) - %19 = load ptr, ptr %customFormatArgStarts.i, align 8 - %cmp.i13 = icmp eq ptr %19, null + %19 = load i32, ptr %status, align 4 + %cmp.i.i16 = icmp slt i32 %19, 1 + br i1 %cmp.i.i16, label %if.end.i18, label %delete.notnull.i + +delete.notnull.i: ; preds = %if.end15 + %vtable.i = load ptr, ptr %call12, align 8 + %vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 8 + %20 = load ptr, ptr %vfn.i, align 8 + tail call void %20(ptr noundef nonnull align 8 dereferenceable(322) %call12) #20 + br label %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + +if.end.i18: ; preds = %if.end15 + %21 = load ptr, ptr %cachedFormatters.i, align 8 + %cmp.i19 = icmp eq ptr %21, null + br i1 %cmp.i19, label %if.then2.i, label %if.end20.i + +if.then2.i: ; preds = %if.end.i18 + %call3.i = tail call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef nonnull @_ZL19equalFormatsForHash8UElementS_, ptr noundef nonnull align 4 dereferenceable(4) %status) + store ptr %call3.i, ptr %cachedFormatters.i, align 8 + %22 = load i32, ptr %status, align 4 + %cmp.i7.i = icmp slt i32 %22, 1 + br i1 %cmp.i7.i, label %if.end13.i, label %delete.notnull9.i + +delete.notnull9.i: ; preds = %if.then2.i + %vtable10.i = load ptr, ptr %call12, align 8 + %vfn11.i = getelementptr inbounds i8, ptr %vtable10.i, i64 8 + %23 = load ptr, ptr %vfn11.i, align 8 + tail call void %23(ptr noundef nonnull align 8 dereferenceable(322) %call12) #20 + br label %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + +if.end13.i: ; preds = %if.then2.i + %call15.i = tail call ptr @uhash_setValueDeleter_75(ptr noundef %call3.i, ptr noundef nonnull @uprv_deleteUObject_75) + %.pre = load ptr, ptr %cachedFormatters.i, align 8 + br label %if.end20.i + +if.end20.i: ; preds = %if.end.i18, %if.end13.i + %24 = phi ptr [ %21, %if.end.i18 ], [ %.pre, %if.end13.i ] + %call22.i = tail call ptr @uhash_iput_75(ptr noundef %24, i32 noundef %4, ptr noundef nonnull %call12, ptr noundef nonnull align 4 dereferenceable(4) %status) + br label %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + +_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %delete.notnull.i, %delete.notnull9.i, %if.end20.i + %25 = load ptr, ptr %customFormatArgStarts.i, align 8 + %cmp.i13 = icmp eq ptr %25, null br i1 %cmp.i13, label %if.then.i15, label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit -if.then.i15: ; preds = %if.end15 - %call.i = tail call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull %status) +if.then.i15: ; preds = %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit + %call.i = tail call ptr @uhash_open_75(ptr noundef nonnull @uhash_hashLong_75, ptr noundef nonnull @uhash_compareLong_75, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %status) store ptr %call.i, ptr %customFormatArgStarts.i, align 8 br label %_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit -_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %if.end15, %if.then.i15 - %20 = phi ptr [ %call.i, %if.then.i15 ], [ %19, %if.end15 ] - %call4.i = tail call i32 @uhash_iputi_75(ptr noundef %20, i32 noundef %4, i32 noundef 1, ptr noundef nonnull %status) +_ZN6icu_7513MessageFormat23setCustomArgStartFormatEiPNS_6FormatER10UErrorCode.exit: ; preds = %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit, %if.then.i15 + %26 = phi ptr [ %call.i, %if.then.i15 ], [ %25, %_ZN6icu_7513MessageFormat17setArgStartFormatEiPNS_6FormatER10UErrorCode.exit ] + %call4.i = tail call i32 @uhash_iputi_75(ptr noundef %26, i32 noundef %4, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(4) %status) br label %for.cond.backedge for.end.sink.split: ; preds = %if.then11, %if.end @@ -3780,7 +3850,7 @@ if.end.i: ; preds = %entry store ptr %usapp.i, ptr %app.i, align 8 %len.i.i = getelementptr inbounds i8, ptr %app.i, i64 8 store i32 0, ptr %len.i.i, align 8 - invoke void @_ZNK6icu_7513MessageFormat6formatEiPKvPKNS_11FormattableEPKNS_13UnicodeStringEiRNS_17AppendableWrapperEPNS_13FieldPositionER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %temp, i32 noundef 0, ptr noundef null, ptr noundef %arguments, ptr noundef null, i32 noundef %cnt, ptr noundef nonnull align 8 dereferenceable(12) %app.i, ptr noundef readnone null, ptr noundef nonnull align 4 dereferenceable(4) %success) + invoke void @_ZNK6icu_7513MessageFormat6formatEiPKvPKNS_11FormattableEPKNS_13UnicodeStringEiRNS_17AppendableWrapperEPNS_13FieldPositionER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %temp, i32 noundef 0, ptr noundef null, ptr noundef %arguments, ptr noundef null, i32 noundef %cnt, ptr noundef nonnull align 8 dereferenceable(12) %app.i, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %success) to label %invoke.cont2.i unwind label %lpad.i invoke.cont2.i: ; preds = %if.end.i @@ -3879,7 +3949,7 @@ if.end.i: ; preds = %entry store ptr %usapp.i, ptr %app.i, align 8 %len.i.i = getelementptr inbounds i8, ptr %app.i, i64 8 store i32 0, ptr %len.i.i, align 8 - invoke void @_ZNK6icu_7513MessageFormat6formatEiPKvPKNS_11FormattableEPKNS_13UnicodeStringEiRNS_17AppendableWrapperEPNS_13FieldPositionER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, i32 noundef 0, ptr noundef null, ptr noundef %arguments, ptr noundef %argumentNames, i32 noundef %count, ptr noundef nonnull align 8 dereferenceable(12) %app.i, ptr noundef readnone null, ptr noundef nonnull align 4 dereferenceable(4) %success) + invoke void @_ZNK6icu_7513MessageFormat6formatEiPKvPKNS_11FormattableEPKNS_13UnicodeStringEiRNS_17AppendableWrapperEPNS_13FieldPositionER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(816) %this, i32 noundef 0, ptr noundef null, ptr noundef %arguments, ptr noundef %argumentNames, i32 noundef %count, ptr noundef nonnull align 8 dereferenceable(12) %app.i, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %success) to label %invoke.cont2.i unwind label %lpad.i invoke.cont2.i: ; preds = %if.end.i diff --git a/bench/kcp/optimized/ikcp.ll b/bench/kcp/optimized/ikcp.ll index 97ef31e20e7..e7f4b29b0c7 100644 --- a/bench/kcp/optimized/ikcp.ll +++ b/bench/kcp/optimized/ikcp.ll @@ -872,11 +872,11 @@ if.then9: ; preds = %if.then5 br i1 %tobool.not.i.i, label %if.end.i.i, label %if.then.i.i if.then.i.i: ; preds = %if.then9 - %call.i.i = tail call ptr %5(i64 noundef %add.i) #14 + %call.i.i = tail call ptr %5(i64 noundef range(i64 -2147483576, 34359738361) %add.i) #14 br label %ikcp_segment_new.exit if.end.i.i: ; preds = %if.then9 - %call1.i.i = tail call noalias ptr @malloc(i64 noundef %add.i) #15 + %call1.i.i = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %add.i) #15 br label %ikcp_segment_new.exit ikcp_segment_new.exit: ; preds = %if.then.i.i, %if.end.i.i @@ -993,7 +993,7 @@ for.body.us: ; preds = %for.body.lr.ph, %if %.len.addr.2.us = tail call i32 @llvm.smin.i32(i32 %len.addr.2119.us, i32 %19) %conv.i104.us = sext i32 %.len.addr.2.us to i64 %add.i105.us = add nsw i64 %conv.i104.us, 72 - %call1.i.i111.us = tail call noalias ptr @malloc(i64 noundef %add.i105.us) #15 + %call1.i.i111.us = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %add.i105.us) #15 %cmp108.us = icmp eq ptr %call1.i.i111.us, null br i1 %cmp108.us, label %return, label %if.end111.us @@ -1049,12 +1049,12 @@ for.body: ; preds = %for.body.lr.ph, %if br i1 %tobool.not.i.i106, label %if.end.i.i110, label %if.then.i.i107 if.then.i.i107: ; preds = %for.body - %call.i.i108 = tail call ptr %24(i64 noundef %add.i105) #14 + %call.i.i108 = tail call ptr %24(i64 noundef range(i64 -2147483576, 34359738361) %add.i105) #14 %.pre = load ptr, ptr @ikcp_malloc_hook, align 8 br label %ikcp_segment_new.exit112 if.end.i.i110: ; preds = %for.body - %call1.i.i111 = tail call noalias ptr @malloc(i64 noundef %add.i105) #15 + %call1.i.i111 = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %add.i105) #15 br label %ikcp_segment_new.exit112 ikcp_segment_new.exit112: ; preds = %if.then.i.i107, %if.end.i.i110 @@ -1587,11 +1587,11 @@ for.end.i: ; preds = %for.cond.i191 br i1 %tobool.not.i.i, label %if.end.i.i, label %if.then.i.i if.then.i.i: ; preds = %for.end.i - %call.i.i = tail call ptr %43(i64 noundef %mul2.i) #14 + %call.i.i = tail call ptr %43(i64 noundef range(i64 -2147483576, 34359738361) %mul2.i) #14 br label %ikcp_malloc.exit.i if.end.i.i: ; preds = %for.end.i - %call1.i.i = tail call noalias ptr @malloc(i64 noundef %mul2.i) #15 + %call1.i.i = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %mul2.i) #15 br label %ikcp_malloc.exit.i ikcp_malloc.exit.i: ; preds = %if.end.i.i, %if.then.i.i @@ -1685,11 +1685,11 @@ if.then98: ; preds = %ikcp_ack_push.exit br i1 %tobool.not.i.i196, label %if.end.i.i201, label %if.then.i.i197 if.then.i.i197: ; preds = %if.then98 - %call.i.i198 = tail call ptr %59(i64 noundef %add.i195) #14 + %call.i.i198 = tail call ptr %59(i64 noundef range(i64 -2147483576, 34359738361) %add.i195) #14 br label %ikcp_segment_new.exit if.end.i.i201: ; preds = %if.then98 - %call1.i.i202 = tail call noalias ptr @malloc(i64 noundef %add.i195) #15 + %call1.i.i202 = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %add.i195) #15 br label %ikcp_segment_new.exit ikcp_segment_new.exit: ; preds = %if.then.i.i197, %if.end.i.i201 @@ -2742,11 +2742,11 @@ if.end: ; preds = %entry br i1 %tobool.not.i, label %if.end.i, label %if.then.i if.then.i: ; preds = %if.end - %call.i = tail call ptr %1(i64 noundef %conv) #14 + %call.i = tail call ptr %1(i64 noundef range(i64 -2147483576, 34359738361) %conv) #14 br label %ikcp_malloc.exit if.end.i: ; preds = %if.end - %call1.i = tail call noalias ptr @malloc(i64 noundef %conv) #15 + %call1.i = tail call noalias ptr @malloc(i64 noundef range(i64 -2147483576, 34359738361) %conv) #15 br label %ikcp_malloc.exit ikcp_malloc.exit: ; preds = %if.then.i, %if.end.i diff --git a/bench/libdeflate/optimized/deflate_decompress.c.ll b/bench/libdeflate/optimized/deflate_decompress.c.ll index 60305e26b43..79cadd5490e 100644 --- a/bench/libdeflate/optimized/deflate_decompress.c.ll +++ b/bench/libdeflate/optimized/deflate_decompress.c.ll @@ -623,11 +623,11 @@ if.end601: ; preds = %for.body592.prehead %in_next.11 = phi ptr [ %in_next.8, %do.end412 ], [ %in_next.3, %for.body592.preheader ] %idx.ext.i = zext nneg i32 %num_litlen_syms.0 to i64 %add.ptr.i = getelementptr inbounds i8, ptr %d, i64 %idx.ext.i - %call.i542 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %offset_decode_table.i, ptr noundef nonnull %add.ptr.i, i32 noundef %num_offset_syms.0, ptr noundef nonnull @offset_decode_results, i32 noundef 8, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef null) + %call.i542 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %offset_decode_table.i, ptr noundef nonnull %add.ptr.i, i32 noundef range(i32 1, 33) %num_offset_syms.0, ptr noundef nonnull @offset_decode_results, i32 noundef 8, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef null) br i1 %call.i542, label %if.end612, label %return if.end612: ; preds = %if.end601 - %call.i544 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %d, ptr noundef nonnull %d, i32 noundef %num_litlen_syms.0, ptr noundef nonnull @litlen_decode_results, i32 noundef 11, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef nonnull %litlen_tablebits.i) + %call.i544 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %d, ptr noundef nonnull %d, i32 noundef range(i32 257, 289) %num_litlen_syms.0, ptr noundef nonnull @litlen_decode_results, i32 noundef 11, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef nonnull %litlen_tablebits.i) br i1 %call.i544, label %have_decode_tables, label %return have_decode_tables: ; preds = %if.end612, %if.end537 @@ -1819,11 +1819,11 @@ if.end601: ; preds = %for.body592.prehead %in_next.11 = phi ptr [ %in_next.8, %do.end412 ], [ %in_next.3, %for.body592.preheader ] %idx.ext.i = zext nneg i32 %num_litlen_syms.0 to i64 %add.ptr.i = getelementptr inbounds i8, ptr %d, i64 %idx.ext.i - %call.i542 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %offset_decode_table.i, ptr noundef nonnull %add.ptr.i, i32 noundef %num_offset_syms.0, ptr noundef nonnull @offset_decode_results, i32 noundef 8, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef null) + %call.i542 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %offset_decode_table.i, ptr noundef nonnull %add.ptr.i, i32 noundef range(i32 1, 33) %num_offset_syms.0, ptr noundef nonnull @offset_decode_results, i32 noundef 8, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef null) br i1 %call.i542, label %if.end612, label %return if.end612: ; preds = %if.end601 - %call.i544 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %d, ptr noundef nonnull %d, i32 noundef %num_litlen_syms.0, ptr noundef nonnull @litlen_decode_results, i32 noundef 11, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef nonnull %litlen_tablebits.i) + %call.i544 = tail call fastcc noundef zeroext i1 @build_decode_table(ptr noundef nonnull %d, ptr noundef nonnull %d, i32 noundef range(i32 257, 289) %num_litlen_syms.0, ptr noundef nonnull @litlen_decode_results, i32 noundef 11, i32 noundef 15, ptr noundef nonnull %sorted_syms.i, ptr noundef nonnull %litlen_tablebits.i) br i1 %call.i544, label %have_decode_tables, label %return have_decode_tables: ; preds = %if.end612, %if.end537 diff --git a/bench/meshlab/optimized/miniz.c.ll b/bench/meshlab/optimized/miniz.c.ll index 6ea976f7db0..fd77e3a3ff2 100644 --- a/bench/meshlab/optimized/miniz.c.ll +++ b/bench/meshlab/optimized/miniz.c.ll @@ -7242,7 +7242,7 @@ tdefl_init.exit: ; preds = %tdefl_output_buffer %.051111 = phi i32 [ 0, %.lr.ph ], [ %104, %95 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) store i64 1, ptr %10, align 8 - %96 = call i32 @tdefl_compress(ptr noundef %14, ptr noundef nonnull %12, ptr noundef nonnull %10, ptr noundef null, ptr noundef null, i32 noundef 0) + %96 = call i32 @tdefl_compress(ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef nonnull %10, ptr noundef null, ptr noundef null, i32 noundef 0) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) %97 = xor i32 %.051111, -1 %98 = add nsw i32 %2, %97 @@ -7252,7 +7252,7 @@ tdefl_init.exit: ; preds = %tdefl_output_buffer %102 = getelementptr inbounds i8, ptr %0, i64 %101 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) store i64 %94, ptr %9, align 8 - %103 = call i32 @tdefl_compress(ptr noundef %14, ptr noundef %102, ptr noundef nonnull %9, ptr noundef null, ptr noundef null, i32 noundef 0) + %103 = call i32 @tdefl_compress(ptr noundef nonnull %14, ptr noundef %102, ptr noundef nonnull %9, ptr noundef null, ptr noundef null, i32 noundef 0) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) %104 = add nuw nsw i32 %.051111, 1 %exitcond.not = icmp eq i32 %104, %2 @@ -7261,7 +7261,7 @@ tdefl_init.exit: ; preds = %tdefl_output_buffer ._crit_edge: ; preds = %95, %tdefl_init.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) store i64 0, ptr %8, align 8 - %105 = call i32 @tdefl_compress(ptr noundef %14, ptr noundef null, ptr noundef nonnull %8, ptr noundef null, ptr noundef null, i32 noundef 4) + %105 = call i32 @tdefl_compress(ptr noundef nonnull %14, ptr noundef null, ptr noundef nonnull %8, ptr noundef null, ptr noundef null, i32 noundef 4) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) %.not59 = icmp eq i32 %105, 1 br i1 %.not59, label %108, label %106 @@ -7423,7 +7423,7 @@ mz_crc32.exit: ; preds = %.lr.ph.i %193 = phi i64 [ %.pre30.i74, %189 ], [ %109, %177 ] %194 = phi ptr [ %188, %189 ], [ %178, %177 ] %195 = getelementptr inbounds i8, ptr %194, i64 %193 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %195, ptr noundef nonnull readonly align 1 dereferenceable(16) @.str.11, i64 16, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %195, ptr noundef nonnull align 1 dereferenceable(16) @.str.11, i64 16, i1 false) store i64 %179, ptr %11, align 8 %196 = load ptr, ptr %25, align 8 %197 = getelementptr inbounds i8, ptr %196, i64 37 @@ -19015,27 +19015,99 @@ define range(i32 0, 65537) i32 @mz_zip_reader_get_filename(ptr noundef %0, i32 n ; Function Attrs: nounwind uwtable define range(i32 0, 2) i32 @mz_zip_end(ptr noundef %0) local_unnamed_addr #7 { %.not = icmp eq ptr %0, null - br i1 %.not, label %9, label %2 + br i1 %.not, label %mz_zip_reader_end_internal.exit, label %2 2: ; preds = %1 %3 = getelementptr inbounds i8, ptr %0, i64 20 %4 = load i32, ptr %3, align 4 - switch i32 %4, label %9 [ + switch i32 %4, label %mz_zip_reader_end_internal.exit [ i32 1, label %5 - i32 2, label %7 - i32 3, label %7 + i32 2, label %43 + i32 3, label %43 ] 5: ; preds = %2 - %6 = tail call fastcc range(i32 0, 2) i32 @mz_zip_reader_end_internal(ptr noundef nonnull %0, i32 noundef 1) - br label %9 + %6 = getelementptr inbounds i8, ptr %0, i64 104 + %7 = load ptr, ptr %6, align 8 + %.not43.i = icmp eq ptr %7, null + br i1 %.not43.i, label %14, label %8 -7: ; preds = %2, %2 - %8 = tail call fastcc range(i32 0, 2) i32 @mz_zip_writer_end_internal(ptr noundef nonnull %0, i32 noundef 1) - br label %9 +8: ; preds = %5 + %9 = getelementptr inbounds i8, ptr %0, i64 40 + %10 = load ptr, ptr %9, align 8 + %.not44.i = icmp eq ptr %10, null + br i1 %.not44.i, label %14, label %11 + +11: ; preds = %8 + %12 = getelementptr inbounds i8, ptr %0, i64 48 + %13 = load ptr, ptr %12, align 8 + %.not45.i = icmp eq ptr %13, null + br i1 %.not45.i, label %14, label %16 + +14: ; preds = %11, %8, %5 + %15 = getelementptr inbounds i8, ptr %0, i64 28 + store i32 24, ptr %15, align 4 + br label %mz_zip_reader_end_internal.exit + +16: ; preds = %11 + store ptr null, ptr %6, align 8 + %17 = getelementptr inbounds i8, ptr %0, i64 64 + %18 = load ptr, ptr %17, align 8 + %19 = load ptr, ptr %7, align 8 + tail call void %13(ptr noundef %18, ptr noundef %19) #30 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %7, i8 0, i64 32, i1 false) + %20 = getelementptr inbounds i8, ptr %7, i64 32 + %21 = load ptr, ptr %12, align 8 + %22 = load ptr, ptr %17, align 8 + %23 = load ptr, ptr %20, align 8 + tail call void %21(ptr noundef %22, ptr noundef %23) #30 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %20, i8 0, i64 32, i1 false) + %24 = getelementptr inbounds i8, ptr %7, i64 64 + %25 = load ptr, ptr %12, align 8 + %26 = load ptr, ptr %17, align 8 + %27 = load ptr, ptr %24, align 8 + tail call void %25(ptr noundef %26, ptr noundef %27) #30 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %24, i8 0, i64 32, i1 false) + %28 = getelementptr inbounds i8, ptr %7, i64 112 + %29 = load ptr, ptr %28, align 8 + %.not47.i = icmp eq ptr %29, null + br i1 %.not47.i, label %40, label %30 + +30: ; preds = %16 + %31 = getelementptr inbounds i8, ptr %0, i64 24 + %32 = load i32, ptr %31, align 8 + %33 = icmp eq i32 %32, 4 + br i1 %33, label %34, label %39 + +34: ; preds = %30 + %35 = tail call i32 @fclose(ptr noundef nonnull %29) + %36 = icmp eq i32 %35, -1 + br i1 %36, label %37, label %39 + +37: ; preds = %34 + %38 = getelementptr inbounds i8, ptr %0, i64 28 + store i32 21, ptr %38, align 4 + br label %39 + +39: ; preds = %37, %34, %30 + %.2.i = phi i32 [ 1, %34 ], [ 1, %30 ], [ 0, %37 ] + store ptr null, ptr %28, align 8 + br label %40 + +40: ; preds = %39, %16 + %.1.i = phi i32 [ %.2.i, %39 ], [ 1, %16 ] + %41 = load ptr, ptr %12, align 8 + %42 = load ptr, ptr %17, align 8 + tail call void %41(ptr noundef %42, ptr noundef nonnull %7) #30 + store i32 0, ptr %3, align 4 + br label %mz_zip_reader_end_internal.exit + +43: ; preds = %2, %2 + %44 = tail call fastcc range(i32 0, 2) i32 @mz_zip_writer_end_internal(ptr noundef nonnull %0, i32 noundef 1) + br label %mz_zip_reader_end_internal.exit -9: ; preds = %2, %1, %7, %5 - %.0 = phi i32 [ %6, %5 ], [ %8, %7 ], [ 0, %1 ], [ 0, %2 ] +mz_zip_reader_end_internal.exit: ; preds = %40, %14, %2, %1, %43 + %.0 = phi i32 [ %44, %43 ], [ 0, %1 ], [ 0, %2 ], [ %.1.i, %40 ], [ 0, %14 ] ret i32 %.0 } @@ -19277,8 +19349,8 @@ tdefl_optimize_huffman_table.exit47.i: ; preds = %80 call void @llvm.lifetime.start.p0(i64 320, ptr nonnull %4) %107 = getelementptr inbounds i8, ptr %0, i64 33738 store i16 1, ptr %107, align 2 - tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef %0, i32 noundef 0, i32 noundef 288, i32 noundef 15, i32 noundef 0) - tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef %0, i32 noundef 1, i32 noundef 32, i32 noundef 15, i32 noundef 0) + tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 288, i32 noundef 15, i32 noundef 0) + tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef nonnull %0, i32 noundef 1, i32 noundef 32, i32 noundef 15, i32 noundef 0) %108 = getelementptr inbounds i8, ptr %0, i64 36682 br label %109 @@ -19661,7 +19733,7 @@ tdefl_optimize_huffman_table.exit47.i: ; preds = %80 .loopexit320.i: ; preds = %250, %273, %291, %287, %266, %255, %.split.loop.exit464.i %.17.i = phi i32 [ %.6.i, %266 ], [ %263, %255 ], [ %284, %287 ], [ %284, %291 ], [ 0, %.split.loop.exit464.i ], [ %275, %273 ], [ %252, %250 ] - tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef %0, i32 noundef 2, i32 noundef 19, i32 noundef 7, i32 noundef 0) + tail call fastcc void @tdefl_optimize_huffman_table(ptr noundef nonnull %0, i32 noundef 2, i32 noundef 19, i32 noundef 7, i32 noundef 0) %295 = getelementptr inbounds i8, ptr %0, i64 92 %296 = load i32, ptr %295, align 4 %297 = shl i32 2, %296 diff --git a/bench/msgpack/optimized/reuse_zone.cpp.ll b/bench/msgpack/optimized/reuse_zone.cpp.ll index f4ebeaa02fc..05a4fa6b7b6 100644 --- a/bench/msgpack/optimized/reuse_zone.cpp.ll +++ b/bench/msgpack/optimized/reuse_zone.cpp.ll @@ -694,7 +694,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i: br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #24 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #24 %134 = load ptr, ptr %12, align 8 %135 = getelementptr inbounds i8, ptr %12, i64 16 %136 = icmp eq ptr %134, %135 @@ -713,7 +713,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i44 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i45, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i44 - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #24 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #24 %141 = load ptr, ptr %56, align 8 %142 = getelementptr inbounds i8, ptr %10, i64 48 %143 = load ptr, ptr %142, align 8 @@ -775,7 +775,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i48 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit50 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit50: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i49, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i48 - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #24 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #24 %162 = load ptr, ptr %6, align 8 %.not.i.i.i51 = icmp eq ptr %162, null br i1 %.not.i.i.i51, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %163 @@ -872,7 +872,7 @@ declare void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnam ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %2) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = getelementptr inbounds i8, ptr %0, i64 16 - tail call void @_ZNSaIcEC2ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 1 dereferenceable(1) %2) #24 + tail call void @_ZNSaIcEC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 1 dereferenceable(1) %2) #24 store ptr %4, ptr %0, align 8 %5 = icmp eq ptr %1, null br i1 %5, label %6, label %10 @@ -887,7 +887,7 @@ define linkonce_odr dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traits 8: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i, %19, %15, %6 %9 = landingpad { ptr, i32 } cleanup - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #24 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #24 resume { ptr, i32 } %9 10: ; preds = %3 @@ -1046,7 +1046,7 @@ define linkonce_odr dso_local void @_ZNK7msgpack2v16object2asINSt7__cxx1112basic call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) %4 = getelementptr inbounds i8, ptr %0, i64 16 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #24 - call void @_ZNSaIcEC2ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 1 dereferenceable(1) %3) #24 + call void @_ZNSaIcEC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 1 dereferenceable(1) %3) #24 store ptr %4, ptr %0, align 8 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #24 %5 = getelementptr inbounds i8, ptr %0, i64 8 @@ -1111,7 +1111,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i: ; br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv.exit _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #24 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #24 ret void } @@ -1266,7 +1266,7 @@ common.resume: ; preds = %26, %.body, %11 store ptr %20, ptr %17, align 8 %21 = getelementptr inbounds i8, ptr %6, i64 56 store ptr %3, ptr %21, align 8 - %22 = invoke noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE7executeEPKcmRm(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef %0, i64 noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %22 = invoke noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE7executeEPKcmRm(ptr noundef nonnull align 8 dereferenceable(64) %6, ptr noundef %0, i64 noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %5) to label %_ZN7msgpack2v26detail12parse_helperINS1_21create_object_visitorEE7executeEPKcmRm.exit unwind label %23 _ZN7msgpack2v26detail12parse_helperINS1_21create_object_visitorEE7executeEPKcmRm.exit: ; preds = %13 diff --git a/bench/nlohmann_json/optimized/unit-no-mem-leak-on-adl-serialize.cpp.ll b/bench/nlohmann_json/optimized/unit-no-mem-leak-on-adl-serialize.cpp.ll index b57feefc4a3..be5b2cdc8c5 100644 --- a/bench/nlohmann_json/optimized/unit-no-mem-leak-on-adl-serialize.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-no-mem-leak-on-adl-serialize.cpp.ll @@ -398,7 +398,7 @@ entry: tail call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_full_name) #21 %m_type = getelementptr inbounds i8, ptr %this, i64 88 tail call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_type) #21 - tail call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) #21 + tail call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) #21 ret void } @@ -2082,7 +2082,7 @@ terminate.lpad.i.i.i: ; preds = %while.body _ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorS7_blmdSaNSA_14adl_serializerESD_IhSaIhEEvEEEEE7destroyISI_EEvPT_.exit: ; preds = %while.body %_M_storage.i.i = getelementptr inbounds i8, ptr %__x.addr.05, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i) #21 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_storage.i.i) #21 tail call void @_ZdlPv(ptr noundef nonnull %__x.addr.05) #26 %cmp.not = icmp eq ptr %1, null br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !16 @@ -2245,7 +2245,7 @@ invoke.cont9: ; preds = %invoke.cont7 lpad.i.i: ; preds = %invoke.cont9 %2 = landingpad { ptr, i32 } cleanup - call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.result) #21 + call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %w) #21 br label %eh.resume @@ -2294,7 +2294,7 @@ entry: to label %invoke.cont3 unwind label %lpad invoke.cont3: ; preds = %entry - %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args) + %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(51) %args) to label %call.i3.noexc unwind label %lpad call.i3.noexc: ; preds = %invoke.cont3 @@ -2336,7 +2336,7 @@ entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN8nlohmann16json_abi_v3_11_36detail9exceptionE, i64 16), ptr %this, align 8 %m.i = getelementptr inbounds i8, ptr %this, i64 16 tail call void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %m.i) #21 - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #21 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #21 ret void } @@ -2345,7 +2345,7 @@ define linkonce_odr dso_local { ptr, i8 } @_ZNSt8_Rb_treeINSt7__cxx1112basic_str invoke.cont: %call5.i.i.i.i.i = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #23 %_M_storage.i.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__args) #21 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(48) %_M_storage.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__args) #21 %second.i.i.i.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i, i64 64 store i8 0, ptr %second.i.i.i.i.i.i, align 8 %m_value.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i, i64 72 @@ -2452,7 +2452,7 @@ terminate.lpad.i.i.i.i.i.i: ; preds = %if.then.i9 unreachable _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorS5_blmdSaNS9_14adl_serializerESC_IhSaIhEEvEEESt10_Select1stISH_ESt4lessIS5_ESaISH_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISH_E.exit.i: ; preds = %if.then.i9 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i) #21 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_storage.i.i.i.i) #21 tail call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i) #26 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorS5_blmdSaNS9_14adl_serializerESC_IhSaIhEEvEEESt10_Select1stISH_ESt4lessIS5_ESaISH_EE10_Auto_nodeD2Ev.exit @@ -2521,7 +2521,7 @@ invoke.cont: %call.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %args) #27 %call.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %args1) #21 %call.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %args5) #21 - %call.i.i.i.i.i = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %args7) #27 + %call.i.i.i.i.i = tail call noundef i64 @strlen(ptr noundef nonnull align 1 dereferenceable(3) %args7) #27 %add.i.i.i.i = add i64 %call.i, 1 %add.i.i.i = add i64 %add.i.i.i.i, %call.i.i %add.i.i = add i64 %add.i.i.i, %call.i.i.i.i @@ -2530,7 +2530,7 @@ invoke.cont: to label %invoke.cont9 unwind label %lpad invoke.cont9: ; preds = %invoke.cont - %call.i610 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args) + %call.i610 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(17) %args) to label %call.i6.noexc unwind label %lpad call.i6.noexc: ; preds = %invoke.cont9 @@ -2547,7 +2547,7 @@ call.i.i.i.noexc: ; preds = %call.i.i7.noexc to label %call.i.i.i.i8.noexc unwind label %lpad call.i.i.i.i8.noexc: ; preds = %call.i.i.i.noexc - %call.i.i.i.i.i914 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args7) + %call.i.i.i.i.i914 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(3) %args7) to label %nrvo.skipdtor unwind label %lpad lpad: ; preds = %call.i.i.i.i8.noexc, %call.i.i.i.noexc, %call.i.i7.noexc, %call.i6.noexc, %invoke.cont9, %invoke.cont @@ -2721,7 +2721,7 @@ entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN8nlohmann16json_abi_v3_11_36detail9exceptionE, i64 16), ptr %this, align 8 %m.i = getelementptr inbounds i8, ptr %this, i64 16 tail call void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %m.i) #21 - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #21 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #21 tail call void @_ZdlPv(ptr noundef nonnull %this) #26 ret void } @@ -2743,7 +2743,7 @@ entry: store ptr getelementptr inbounds (i8, ptr @_ZTVN8nlohmann16json_abi_v3_11_36detail9exceptionE, i64 16), ptr %this, align 8 %m.i.i = getelementptr inbounds i8, ptr %this, i64 16 tail call void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %m.i.i) #21 - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #21 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #21 tail call void @_ZdlPv(ptr noundef nonnull %this) #26 ret void } @@ -2760,7 +2760,7 @@ entry: to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args) + %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(52) %args) to label %call.i3.noexc unwind label %lpad call.i3.noexc: ; preds = %invoke.cont @@ -2895,7 +2895,7 @@ entry: %call5.i.i2.i = tail call noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #23 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i) call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) #21 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %call5.i.i2.i, ptr noundef nonnull %str, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %call5.i.i2.i, ptr noundef nonnull align 1 dereferenceable(5) %str, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) to label %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE6createIS9_JRA5_KcEEEPT_DpOT0_.exit unwind label %lpad.i.i.i lpad.i.i.i: ; preds = %entry @@ -5169,7 +5169,7 @@ invoke.cont9: ; preds = %invoke.cont7 lpad.i.i: ; preds = %invoke.cont9 %2 = landingpad { ptr, i32 } cleanup - call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.result) #21 + call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %w) #21 br label %eh.resume @@ -5212,7 +5212,7 @@ invoke.cont: tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #21 %call.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %args) #27 %call.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %args1) #21 - %call.i.i.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %args3) #27 + %call.i.i.i = tail call i64 @strlen(ptr noundef nonnull align 1 dereferenceable(5) %args3) #27 %call.i.i.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %args5) #21 %add.i.i.i = add i64 %call.i.i, %call.i %add.i.i = add i64 %add.i.i.i, %call.i.i.i @@ -5221,7 +5221,7 @@ invoke.cont: to label %invoke.cont7 unwind label %lpad invoke.cont7: ; preds = %invoke.cont - %call.i59 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args) + %call.i59 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(29) %args) to label %call.i5.noexc unwind label %lpad call.i5.noexc: ; preds = %invoke.cont7 @@ -5229,7 +5229,7 @@ call.i5.noexc: ; preds = %invoke.cont7 to label %call.i.i6.noexc unwind label %lpad call.i.i6.noexc: ; preds = %call.i5.noexc - %call.i.i.i711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args3) + %call.i.i.i711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(5) %args3) to label %call.i.i.i7.noexc unwind label %lpad call.i.i.i7.noexc: ; preds = %call.i.i6.noexc @@ -5431,7 +5431,7 @@ invoke.cont: to label %invoke.cont3 unwind label %lpad invoke.cont3: ; preds = %invoke.cont - %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull %args) + %call.i35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 1 dereferenceable(39) %args) to label %call.i3.noexc unwind label %lpad call.i3.noexc: ; preds = %invoke.cont3 @@ -5562,7 +5562,7 @@ _ZN8nlohmann16json_abi_v3_11_36detail9dtoa_impl6grisu2IdEEvPcRiS5_T_.exit: ; pre store i64 %shl.i.i.i, ptr %agg.tmp3.i, align 8 %w.sroa.9.32.agg.tmp3.sroa_idx.i = getelementptr inbounds i8, ptr %agg.tmp3.i, i64 8 store i32 %dec.i.i.i, ptr %w.sroa.9.32.agg.tmp3.sroa_idx.i, align 8 - call void @_ZN8nlohmann16json_abi_v3_11_36detail9dtoa_impl6grisu2EPcRiS4_NS2_5diyfpES5_S5_(ptr noundef %first.addr.0, ptr noundef nonnull align 4 dereferenceable(4) %len, ptr noundef nonnull align 4 dereferenceable(4) %decimal_exponent, i64 %shl.i11.i.i, i32 %dec.i.i.i, ptr noundef nonnull byval(%"struct.nlohmann::json_abi_v3_11_3::detail::dtoa_impl::diyfp") align 8 %agg.tmp1.i, ptr noundef nonnull byval(%"struct.nlohmann::json_abi_v3_11_3::detail::dtoa_impl::diyfp") align 8 %agg.tmp3.i) + call void @_ZN8nlohmann16json_abi_v3_11_36detail9dtoa_impl6grisu2EPcRiS4_NS2_5diyfpES5_S5_(ptr noundef nonnull %first.addr.0, ptr noundef nonnull align 4 dereferenceable(4) %len, ptr noundef nonnull align 4 dereferenceable(4) %decimal_exponent, i64 %shl.i11.i.i, i32 %dec.i.i.i, ptr noundef nonnull byval(%"struct.nlohmann::json_abi_v3_11_3::detail::dtoa_impl::diyfp") align 8 %agg.tmp1.i, ptr noundef nonnull byval(%"struct.nlohmann::json_abi_v3_11_3::detail::dtoa_impl::diyfp") align 8 %agg.tmp3.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp1.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp3.i) %4 = load i32, ptr %len, align 4 @@ -6057,7 +6057,7 @@ __cxx_global_var_init.2.exit: ; preds = %invoke.cont3.i call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_full_name.i.i) #21 %m_type.i.i = getelementptr inbounds i8, ptr %ref.tmp.i1, i64 88 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_type.i.i) #21 - call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.i1) #21 + call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %ref.tmp.i1) #21 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp1.i) #21 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %ref.tmp.i1) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %ref.tmp1.i) @@ -6092,7 +6092,7 @@ __cxx_global_var_init.5.exit: ; preds = %invoke.cont3.i12 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_full_name.i.i14) #21 %m_type.i.i15 = getelementptr inbounds i8, ptr %ref.tmp.i3, i64 88 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_type.i.i15) #21 - call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.i3) #21 + call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %ref.tmp.i3) #21 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp1.i4) #21 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %ref.tmp.i3) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %ref.tmp1.i4) @@ -6127,7 +6127,7 @@ __cxx_global_var_init.7.exit: ; preds = %invoke.cont3.i25 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_full_name.i.i27) #21 %m_type.i.i28 = getelementptr inbounds i8, ptr %ref.tmp.i16, i64 88 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %m_type.i.i28) #21 - call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.i16) #21 + call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %ref.tmp.i16) #21 call void @_ZN7doctest6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp1.i17) #21 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %ref.tmp.i16) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %ref.tmp1.i17) diff --git a/bench/oniguruma/optimized/regparse.ll b/bench/oniguruma/optimized/regparse.ll index c6c178191ea..f13811ac941 100644 --- a/bench/oniguruma/optimized/regparse.ll +++ b/bench/oniguruma/optimized/regparse.ll @@ -3034,7 +3034,7 @@ names_clear.exit: ; preds = %5, %15 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) %41 = getelementptr inbounds i8, ptr %8, i64 4 store i32 0, ptr %41, align 4 - %42 = call fastcc i32 @fetch_token(ptr noundef %8, ptr noundef %9, ptr noundef %2, ptr noundef nonnull %4) + %42 = call fastcc i32 @fetch_token(ptr noundef %8, ptr noundef nonnull %9, ptr noundef %2, ptr noundef nonnull %4) %43 = icmp slt i32 %42, 0 br i1 %43, label %prs_regexp.exit.thread, label %prs_regexp.exit @@ -3043,7 +3043,7 @@ prs_regexp.exit.thread: ; preds = %40 br label %setup_ext_callout_list_values.exit prs_regexp.exit: ; preds = %40 - %44 = call fastcc i32 @prs_alts(ptr noundef nonnull %0, ptr noundef %8, i32 noundef 0, ptr noundef %9, ptr noundef %2, ptr noundef nonnull %4, i32 noundef 0) + %44 = call fastcc i32 @prs_alts(ptr noundef nonnull %0, ptr noundef %8, i32 noundef 0, ptr noundef nonnull %9, ptr noundef %2, ptr noundef nonnull %4, i32 noundef 0) call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) %.not52 = icmp sgt i32 %44, -1 br i1 %.not52, label %45, label %setup_ext_callout_list_values.exit @@ -3360,7 +3360,7 @@ get_next_code_point.exit.thread: ; preds = %39 .loopexit.i: ; preds = %32, %30 store ptr %31, ptr %5, align 8 - %41 = call fastcc i32 @scan_number_of_base(ptr noundef %5, ptr noundef %2, ptr noundef readonly %20, ptr noundef %6, i32 noundef %28) + %41 = call fastcc i32 @scan_number_of_base(ptr noundef %5, ptr noundef %2, ptr noundef readonly %20, ptr noundef nonnull %6, i32 noundef %28) %.not26.i = icmp eq i32 %41, 0 br i1 %.not26.i, label %42, label %get_next_code_point.exit @@ -4637,7 +4637,7 @@ backref_rel_to_abs.exit717.thread: ; preds = %574, %backref_rel_t 629: ; preds = %80 store ptr %72, ptr %7, align 8 - %630 = call fastcc i32 @fetch_escaped_value_raw(ptr noundef %7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %15) + %630 = call fastcc i32 @fetch_escaped_value_raw(ptr noundef nonnull %7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %15) %.not.i718 = icmp eq i32 %630, 0 br i1 %.not.i718, label %fetch_escaped_value.exit, label %.critedge @@ -7389,12 +7389,12 @@ node_new_empty.exit.thread: ; preds = %._crit_edge ] 76: ; preds = %694, %69 - %77 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %77 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %78 = icmp slt i32 %77, 0 br i1 %78, label %prs_bag.exit.thread, label %79 79: ; preds = %76 - %80 = call fastcc i32 @prs_alts(ptr noundef nonnull %0, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) + %80 = call fastcc i32 @prs_alts(ptr noundef nonnull %0, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) %81 = icmp slt i32 %80, 0 br i1 %81, label %prs_bag.exit.thread, label %82 @@ -7626,7 +7626,7 @@ node_new_memory.exit442.thread: ; preds = %143 %181 = sext i32 %180 to i64 %182 = getelementptr inbounds i8, ptr %172, i64 %181 store ptr %182, ptr %14, align 8 - %183 = tail call fastcc i32 @make_range_clear(ptr noundef %0, ptr noundef nonnull %5) + %183 = tail call fastcc i32 @make_range_clear(ptr noundef nonnull %0, ptr noundef nonnull %5) %.not563.i = icmp eq i32 %183, 0 br i1 %.not563.i, label %184, label %prs_bag.exit.thread @@ -7637,12 +7637,12 @@ node_new_memory.exit442.thread: ; preds = %143 br label %767 187: ; preds = %174, %165 - %188 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %5) + %188 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %5) %189 = icmp slt i32 %188, 0 br i1 %189, label %prs_bag.exit.thread, label %190 190: ; preds = %187 - %191 = call fastcc i32 @prs_alts(ptr noundef nonnull %17, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef 1) + %191 = call fastcc i32 @prs_alts(ptr noundef nonnull %17, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef 1) %192 = icmp slt i32 %191, 0 %193 = load ptr, ptr %17, align 8 br i1 %192, label %194, label %195 @@ -7695,7 +7695,7 @@ onig_node_free.exit738: ; preds = %onig_node_free.exit %213 = phi ptr [ %193, %202 ], [ %206, %onig_node_free.exit738 ], [ %206, %onig_node_free.exit440 ], [ %193, %195 ] %.0444.i = phi ptr [ null, %202 ], [ %211, %onig_node_free.exit738 ], [ %200, %onig_node_free.exit440 ], [ null, %195 ] %.0442.i = phi i32 [ 1, %202 ], [ 0, %onig_node_free.exit738 ], [ 0, %onig_node_free.exit440 ], [ 0, %195 ] - %214 = tail call fastcc i32 @make_absent_tree(ptr noundef %0, ptr noundef %213, ptr noundef %.0444.i, i32 noundef %.0442.i, ptr noundef nonnull %5) + %214 = tail call fastcc i32 @make_absent_tree(ptr noundef nonnull %0, ptr noundef %213, ptr noundef %.0444.i, i32 noundef %.0442.i, ptr noundef nonnull %5) %.not562.i = icmp eq i32 %214, 0 br i1 %.not562.i, label %767, label %prs_bag.exit.thread @@ -7708,7 +7708,7 @@ onig_node_free.exit738: ; preds = %onig_node_free.exit br i1 %.not556.i, label %prs_bag.exit.thread, label %220 220: ; preds = %215 - %221 = call fastcc i32 @prs_callout_of_contents(ptr noundef %0, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %221 = call fastcc i32 @prs_callout_of_contents(ptr noundef nonnull %0, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %.not557.i = icmp eq i32 %221, 0 br i1 %.not557.i, label %767, label %prs_bag.exit @@ -7847,7 +7847,7 @@ thread-pre-split: ; preds = %255 286: ; preds = %279, %271 %287 = load i32, ptr %19, align 4 - %288 = call fastcc ptr @node_new_backref(i32 noundef 1, ptr noundef nonnull readonly %21, i32 noundef 0, i32 noundef %spec.select.i, i32 noundef %287, ptr noundef nonnull %5) + %288 = call fastcc ptr @node_new_backref(i32 noundef 1, ptr noundef nonnull readonly %21, i32 noundef 0, i32 noundef range(i32 0, 2) %spec.select.i, i32 noundef %287, ptr noundef nonnull %5) %289 = icmp eq ptr %288, null br i1 %289, label %node_new_backref_checker.exit437, label %node_new_backref_checker.exit437.sink.split @@ -7895,7 +7895,7 @@ thread-pre-split: ; preds = %255 .loopexit499: ; preds = %300, %294 %312 = load i32, ptr %19, align 4 - %313 = tail call fastcc ptr @node_new_backref(i32 noundef %292, ptr noundef readonly %.pre, i32 noundef 1, i32 noundef %spec.select.i, i32 noundef %312, ptr noundef nonnull %5) + %313 = tail call fastcc ptr @node_new_backref(i32 noundef range(i32 1, -2147483648) %292, ptr noundef readonly %.pre, i32 noundef 1, i32 noundef range(i32 0, 2) %spec.select.i, i32 noundef %312, ptr noundef nonnull %5) %314 = icmp eq ptr %313, null br i1 %314, label %node_new_backref_checker.exit437, label %node_new_backref_checker.exit437.sink.split @@ -7972,12 +7972,12 @@ node_new_backref_checker.exit437: ; preds = %node_new_backref_ch 352: ; preds = %345, %333, %328, %254, %245 store ptr %75, ptr %14, align 8 - %353 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %353 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %354 = icmp slt i32 %353, 0 br i1 %354, label %prs_bag.exit.thread, label %355 355: ; preds = %352 - %356 = call fastcc i32 @prs_alts(ptr noundef nonnull %18, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) + %356 = call fastcc i32 @prs_alts(ptr noundef nonnull %18, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) %357 = icmp slt i32 %356, 0 br i1 %357, label %358, label %thread-pre-split455 @@ -8049,7 +8049,7 @@ onig_node_free.exit739: ; preds = %373 br label %392 392: ; preds = %385, %381 - %393 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %393 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %394 = icmp slt i32 %393, 0 br i1 %394, label %onig_node_free.exit740, label %395 @@ -8059,7 +8059,7 @@ onig_node_free.exit740: ; preds = %392 br label %prs_bag.exit.thread 395: ; preds = %392 - %396 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 1) + %396 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 1) %397 = icmp slt i32 %396, 0 br i1 %397, label %onig_node_free.exit741, label %399 @@ -8609,12 +8609,12 @@ node_new_option.exit431.thread: ; preds = %639 br i1 %.not537.i, label %657, label %prs_bag.exit.thread 657: ; preds = %655, %652 - %658 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %658 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %659 = icmp slt i32 %658, 0 br i1 %659, label %prs_bag.exit.thread, label %660 660: ; preds = %657 - %661 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) + %661 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) store i32 %653, ptr %5, align 8 %662 = icmp slt i32 %661, 0 br i1 %662, label %663, label %665 @@ -8679,7 +8679,7 @@ node_new_option.exit.thread: ; preds = %665 %691 = sext i32 %690 to i64 %692 = getelementptr inbounds i8, ptr %50, i64 %691 store ptr %692, ptr %14, align 8 - %693 = call fastcc i32 @prs_callout_of_name(ptr noundef %0, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %693 = call fastcc i32 @prs_callout_of_name(ptr noundef nonnull %0, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %.not509.i = icmp eq i32 %693, 0 br i1 %.not509.i, label %767, label %prs_bag.exit @@ -8804,12 +8804,12 @@ thread-pre-split468: ; preds = %155, %446, %735 br i1 %740, label %prs_bag.exit.thread, label %741 741: ; preds = %738 - %742 = call fastcc i32 @fetch_token(ptr noundef %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) + %742 = call fastcc i32 @fetch_token(ptr noundef nonnull %1, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5) %743 = icmp slt i32 %742, 0 br i1 %743, label %prs_bag.exit.thread, label %744 744: ; preds = %741 - %745 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) + %745 = call fastcc i32 @prs_alts(ptr noundef nonnull %13, ptr noundef nonnull %1, i32 noundef 15, ptr noundef %14, ptr noundef %4, ptr noundef nonnull %5, i32 noundef 0) %746 = icmp slt i32 %745, 0 %747 = load ptr, ptr %13, align 8 br i1 %746, label %748, label %749 @@ -9997,7 +9997,7 @@ node_new_anchor_with_options.exit.i: ; preds = %1229 %1241 = getelementptr inbounds i8, ptr %calloc.i.i.i.i.i406, i64 4 store i32 4194304, ptr %1241, align 4 store ptr %calloc.i.i.i.i.i406, ptr %indvars.iv.i.sroa.gep452, align 8 - %1242 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %8) + %1242 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %8) %1243 = icmp eq ptr %1242, null br i1 %1243, label %node_new_true_anychar.exit.i.preheader, label %1244 @@ -10031,7 +10031,7 @@ node_new_anchor_with_options.exit.i: ; preds = %1229 %1254 = getelementptr inbounds i8, ptr %calloc.i.i.i.i27.i, i64 4 store i32 4194304, ptr %1254, align 4 store ptr %calloc.i.i.i.i27.i, ptr %8, align 16 - %1255 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %8) + %1255 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %8) %1256 = icmp eq ptr %1255, null br i1 %1256, label %node_new_true_anychar.exit.i.preheader, label %1257 @@ -11551,7 +11551,7 @@ node_new_cclass.exit.thread: ; preds = %.thread318 214: ; preds = %211 %215 = getelementptr inbounds i8, ptr %.03948.i, i64 8 %216 = load i32, ptr %215, align 8 - %217 = call fastcc i32 @add_ctype_to_cc(ptr noundef %.0225.ph, i32 noundef %216, i32 noundef %.040.i, ptr noundef readonly %4) + %217 = call fastcc i32 @add_ctype_to_cc(ptr noundef nonnull %.0225.ph, i32 noundef %216, i32 noundef %.040.i, ptr noundef readonly %4) %.not46.i = icmp eq i32 %217, 0 br i1 %.not46.i, label %.thread328, label %prs_posix_bracket.exit @@ -12629,7 +12629,7 @@ node_new_str.exit: ; preds = %129 ._crit_edge123.thread: ; preds = %.preheader, %._crit_edge123 %.094.lcssa141 = phi i32 [ %.1, %._crit_edge123 ], [ 0, %.preheader ] - %156 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef %.094.lcssa141, ptr noundef readonly %6) + %156 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef %.094.lcssa141, ptr noundef nonnull readonly %6) br label %157 157: ; preds = %._crit_edge123.thread, %154 @@ -13459,7 +13459,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_range_clear(ptr nocapture noun 19: ; preds = %14 store i32 10, ptr %calloc.i.i32, align 8 - %20 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %3) + %20 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %3) %21 = icmp eq ptr %20, null br i1 %21, label %onig_node_free.exit, label %22 @@ -13480,7 +13480,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_range_clear(ptr nocapture noun store i32 5, ptr %27, align 4 %28 = getelementptr inbounds i8, ptr %calloc.i.i34, i64 4 store i32 16777216, ptr %28, align 4 - %29 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef readonly %3) + %29 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef nonnull readonly %3) %30 = icmp eq ptr %29, null br i1 %30, label %onig_node_free.exit, label %31 @@ -13491,7 +13491,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_range_clear(ptr nocapture noun store i32 %34, ptr %32, align 4 store ptr %calloc.i.i, ptr %3, align 16 store ptr %29, ptr %4, align 8 - %35 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %3) + %35 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %3) %36 = icmp eq ptr %35, null br i1 %36, label %onig_node_free.exit.thread, label %37 @@ -13701,7 +13701,7 @@ is_simple_one_char_repeat.exit: ; preds = %57, %58 store i32 2, ptr %81, align 8 %82 = getelementptr inbounds i8, ptr %calloc.i.i33.i, i64 20 store i32 2, ptr %82, align 4 - %83 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 3, ptr noundef readonly %6) + %83 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 3, ptr noundef nonnull readonly %6) %84 = icmp eq ptr %83, null br i1 %84, label %node_new_save_gimmick.exit.i, label %make_absent_tree_for_simple_one_char_repeat.exit.thread @@ -13811,7 +13811,7 @@ is_simple_one_char_repeat.exit.thread: ; preds = %40, %36, %._crit_ed br i1 %10, label %121, label %118 118: ; preds = %114 - %119 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 4, ptr noundef readonly %7) + %119 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 4, ptr noundef nonnull readonly %7) %120 = icmp eq ptr %119, null br i1 %120, label %onig_node_free.exit64, label %127 @@ -13822,7 +13822,7 @@ is_simple_one_char_repeat.exit.thread: ; preds = %40, %36, %._crit_ed br i1 %.not59, label %124, label %onig_node_free.exit64 124: ; preds = %121 - %125 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 7, ptr noundef readonly %7) + %125 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 7, ptr noundef nonnull readonly %7) %126 = icmp eq ptr %125, null br i1 %126, label %onig_node_free.exit64, label %127 @@ -14906,7 +14906,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_absent_engine(ptr nocapture no 32: ; preds = %30 store i32 10, ptr %calloc.i.i64, align 8 - %33 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 4, ptr noundef readonly %10) + %33 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 4, ptr noundef nonnull readonly %10) %34 = icmp eq ptr %33, null br i1 %34, label %node_new_save_gimmick.exit.preheader, label %35 @@ -14914,7 +14914,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_absent_engine(ptr nocapture no store ptr %33, ptr %10, align 16 store ptr %3, ptr %12, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %22, i8 0, i64 16, i1 false) - %36 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef readonly %10) + %36 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef nonnull readonly %10) %37 = icmp eq ptr %36, null br i1 %37, label %node_new_save_gimmick.exit.preheader, label %38 @@ -14973,14 +14973,14 @@ define internal fastcc range(i32 -5, 1) i32 @make_absent_engine(ptr nocapture no 57: ; preds = %52 store i32 10, ptr %calloc.i.i71, align 8 - %58 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %12) + %58 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %12) %59 = icmp eq ptr %58, null br i1 %59, label %node_new_save_gimmick.exit.preheader, label %60 60: ; preds = %57 store ptr %58, ptr %12, align 8 store ptr null, ptr %22, align 16 - %61 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef readonly %10) + %61 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef nonnull readonly %10) %62 = icmp eq ptr %61, null br i1 %62, label %node_new_save_gimmick.exit.preheader, label %63 @@ -15065,7 +15065,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_absent_tail(ptr nocapture noun 21: ; preds = %16 store i32 10, ptr %calloc.i.i31, align 8 - %22 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef readonly %5) + %22 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 7, i32 noundef 2, ptr noundef nonnull readonly %5) %23 = icmp eq ptr %22, null br i1 %23, label %onig_node_free.exit, label %24 @@ -15084,7 +15084,7 @@ define internal fastcc range(i32 -5, 1) i32 @make_absent_tail(ptr nocapture noun store i32 2, ptr %28, align 8 %29 = getelementptr inbounds i8, ptr %calloc.i.i33, i64 20 store i32 2, ptr %29, align 4 - %30 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef readonly %5) + %30 = call fastcc noundef ptr @make_list_or_alt(i32 noundef 8, i32 noundef 2, ptr noundef nonnull readonly %5) %31 = icmp eq ptr %30, null br i1 %31, label %onig_node_free.exit, label %32 @@ -15311,7 +15311,7 @@ callout_tag_find.exit.i: ; preds = %28 %40 = getelementptr inbounds i8, ptr %37, i64 8 store ptr %3, ptr %40, align 8 %41 = ptrtoint ptr %37 to i64 - %42 = call i32 @onig_st_insert(ptr noundef %23, i64 noundef %41, i64 noundef %4) #25 + %42 = call i32 @onig_st_insert(ptr noundef %23, i64 noundef %41, i64 noundef range(i64 -2147483648, 2147483648) %4) #25 %.fr.i = freeze i32 %42 %.not.i16.i = icmp eq i32 %.fr.i, 0 br i1 %.not.i16.i, label %callout_tag_entry_raw.exit, label %onig_st_insert_strend.exit.i @@ -15871,7 +15871,7 @@ get_next_code_point.exit.thread: ; preds = %30 .loopexit.i: ; preds = %23, %21 store ptr %22, ptr %6, align 8 - %32 = call fastcc i32 @scan_number_of_base(ptr noundef %6, ptr noundef %2, ptr noundef readonly %12, ptr noundef %7, i32 noundef %19) + %32 = call fastcc i32 @scan_number_of_base(ptr noundef %6, ptr noundef %2, ptr noundef readonly %12, ptr noundef nonnull %7, i32 noundef %19) %.not26.i = icmp eq i32 %32, 0 br i1 %.not26.i, label %33, label %get_next_code_point.exit @@ -16366,7 +16366,7 @@ get_next_code_point.exit: ; preds = %.loopexit.i, %.loop 258: ; preds = %68 store ptr %52, ptr %9, align 8 - %259 = call fastcc i32 @fetch_escaped_value_raw(ptr noundef %9, ptr noundef %2, ptr noundef %3, ptr noundef %8) + %259 = call fastcc i32 @fetch_escaped_value_raw(ptr noundef nonnull %9, ptr noundef %2, ptr noundef %3, ptr noundef nonnull %8) %.not.i250 = icmp eq i32 %259, 0 br i1 %.not.i250, label %fetch_escaped_value.exit, label %fetch_escaped_value.exit.thread diff --git a/bench/opencv/optimized/datastructs.cpp.ll b/bench/opencv/optimized/datastructs.cpp.ll index 10edae09dc5..649e7495967 100644 --- a/bench/opencv/optimized/datastructs.cpp.ll +++ b/bench/opencv/optimized/datastructs.cpp.ll @@ -11625,7 +11625,7 @@ define void @cvClearGraph(ptr noundef %0) local_unnamed_addr #0 personality ptr %2 = alloca %"class.std::__cxx11::basic_string", align 8 %3 = alloca %"class.std::allocator", align 1 %.not = icmp eq ptr %0, null - br i1 %.not, label %4, label %12 + br i1 %.not, label %4, label %cvClearSeq.exit 4: ; preds = %1 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #10 @@ -11655,19 +11655,21 @@ define void @cvClearGraph(ptr noundef %0) local_unnamed_addr #0 personality ptr call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #10 resume { ptr, i32 } %.pn -12: ; preds = %1 - %13 = getelementptr inbounds i8, ptr %0, i64 112 - %14 = load ptr, ptr %13, align 8 - tail call void @cvClearSeq(ptr noundef %14) - %15 = getelementptr inbounds i8, ptr %14, i64 96 - store ptr null, ptr %15, align 8 - %16 = getelementptr inbounds i8, ptr %14, i64 104 - store i32 0, ptr %16, align 8 - tail call void @cvClearSeq(ptr noundef nonnull %0) - %17 = getelementptr inbounds i8, ptr %0, i64 96 - store ptr null, ptr %17, align 8 - %18 = getelementptr inbounds i8, ptr %0, i64 104 - store i32 0, ptr %18, align 8 +cvClearSeq.exit: ; preds = %1 + %12 = getelementptr inbounds i8, ptr %0, i64 112 + %13 = load ptr, ptr %12, align 8 + tail call void @cvClearSeq(ptr noundef %13) + %14 = getelementptr inbounds i8, ptr %13, i64 96 + store ptr null, ptr %14, align 8 + %15 = getelementptr inbounds i8, ptr %13, i64 104 + store i32 0, ptr %15, align 8 + %16 = getelementptr inbounds i8, ptr %0, i64 40 + %17 = load i32, ptr %16, align 8 + tail call void @cvSeqPopMulti(ptr noundef nonnull %0, ptr noundef null, i32 noundef %17, i32 noundef 0) + %18 = getelementptr inbounds i8, ptr %0, i64 96 + store ptr null, ptr %18, align 8 + %19 = getelementptr inbounds i8, ptr %0, i64 104 + store i32 0, ptr %19, align 8 ret void } diff --git a/bench/opencv/optimized/gstreaming.cpp.ll b/bench/opencv/optimized/gstreaming.cpp.ll index e53e1d50b37..0b15ff440ce 100644 --- a/bench/opencv/optimized/gstreaming.cpp.ll +++ b/bench/opencv/optimized/gstreaming.cpp.ll @@ -117,8 +117,6 @@ $_ZN2cv4util7variantIJNS0_9monostateENS_8GMatDescENS_11GScalarDescENS_10GArrayDe $_ZNSt6vectorIiSaIiEEaSERKS1_ = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv18GStreamingCompiled4PrivEEET_ = comdat any - $_ZN2cv18GStreamingCompiled4PrivD2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN2cv18GStreamingCompiled4PrivELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any @@ -743,12 +741,53 @@ define noundef zeroext i1 @_ZNK2cv18GStreamingCompiled4Priv7runningEv(ptr nocapt } ; Function Attrs: mustprogress uwtable -define void @_ZN2cv18GStreamingCompiledC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +define void @_ZN2cv18GStreamingCompiledC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(16) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { %2 = tail call noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #24 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %2, i8 0, i64 104, i1 false) store ptr %2, ptr %0, align 8 %3 = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv18GStreamingCompiled4PrivEEET_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull %2) + store ptr null, ptr %3, align 8 + %4 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv18GStreamingCompiled4PrivEEET_.exit unwind label %5 + +5: ; preds = %1 + %6 = landingpad { ptr, i32 } + catch ptr null + %7 = extractvalue { ptr, i32 } %6, 0 + %8 = tail call ptr @__cxa_begin_catch(ptr %7) #20 + tail call void @_ZN2cv18GStreamingCompiled4PrivD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %2) #20 + tail call void @_ZdlPv(ptr noundef nonnull %2) #22 + invoke void @__cxa_rethrow() #23 + to label %15 unwind label %9 + +9: ; preds = %5 + %10 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %11 unwind label %12 + +11: ; preds = %9 + resume { ptr, i32 } %10 + +12: ; preds = %9 + %13 = landingpad { ptr, i32 } + catch ptr null + %14 = extractvalue { ptr, i32 } %13, 0 + tail call void @__clang_call_terminate(ptr %14) #21 + unreachable + +15: ; preds = %5 + unreachable + +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv18GStreamingCompiled4PrivEEET_.exit: ; preds = %1 + %16 = getelementptr inbounds i8, ptr %4, i64 8 + store i32 1, ptr %16, align 8 + %17 = getelementptr inbounds i8, ptr %4, i64 12 + store i32 1, ptr %17, align 4 + store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv18GStreamingCompiled4PrivELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %4, align 8 + %18 = getelementptr inbounds i8, ptr %4, i64 16 + store ptr %2, ptr %18, align 8 + store ptr %4, ptr %3, align 8 ret void } @@ -775,7 +814,7 @@ _ZNK2cv6detail19ExtractArgsCallbackclERKSt6vectorINS_9GTypeInfoESaIS3_EE.exit: ; %8 = getelementptr inbounds i8, ptr %7, i64 80 %9 = getelementptr inbounds i8, ptr %1, i64 24 %10 = load ptr, ptr %9, align 8, !noalias !10 - call void %10(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.7") align 8 %3, ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(24) %8) + call void %10(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.7") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(24) %8) %11 = load ptr, ptr %0, align 8 invoke void @_ZN2cv18GStreamingCompiled4Priv9setSourceEOSt6vectorINS_7GRunArgESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef nonnull align 8 dereferenceable(24) %3) to label %_ZN2cv18GStreamingCompiled9setSourceEOSt6vectorINS_7GRunArgESaIS2_EE.exit unwind label %20 @@ -1059,7 +1098,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i.i: _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i.i.i.i.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i %68 = getelementptr inbounds i8, ptr %.06.i.i.i.i.i, i64 8 store ptr null, ptr %63, align 8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %68) #20 call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i.i.i) #22 %.not.i.i.i.i.i10 = icmp eq ptr %62, null br i1 %.not.i.i.i.i.i10, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv4util3anyEESaISB_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i.i.i, label %.lr.ph.i.i.i.i.i, !llvm.loop !18 @@ -1118,7 +1157,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i: ; _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i.i.i.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i %91 = getelementptr inbounds i8, ptr %.06.i.i.i.i, i64 8 store ptr null, ptr %86, align 8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %91) #20 call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i.i) #22 %.not.i.i.i.i12 = icmp eq ptr %85, null br i1 %.not.i.i.i.i12, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv4util3anyEESaISB_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i.i, label %.lr.ph.i.i.i.i, !llvm.loop !18 @@ -1383,7 +1422,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i.i. _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i.i.i.i.i.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i %12 = getelementptr inbounds i8, ptr %.06.i.i.i.i.i.i, i64 8 store ptr null, ptr %7, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #20 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #20 tail call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i.i.i.i) #22 %.not.i.i.i.i.i.i = icmp eq ptr %6, null br i1 %.not.i.i.i.i.i.i, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv4util3anyEESaISB_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i.i.i.i, label %.lr.ph.i.i.i.i.i.i, !llvm.loop !18 @@ -1454,7 +1493,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i: ; _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i.i.i.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i %11 = getelementptr inbounds i8, ptr %.06.i.i.i.i, i64 8 store ptr null, ptr %6, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #20 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #20 tail call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i.i) #22 %.not.i.i.i.i = icmp eq ptr %5, null br i1 %.not.i.i.i.i, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv4util3anyEESaISB_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i.i, label %.lr.ph.i.i.i.i, !llvm.loop !18 @@ -1519,7 +1558,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i: ; p _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i.i.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i %10 = getelementptr inbounds i8, ptr %.06.i.i.i, i64 8 store ptr null, ptr %5, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #20 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #20 tail call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i) #22 %.not.i.i.i = icmp eq ptr %4, null br i1 %.not.i.i.i, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv4util3anyEESaISB_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i, label %.lr.ph.i.i.i, !llvm.loop !18 @@ -1569,7 +1608,7 @@ _ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i: ; preds _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE18_M_deallocate_nodeEPSE_.exit.i: ; preds = %_ZNKSt14default_deleteIN2cv4util3any6holderEEclEPS3_.exit.i.i.i.i.i.i.i, %.lr.ph.i %10 = getelementptr inbounds i8, ptr %.06.i, i64 8 store ptr null, ptr %5, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #20 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #20 tail call void @_ZdlPv(ptr noundef nonnull %.06.i) #22 %.not.i = icmp eq ptr %4, null br i1 %.not.i, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE19_M_deallocate_nodesEPSE_.exit, label %.lr.ph.i, !llvm.loop !18 @@ -2247,7 +2286,7 @@ define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateENS_8GMatDes ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateENS_8GMatDescENS_11GScalarDescENS_10GArrayDescENS_11GOpaqueDescENS_10GFrameDescEEE6cctr_hIS3_E4helpEPNSt15aligned_storageILm48ELm8EE4typeEPKSD_(ptr noundef %0, ptr noundef %1) #3 comdat align 2 personality ptr @__gxx_personality_v0 { - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(17) %1, i64 17, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1, i64 17, i1 false) %3 = getelementptr inbounds i8, ptr %0, i64 24 %4 = getelementptr inbounds i8, ptr %1, i64 24 %5 = getelementptr inbounds i8, ptr %1, i64 32 @@ -2370,7 +2409,7 @@ define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateENS_8GMatDes ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateENS_8GMatDescENS_11GScalarDescENS_10GArrayDescENS_11GOpaqueDescENS_10GFrameDescEEE6copy_hIS3_E4helpEPNSt15aligned_storageILm48ELm8EE4typeEPKSD_(ptr noundef %0, ptr noundef %1) #3 comdat align 2 { - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(17) %1, i64 17, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %1, i64 17, i1 false) %3 = getelementptr inbounds i8, ptr %0, i64 24 %4 = getelementptr inbounds i8, ptr %1, i64 24 %5 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %4) @@ -2508,60 +2547,6 @@ _ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS1_IPiS6_EEET0_T ret ptr %0 } -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv18GStreamingCompiled4PrivEEET_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1) unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr null, ptr %0, align 8 - %3 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 - to label %4 unwind label %8 - -4: ; preds = %2 - %5 = getelementptr inbounds i8, ptr %3, i64 8 - store i32 1, ptr %5, align 8 - %6 = getelementptr inbounds i8, ptr %3, i64 12 - store i32 1, ptr %6, align 4 - store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv18GStreamingCompiled4PrivELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %3, align 8 - %7 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %1, ptr %7, align 8 - store ptr %3, ptr %0, align 8 - ret void - -8: ; preds = %2 - %9 = landingpad { ptr, i32 } - catch ptr null - %10 = extractvalue { ptr, i32 } %9, 0 - %11 = tail call ptr @__cxa_begin_catch(ptr %10) #20 - %12 = icmp eq ptr %1, null - br i1 %12, label %14, label %13 - -13: ; preds = %8 - tail call void @_ZN2cv18GStreamingCompiled4PrivD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %1) #20 - tail call void @_ZdlPv(ptr noundef nonnull %1) #22 - br label %14 - -14: ; preds = %13, %8 - invoke void @__cxa_rethrow() #23 - to label %21 unwind label %15 - -15: ; preds = %14 - %16 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %17 unwind label %18 - -17: ; preds = %15 - resume { ptr, i32 } %16 - -18: ; preds = %15 - %19 = landingpad { ptr, i32 } - catch ptr null - %20 = extractvalue { ptr, i32 } %19, 0 - tail call void @__clang_call_terminate(ptr %20) #21 - unreachable - -21: ; preds = %14 - unreachable -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN2cv18GStreamingCompiled4PrivD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %0) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds i8, ptr %0, i64 80 @@ -2801,7 +2786,7 @@ define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateESt8function br i1 %.not.i.i, label %_ZNSt8functionIFvRN2cv6detail9VectorRefEEED2Ev.exit, label %4 4: ; preds = %1 - %5 = invoke noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %0, i32 noundef 3) + %5 = invoke noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef 3) to label %_ZNSt8functionIFvRN2cv6detail9VectorRefEEED2Ev.exit unwind label %6 6: ; preds = %4 @@ -2823,7 +2808,7 @@ define linkonce_odr hidden void @_ZN2cv4util7variantIJNS0_9monostateESt8function br i1 %.not.i.i, label %_ZNSt8functionIFvRN2cv6detail9OpaqueRefEEED2Ev.exit, label %4 4: ; preds = %1 - %5 = invoke noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %0, i32 noundef 3) + %5 = invoke noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef 3) to label %_ZNSt8functionIFvRN2cv6detail9OpaqueRefEEED2Ev.exit unwind label %6 6: ; preds = %4 @@ -3001,7 +2986,7 @@ define linkonce_odr hidden noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_1 %3 = tail call noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #24 store ptr null, ptr %3, align 8 %4 = getelementptr inbounds i8, ptr %3, i64 8 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %4, ptr noundef nonnull align 8 dereferenceable(40) %1) to label %.noexc unwind label %14 .noexc: ; preds = %2 @@ -3014,7 +2999,7 @@ define linkonce_odr hidden noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_1 8: ; preds = %.noexc %9 = load ptr, ptr %7, align 8 %10 = load ptr, ptr %9, align 8 - invoke void %10(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.58") align 8 %5, ptr noundef nonnull align 8 dereferenceable(8) %7) + invoke void %10(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.58") align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %7) to label %_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE9constructISD_JRKSD_EEEvRSF_PT_DpOT0_.exit unwind label %12 11: ; preds = %.noexc @@ -3024,7 +3009,7 @@ define linkonce_odr hidden noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_1 12: ; preds = %8 %13 = landingpad { ptr, i32 } catch ptr null - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #20 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #20 br label %16 _ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv4util3anyEELb1EEEEE9constructISD_JRKSD_EEEvRSF_PT_DpOT0_.exit: ; preds = %11, %8 diff --git a/bench/opencv/optimized/seam_finders.cpp.ll b/bench/opencv/optimized/seam_finders.cpp.ll index 8d7d81670dc..de6f6f424a0 100644 --- a/bench/opencv/optimized/seam_finders.cpp.ll +++ b/bench/opencv/optimized/seam_finders.cpp.ll @@ -214,8 +214,6 @@ $_ZNSt6vectorIN2cv3MatESaIS1_EE17_M_default_appendEm = comdat any $_ZNSt6vectorIN2cv6detail7GCGraphIfE4EdgeESaIS4_EE17_M_default_appendEm = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv6detail18GraphCutSeamFinder4ImplEEET_ = comdat any - $_ZNSt15_Sp_counted_ptrIPN2cv6detail18GraphCutSeamFinder4ImplELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN2cv6detail18GraphCutSeamFinder4ImplELN9__gnu_cxx12_Lock_policyE2EED0Ev = comdat any @@ -13935,7 +13933,7 @@ define void @_ZN2cv6detail18GraphCutSeamFinder4Impl10findInPairEmmNS_5Rect_IiEE( %316 = mul nsw i32 %315, %59 %317 = add nsw i32 %.sroa.13.8.extract.trunc, 19 %318 = mul nsw i32 %58, %317 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %24, i8 0, i64 48, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(52) %24, i8 0, i64 48, i1 false) %319 = zext i32 %314 to i64 %320 = getelementptr inbounds i8, ptr %24, i64 16 %.not = icmp eq i32 %314, 0 @@ -15727,26 +15725,66 @@ _ZNSt10shared_ptrIN2cv6detail18PairwiseSeamFinderEED2Ev.exit: ; preds = %1, %20, } ; Function Attrs: mustprogress uwtable -define void @_ZN2cv6detail18GraphCutSeamFinderC2Eiff(ptr noundef nonnull align 8 dereferenceable(24) %0, i32 noundef %1, float noundef %2, float noundef %3) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { -_ZN2cv3PtrINS_6detail18PairwiseSeamFinderEEC2INS1_18GraphCutSeamFinder4ImplEEEPT_.exit: +define void @_ZN2cv6detail18GraphCutSeamFinderC2Eiff(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(24) %0, i32 noundef %1, float noundef %2, float noundef %3) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { store ptr getelementptr inbounds inrange(-16, 24) (i8, ptr @_ZTVN2cv6detail18GraphCutSeamFinderE, i64 16), ptr %0, align 8 - %4 = tail call noalias noundef nonnull dereferenceable(168) ptr @_Znwm(i64 noundef 168) #26 - %5 = getelementptr inbounds i8, ptr %0, i64 8 - %6 = getelementptr inbounds i8, ptr %4, i64 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %6, i8 0, i64 96, i1 false) - store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN2cv6detail18GraphCutSeamFinder4ImplE, i64 16), ptr %4, align 8 - %7 = getelementptr inbounds i8, ptr %4, i64 104 - %8 = getelementptr inbounds i8, ptr %4, i64 152 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %7, i8 0, i64 48, i1 false) - store i32 %1, ptr %8, align 8 - %9 = getelementptr inbounds i8, ptr %4, i64 156 - store float %2, ptr %9, align 4 - %10 = getelementptr inbounds i8, ptr %4, i64 160 - store float %3, ptr %10, align 8 - store ptr %4, ptr %5, align 8 - %11 = getelementptr inbounds i8, ptr %0, i64 16 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv6detail18GraphCutSeamFinder4ImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull %4) + %5 = tail call noalias noundef nonnull dereferenceable(168) ptr @_Znwm(i64 noundef 168) #26 + %6 = getelementptr inbounds i8, ptr %0, i64 8 + %7 = getelementptr inbounds i8, ptr %5, i64 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %7, i8 0, i64 96, i1 false) + store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN2cv6detail18GraphCutSeamFinder4ImplE, i64 16), ptr %5, align 8 + %8 = getelementptr inbounds i8, ptr %5, i64 104 + %9 = getelementptr inbounds i8, ptr %5, i64 152 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %8, i8 0, i64 48, i1 false) + store i32 %1, ptr %9, align 8 + %10 = getelementptr inbounds i8, ptr %5, i64 156 + store float %2, ptr %10, align 4 + %11 = getelementptr inbounds i8, ptr %5, i64 160 + store float %3, ptr %11, align 8 + store ptr %5, ptr %6, align 8 + %12 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr null, ptr %12, align 8 + %13 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #26 + to label %24 unwind label %14 + +14: ; preds = %4 + %15 = landingpad { ptr, i32 } + catch ptr null + %16 = extractvalue { ptr, i32 } %15, 0 + %17 = tail call ptr @__cxa_begin_catch(ptr %16) #28 + tail call void @_ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(168) %5) #28 + tail call void @_ZdlPv(ptr noundef nonnull %5) #27 + invoke void @__cxa_rethrow() #29 + to label %23 unwind label %18 + +18: ; preds = %14 + %19 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %.body unwind label %20 + +20: ; preds = %18 + %21 = landingpad { ptr, i32 } + catch ptr null + %22 = extractvalue { ptr, i32 } %21, 0 + tail call void @__clang_call_terminate(ptr %22) #30 + unreachable + +23: ; preds = %14 + unreachable + +24: ; preds = %4 + %25 = getelementptr inbounds i8, ptr %13, i64 8 + store i32 1, ptr %25, align 8 + %26 = getelementptr inbounds i8, ptr %13, i64 12 + store i32 1, ptr %26, align 4 + store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv6detail18GraphCutSeamFinder4ImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %13, align 8 + %27 = getelementptr inbounds i8, ptr %13, i64 16 + store ptr %5, ptr %27, align 8 + store ptr %13, ptr %12, align 8 ret void + +.body: ; preds = %18 + resume { ptr, i32 } %19 } ; Function Attrs: mustprogress nounwind uwtable @@ -16181,7 +16219,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i7.i: ; preds = %_ZSt8_DestroyIP br label %_ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev.exit _ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i7.i, %15 - tail call void @_ZN2cv6detail18PairwiseSeamFinderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %0) #28 + tail call void @_ZN2cv6detail18PairwiseSeamFinderD2Ev(ptr noundef nonnull align 8 dereferenceable(168) %0) #28 tail call void @_ZdlPv(ptr noundef nonnull %0) #27 ret void } @@ -18934,60 +18972,6 @@ _ZNSt12_Vector_baseIN2cv6detail7GCGraphIfE4EdgeESaIS4_EE13_M_deallocateEPS4_m.ex ret void } -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv6detail18GraphCutSeamFinder4ImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1) unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr null, ptr %0, align 8 - %3 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #26 - to label %4 unwind label %8 - -4: ; preds = %2 - %5 = getelementptr inbounds i8, ptr %3, i64 8 - store i32 1, ptr %5, align 8 - %6 = getelementptr inbounds i8, ptr %3, i64 12 - store i32 1, ptr %6, align 4 - store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv6detail18GraphCutSeamFinder4ImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %3, align 8 - %7 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %1, ptr %7, align 8 - store ptr %3, ptr %0, align 8 - ret void - -8: ; preds = %2 - %9 = landingpad { ptr, i32 } - catch ptr null - %10 = extractvalue { ptr, i32 } %9, 0 - %11 = tail call ptr @__cxa_begin_catch(ptr %10) #28 - %12 = icmp eq ptr %1, null - br i1 %12, label %14, label %13 - -13: ; preds = %8 - tail call void @_ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(168) %1) #28 - tail call void @_ZdlPv(ptr noundef nonnull %1) #27 - br label %14 - -14: ; preds = %13, %8 - invoke void @__cxa_rethrow() #29 - to label %21 unwind label %15 - -15: ; preds = %14 - %16 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %17 unwind label %18 - -17: ; preds = %15 - resume { ptr, i32 } %16 - -18: ; preds = %15 - %19 = landingpad { ptr, i32 } - catch ptr null - %20 = extractvalue { ptr, i32 } %19, 0 - tail call void @__clang_call_terminate(ptr %20) #30 - unreachable - -21: ; preds = %14 - unreachable -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNSt15_Sp_counted_ptrIPN2cv6detail18GraphCutSeamFinder4ImplELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #6 comdat align 2 { ret void @@ -19063,7 +19047,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i7.i: ; preds = %_ZSt8_DestroyIP br label %_ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev.exit _ZN2cv6detail18GraphCutSeamFinder4ImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i7.i, %19 - tail call void @_ZN2cv6detail18PairwiseSeamFinderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %3) #28 + tail call void @_ZN2cv6detail18PairwiseSeamFinderD2Ev(ptr noundef nonnull align 8 dereferenceable(168) %3) #28 tail call void @_ZdlPv(ptr noundef nonnull %3) #27 br label %20 diff --git a/bench/opencv/optimized/slice_layer.cpp.ll b/bench/opencv/optimized/slice_layer.cpp.ll index c9da5cd50f8..47b1779e9a4 100644 --- a/bench/opencv/optimized/slice_layer.cpp.ll +++ b/bench/opencv/optimized/slice_layer.cpp.ll @@ -168,8 +168,6 @@ $_ZNSt15_Sp_counted_ptrIPN2cv3dnn14SliceLayerImplELN9__gnu_cxx12_Lock_policyE2EE $_ZNSt15_Sp_counted_ptrIPN2cv3dnn14SliceLayerImplELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv3dnn13CropLayerImplEEET_ = comdat any - $_ZNSt15_Sp_counted_ptrIPN2cv3dnn13CropLayerImplELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN2cv3dnn13CropLayerImplELN9__gnu_cxx12_Lock_policyE2EED0Ev = comdat any @@ -815,7 +813,7 @@ define linkonce_odr hidden void @_ZN2cv3dnn14SliceLayerImplC2ERKNS0_14dnn4_v2024 %60 = alloca %"class.std::allocator.15", align 1 %61 = alloca %"class.std::__cxx11::basic_string", align 8 %62 = alloca %"class.std::allocator.15", align 1 - tail call void @_ZN2cv3dnn14dnn4_v202405215LayerC2Ev(ptr noundef nonnull align 8 dereferenceable(100) %0) + tail call void @_ZN2cv3dnn14dnn4_v202405215LayerC2Ev(ptr noundef nonnull align 8 dereferenceable(160) %0) %63 = getelementptr inbounds i8, ptr %0, i64 104 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %63, i8 0, i64 48, i1 false) store ptr getelementptr inbounds inrange(-16, 264) (i8, ptr @_ZTVN2cv3dnn14SliceLayerImplE, i64 16), ptr %0, align 8 @@ -2881,22 +2879,64 @@ _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %.body, %749 declare void @_ZdlPv(ptr noundef) local_unnamed_addr #10 ; Function Attrs: mustprogress uwtable -define void @_ZN2cv3dnn14dnn4_v202405219CropLayer6createERKNS1_11LayerParamsE(ptr dead_on_unwind noalias writable sret(%"struct.cv::Ptr.27") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 { +define void @_ZN2cv3dnn14dnn4_v202405219CropLayer6createERKNS1_11LayerParamsE(ptr dead_on_unwind noalias nocapture writable writeonly sret(%"struct.cv::Ptr.27") align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 { %3 = tail call noalias noundef nonnull dereferenceable(240) ptr @_Znwm(i64 noundef 240) #24 invoke void @_ZN2cv3dnn13CropLayerImplC2ERKNS0_14dnn4_v2024052111LayerParamsE(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(136) %1) - to label %4 unwind label %6 + to label %4 unwind label %20 4: ; preds = %2 store ptr %3, ptr %0, align 8 %5 = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv3dnn13CropLayerImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %3) + store ptr null, ptr %5, align 8 + %6 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv3dnn13CropLayerImplEEET_.exit unwind label %7 + +7: ; preds = %4 + %8 = landingpad { ptr, i32 } + catch ptr null + %9 = extractvalue { ptr, i32 } %8, 0 + %10 = tail call ptr @__cxa_begin_catch(ptr %9) #26 + tail call void @_ZN2cv3dnn13CropLayerImplD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #26 + tail call void @_ZdlPv(ptr noundef nonnull %3) #25 + invoke void @__cxa_rethrow() #23 + to label %16 unwind label %11 + +11: ; preds = %7 + %12 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %common.resume unwind label %13 + +common.resume: ; preds = %11, %20 + %common.resume.op = phi { ptr, i32 } [ %21, %20 ], [ %12, %11 ] + resume { ptr, i32 } %common.resume.op + +13: ; preds = %11 + %14 = landingpad { ptr, i32 } + catch ptr null + %15 = extractvalue { ptr, i32 } %14, 0 + tail call void @__clang_call_terminate(ptr %15) #27 + unreachable + +16: ; preds = %7 + unreachable + +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv3dnn13CropLayerImplEEET_.exit: ; preds = %4 + %17 = getelementptr inbounds i8, ptr %6, i64 8 + store i32 1, ptr %17, align 8 + %18 = getelementptr inbounds i8, ptr %6, i64 12 + store i32 1, ptr %18, align 4 + store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv3dnn13CropLayerImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %6, align 8 + %19 = getelementptr inbounds i8, ptr %6, i64 16 + store ptr %3, ptr %19, align 8 + store ptr %6, ptr %5, align 8 ret void -6: ; preds = %2 - %7 = landingpad { ptr, i32 } +20: ; preds = %2 + %21 = landingpad { ptr, i32 } cleanup tail call void @_ZdlPv(ptr noundef nonnull %3) #25 - resume { ptr, i32 } %7 + br label %common.resume } ; Function Attrs: mustprogress uwtable @@ -2955,7 +2995,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPN _ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit.i: ; preds = %23, %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i.i %24 = load ptr, ptr %10, align 8 - invoke void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv3dnn14dnn4_v202405219DictValueEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE8_M_eraseEPSt13_Rb_tree_nodeISC_E(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef %24) + invoke void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2cv3dnn14dnn4_v202405219DictValueEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE8_M_eraseEPSt13_Rb_tree_nodeISC_E(ptr noundef nonnull align 8 dereferenceable(136) %4, ptr noundef %24) to label %_ZN2cv3dnn14dnn4_v2024052111LayerParamsD2Ev.exit unwind label %25 25: ; preds = %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit.i @@ -3479,7 +3519,7 @@ _ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i: ; preds br label %_ZN2cv3dnn14SliceLayerImplD2Ev.exit _ZN2cv3dnn14SliceLayerImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i, %13 - tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %0) #26 + tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(211) %0) #26 tail call void @_ZdlPv(ptr noundef nonnull %0) #25 ret void } @@ -8923,7 +8963,7 @@ _ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i: ; preds br label %_ZN2cv3dnn14SliceLayerImplD2Ev.exit _ZN2cv3dnn14SliceLayerImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i, %16 - tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %0) #26 + tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(211) %0) #26 ret void } @@ -8986,7 +9026,7 @@ _ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i.i: ; pre br label %_ZN2cv3dnn13CropLayerImplD2Ev.exit _ZN2cv3dnn13CropLayerImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i.i, %16 - tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %0) #26 + tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #26 tail call void @_ZdlPv(ptr noundef nonnull %0) #25 ret void } @@ -9612,7 +9652,7 @@ define linkonce_odr void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_tra %7 = getelementptr inbounds i8, ptr %.07, i64 32 %8 = getelementptr inbounds i8, ptr %.07, i64 64 tail call void @_ZN2cv3dnn14dnn4_v202405219DictValue7releaseEv(ptr noundef nonnull align 8 dereferenceable(16) %8) - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #26 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #26 tail call void @_ZdlPv(ptr noundef nonnull %.07) #25 %.not = icmp eq ptr %6, null br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !74 @@ -9992,60 +10032,6 @@ define linkonce_odr hidden noundef ptr @_ZNSt15_Sp_counted_ptrIPN2cv3dnn14SliceL ret ptr null } -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv3dnn13CropLayerImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1) unnamed_addr #6 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr null, ptr %0, align 8 - %3 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #24 - to label %4 unwind label %8 - -4: ; preds = %2 - %5 = getelementptr inbounds i8, ptr %3, i64 8 - store i32 1, ptr %5, align 8 - %6 = getelementptr inbounds i8, ptr %3, i64 12 - store i32 1, ptr %6, align 4 - store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv3dnn13CropLayerImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %3, align 8 - %7 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %1, ptr %7, align 8 - store ptr %3, ptr %0, align 8 - ret void - -8: ; preds = %2 - %9 = landingpad { ptr, i32 } - catch ptr null - %10 = extractvalue { ptr, i32 } %9, 0 - %11 = tail call ptr @__cxa_begin_catch(ptr %10) #26 - %12 = icmp eq ptr %1, null - br i1 %12, label %14, label %13 - -13: ; preds = %8 - tail call void @_ZN2cv3dnn13CropLayerImplD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %1) #26 - tail call void @_ZdlPv(ptr noundef nonnull %1) #25 - br label %14 - -14: ; preds = %13, %8 - invoke void @__cxa_rethrow() #23 - to label %21 unwind label %15 - -15: ; preds = %14 - %16 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %17 unwind label %18 - -17: ; preds = %15 - resume { ptr, i32 } %16 - -18: ; preds = %15 - %19 = landingpad { ptr, i32 } - catch ptr null - %20 = extractvalue { ptr, i32 } %19, 0 - tail call void @__clang_call_terminate(ptr %20) #27 - unreachable - -21: ; preds = %14 - unreachable -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNSt15_Sp_counted_ptrIPN2cv3dnn13CropLayerImplELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #8 comdat align 2 { ret void @@ -10122,7 +10108,7 @@ _ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i.i: ; pre br label %_ZN2cv3dnn13CropLayerImplD2Ev.exit _ZN2cv3dnn13CropLayerImplD2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIN2cv5RangeESaIS2_EES4_EvT_S6_RSaIT0_E.exit.i.i.i, %20 - tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %3) #26 + tail call void @_ZN2cv3dnn14dnn4_v2024052110SliceLayerD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #26 tail call void @_ZdlPv(ptr noundef nonnull %3) #25 br label %21 diff --git a/bench/opencv/optimized/tps_trans.cpp.ll b/bench/opencv/optimized/tps_trans.cpp.ll index 15f0b5ef1df..45b9d733962 100644 --- a/bench/opencv/optimized/tps_trans.cpp.ll +++ b/bench/opencv/optimized/tps_trans.cpp.ll @@ -53,8 +53,6 @@ $_ZNK2cv35ThinPlateSplineShapeTransformerImpl26getRegularizationParameterEv = co $__clang_call_terminate = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv35ThinPlateSplineShapeTransformerImplEEET_ = comdat any - $_ZNSt15_Sp_counted_ptrIPN2cv35ThinPlateSplineShapeTransformerImplELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN2cv35ThinPlateSplineShapeTransformerImplELN9__gnu_cxx12_Lock_policyE2EED0Ev = comdat any @@ -1922,22 +1920,64 @@ declare void @_ZN2cvmlERKNS_7MatExprERKNS_3MatE(ptr dead_on_unwind writable sret declare void @_ZNK2cv3Mat1tEv(ptr dead_on_unwind writable sret(%"class.cv::MatExpr") align 8, ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 ; Function Attrs: mustprogress uwtable -define void @_ZN2cv37createThinPlateSplineShapeTransformerEd(ptr dead_on_unwind noalias writable sret(%"struct.cv::Ptr") align 8 %0, double noundef %1) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 { +define void @_ZN2cv37createThinPlateSplineShapeTransformerEd(ptr dead_on_unwind noalias nocapture writable writeonly sret(%"struct.cv::Ptr") align 8 %0, double noundef %1) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 { %3 = tail call noalias noundef nonnull dereferenceable(256) ptr @_Znwm(i64 noundef 256) #21 invoke void @_ZN2cv35ThinPlateSplineShapeTransformerImplC2Ed(ptr noundef nonnull align 8 dereferenceable(256) %3, double noundef %1) - to label %4 unwind label %6 + to label %4 unwind label %20 4: ; preds = %2 store ptr %3, ptr %0, align 8 %5 = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv35ThinPlateSplineShapeTransformerImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %3) + store ptr null, ptr %5, align 8 + %6 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #21 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv35ThinPlateSplineShapeTransformerImplEEET_.exit unwind label %7 + +7: ; preds = %4 + %8 = landingpad { ptr, i32 } + catch ptr null + %9 = extractvalue { ptr, i32 } %8, 0 + %10 = tail call ptr @__cxa_begin_catch(ptr %9) #18 + tail call void @_ZN2cv35ThinPlateSplineShapeTransformerImplD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #18 + tail call void @_ZdlPv(ptr noundef nonnull %3) #22 + invoke void @__cxa_rethrow() #19 + to label %16 unwind label %11 + +11: ; preds = %7 + %12 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %common.resume unwind label %13 + +common.resume: ; preds = %11, %20 + %common.resume.op = phi { ptr, i32 } [ %21, %20 ], [ %12, %11 ] + resume { ptr, i32 } %common.resume.op + +13: ; preds = %11 + %14 = landingpad { ptr, i32 } + catch ptr null + %15 = extractvalue { ptr, i32 } %14, 0 + tail call void @__clang_call_terminate(ptr %15) #20 + unreachable + +16: ; preds = %7 + unreachable + +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv35ThinPlateSplineShapeTransformerImplEEET_.exit: ; preds = %4 + %17 = getelementptr inbounds i8, ptr %6, i64 8 + store i32 1, ptr %17, align 8 + %18 = getelementptr inbounds i8, ptr %6, i64 12 + store i32 1, ptr %18, align 4 + store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv35ThinPlateSplineShapeTransformerImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %6, align 8 + %19 = getelementptr inbounds i8, ptr %6, i64 16 + store ptr %3, ptr %19, align 8 + store ptr %6, ptr %5, align 8 ret void -6: ; preds = %2 - %7 = landingpad { ptr, i32 } +20: ; preds = %2 + %21 = landingpad { ptr, i32 } cleanup tail call void @_ZdlPv(ptr noundef nonnull %3) #22 - resume { ptr, i32 } %7 + br label %common.resume } ; Function Attrs: nobuiltin allocsize(0) @@ -1998,7 +2038,7 @@ define linkonce_odr hidden void @_ZN2cv35ThinPlateSplineShapeTransformerImplD0Ev tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %3) #18 %4 = getelementptr inbounds i8, ptr %0, i64 32 tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #18 - tail call void @_ZN2cv9AlgorithmD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #18 + tail call void @_ZN2cv9AlgorithmD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %0) #18 tail call void @_ZdlPv(ptr noundef nonnull %0) #22 ret void } @@ -2287,60 +2327,6 @@ declare void @_ZNK2cv8FileNode6stringB5cxx11Ev(ptr dead_on_unwind writable sret( ; Function Attrs: noreturn declare void @_ZSt20__throw_length_errorPKc(ptr noundef) local_unnamed_addr #4 -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv35ThinPlateSplineShapeTransformerImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr null, ptr %0, align 8 - %3 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #21 - to label %4 unwind label %8 - -4: ; preds = %2 - %5 = getelementptr inbounds i8, ptr %3, i64 8 - store i32 1, ptr %5, align 8 - %6 = getelementptr inbounds i8, ptr %3, i64 12 - store i32 1, ptr %6, align 4 - store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv35ThinPlateSplineShapeTransformerImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %3, align 8 - %7 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %1, ptr %7, align 8 - store ptr %3, ptr %0, align 8 - ret void - -8: ; preds = %2 - %9 = landingpad { ptr, i32 } - catch ptr null - %10 = extractvalue { ptr, i32 } %9, 0 - %11 = tail call ptr @__cxa_begin_catch(ptr %10) #18 - %12 = icmp eq ptr %1, null - br i1 %12, label %14, label %13 - -13: ; preds = %8 - tail call void @_ZN2cv35ThinPlateSplineShapeTransformerImplD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %1) #18 - tail call void @_ZdlPv(ptr noundef nonnull %1) #22 - br label %14 - -14: ; preds = %13, %8 - invoke void @__cxa_rethrow() #19 - to label %21 unwind label %15 - -15: ; preds = %14 - %16 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %17 unwind label %18 - -17: ; preds = %15 - resume { ptr, i32 } %16 - -18: ; preds = %15 - %19 = landingpad { ptr, i32 } - catch ptr null - %20 = extractvalue { ptr, i32 } %19, 0 - tail call void @__clang_call_terminate(ptr %20) #20 - unreachable - -21: ; preds = %14 - unreachable -} - declare void @__cxa_rethrow() local_unnamed_addr declare void @__cxa_end_catch() local_unnamed_addr @@ -2370,7 +2356,7 @@ define linkonce_odr hidden void @_ZNSt15_Sp_counted_ptrIPN2cv35ThinPlateSplineSh tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %7) #18 %8 = getelementptr inbounds i8, ptr %3, i64 32 tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %8) #18 - tail call void @_ZN2cv9AlgorithmD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #18 + tail call void @_ZN2cv9AlgorithmD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #18 tail call void @_ZdlPv(ptr noundef nonnull %3) #22 br label %9 diff --git a/bench/opencv/optimized/wbdetector.cpp.ll b/bench/opencv/optimized/wbdetector.cpp.ll index 719a9e47596..0db1a7836e8 100644 --- a/bench/opencv/optimized/wbdetector.cpp.ll +++ b/bench/opencv/optimized/wbdetector.cpp.ll @@ -70,8 +70,6 @@ $__clang_call_terminate = comdat any $_ZNSt6vectorIN2cv3MatESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv10xobjdetect14WBDetectorImplEEET_ = comdat any - $_ZNSt15_Sp_counted_ptrIPN2cv10xobjdetect14WBDetectorImplELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN2cv10xobjdetect14WBDetectorImplELN9__gnu_cxx12_Lock_policyE2EED0Ev = comdat any @@ -2700,25 +2698,67 @@ _ZNSt6vectorIfSaIfEED2Ev.exit38: ; preds = %215, %217 declare void @_ZN2cv10xobjdetect9WaldBoost6detectENS_3PtrINS0_18CvFeatureEvaluatorEEERKNS_3MatERKSt6vectorIfSaIfEERS8_INS_5Rect_IiEESaISE_EERS8_IdSaIdEE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 ; Function Attrs: mustprogress uwtable -define void @_ZN2cv10xobjdetect10WBDetector6createEv(ptr dead_on_unwind noalias writable sret(%"struct.cv::Ptr.38") align 8 %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +define void @_ZN2cv10xobjdetect10WBDetector6createEv(ptr dead_on_unwind noalias nocapture writable writeonly sret(%"struct.cv::Ptr.38") align 8 %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { %2 = tail call noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #19 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(136) %2, i8 0, i64 136, i1 false) store ptr getelementptr inbounds inrange(-16, 48) (i8, ptr @_ZTVN2cv10xobjdetect14WBDetectorImplE, i64 16), ptr %2, align 8 %3 = getelementptr inbounds i8, ptr %2, i64 8 invoke void @_ZN2cv10xobjdetect9WaldBoostC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) - to label %_ZN2cv10xobjdetect14WBDetectorImplC2Ev.exit unwind label %5 + to label %_ZN2cv10xobjdetect14WBDetectorImplC2Ev.exit unwind label %19 _ZN2cv10xobjdetect14WBDetectorImplC2Ev.exit: ; preds = %1 store ptr %2, ptr %0, align 8 %4 = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv10xobjdetect14WBDetectorImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %2) + store ptr null, ptr %4, align 8 + %5 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #19 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv10xobjdetect14WBDetectorImplEEET_.exit unwind label %6 + +6: ; preds = %_ZN2cv10xobjdetect14WBDetectorImplC2Ev.exit + %7 = landingpad { ptr, i32 } + catch ptr null + %8 = extractvalue { ptr, i32 } %7, 0 + %9 = tail call ptr @__cxa_begin_catch(ptr %8) #16 + tail call void @_ZN2cv10xobjdetect9WaldBoostD1Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #16 + tail call void @_ZdlPv(ptr noundef nonnull %2) #17 + invoke void @__cxa_rethrow() #18 + to label %15 unwind label %10 + +10: ; preds = %6 + %11 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %common.resume unwind label %12 + +common.resume: ; preds = %10, %19 + %common.resume.op = phi { ptr, i32 } [ %20, %19 ], [ %11, %10 ] + resume { ptr, i32 } %common.resume.op + +12: ; preds = %10 + %13 = landingpad { ptr, i32 } + catch ptr null + %14 = extractvalue { ptr, i32 } %13, 0 + tail call void @__clang_call_terminate(ptr %14) #20 + unreachable + +15: ; preds = %6 + unreachable + +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv10xobjdetect14WBDetectorImplEEET_.exit: ; preds = %_ZN2cv10xobjdetect14WBDetectorImplC2Ev.exit + %16 = getelementptr inbounds i8, ptr %5, i64 8 + store i32 1, ptr %16, align 8 + %17 = getelementptr inbounds i8, ptr %5, i64 12 + store i32 1, ptr %17, align 4 + store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv10xobjdetect14WBDetectorImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %5, align 8 + %18 = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %2, ptr %18, align 8 + store ptr %5, ptr %4, align 8 ret void -5: ; preds = %1 - %6 = landingpad { ptr, i32 } +19: ; preds = %1 + %20 = landingpad { ptr, i32 } cleanup tail call void @_ZdlPv(ptr noundef nonnull %2) #17 - resume { ptr, i32 } %6 + br label %common.resume } ; Function Attrs: nobuiltin allocsize(0) @@ -2865,61 +2905,6 @@ declare void @_ZN2cv3MatC2Eiii(ptr noundef nonnull align 8 dereferenceable(96), ; Function Attrs: nounwind declare void @_ZN2cv3MatC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #1 -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN2cv10xobjdetect14WBDetectorImplEEET_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1) unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - store ptr null, ptr %0, align 8 - %3 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #19 - to label %4 unwind label %8 - -4: ; preds = %2 - %5 = getelementptr inbounds i8, ptr %3, i64 8 - store i32 1, ptr %5, align 8 - %6 = getelementptr inbounds i8, ptr %3, i64 12 - store i32 1, ptr %6, align 4 - store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN2cv10xobjdetect14WBDetectorImplELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %3, align 8 - %7 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %1, ptr %7, align 8 - store ptr %3, ptr %0, align 8 - ret void - -8: ; preds = %2 - %9 = landingpad { ptr, i32 } - catch ptr null - %10 = extractvalue { ptr, i32 } %9, 0 - %11 = tail call ptr @__cxa_begin_catch(ptr %10) #16 - %12 = icmp eq ptr %1, null - br i1 %12, label %15, label %13 - -13: ; preds = %8 - %14 = getelementptr inbounds i8, ptr %1, i64 8 - tail call void @_ZN2cv10xobjdetect9WaldBoostD1Ev(ptr noundef nonnull align 8 dereferenceable(128) %14) #16 - tail call void @_ZdlPv(ptr noundef nonnull %1) #17 - br label %15 - -15: ; preds = %13, %8 - invoke void @__cxa_rethrow() #18 - to label %22 unwind label %16 - -16: ; preds = %15 - %17 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %18 unwind label %19 - -18: ; preds = %16 - resume { ptr, i32 } %17 - -19: ; preds = %16 - %20 = landingpad { ptr, i32 } - catch ptr null - %21 = extractvalue { ptr, i32 } %20, 0 - tail call void @__clang_call_terminate(ptr %21) #20 - unreachable - -22: ; preds = %15 - unreachable -} - declare void @__cxa_rethrow() local_unnamed_addr declare void @__cxa_end_catch() local_unnamed_addr diff --git a/bench/openjdk/optimized/java.ll b/bench/openjdk/optimized/java.ll index 3e9ff32b5c1..c91dda47058 100644 --- a/bench/openjdk/optimized/java.ll +++ b/bench/openjdk/optimized/java.ll @@ -651,7 +651,7 @@ _ZN8JfrEventI14EventThreadEndE13should_commitEv.exit: ; preds = %28, %30 %51 = load ptr, ptr %50, align 8 %52 = getelementptr inbounds i8, ptr %45, i64 8 %53 = load i64, ptr %52, align 8 - call void @_ZN12outputStreamC2Eb(ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext false) #18 + call void @_ZN12outputStreamC2Eb(ptr noundef nonnull align 8 dereferenceable(160) %4, i1 noundef zeroext false) #18 store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTV17LogStreamImplBase, i64 16), ptr %4, align 8 %54 = getelementptr inbounds i8, ptr %4, i64 56 call void @_ZN17LogStreamImplBase10LineBufferC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #18 @@ -666,7 +666,7 @@ _ZN8JfrEventI14EventThreadEndE13should_commitEv.exit: ; preds = %28, %30 br i1 %.not26, label %62, label %57 57: ; preds = %41 - call void @_ZN12outputStreamC2Eb(ptr noundef nonnull align 8 dereferenceable(56) %5, i1 noundef zeroext false) #18 + call void @_ZN12outputStreamC2Eb(ptr noundef nonnull align 8 dereferenceable(160) %5, i1 noundef zeroext false) #18 store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTV17LogStreamImplBase, i64 16), ptr %5, align 8 %58 = getelementptr inbounds i8, ptr %5, i64 56 call void @_ZN17LogStreamImplBase10LineBufferC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #18 @@ -914,7 +914,7 @@ _ZN8JfrEventI14EventThreadEndE12should_writeEv.exit: ; preds = %14, %16, %20 25: ; preds = %._crit_edge, %_ZN8JfrEventI14EventThreadEndE12should_writeEv.exit %.pre-phi = phi ptr [ %.pre, %._crit_edge ], [ %22, %_ZN8JfrEventI14EventThreadEndE12should_writeEv.exit ] %26 = load ptr, ptr %.pre-phi, align 8 - %27 = tail call noundef i64 @_ZN14JfrThreadLocal9thread_idEPK6Thread(ptr noundef %26) #18 + %27 = tail call noundef i64 @_ZN14JfrThreadLocal9thread_idEPK6Thread(ptr noundef nonnull %26) #18 %28 = getelementptr inbounds i8, ptr %26, i64 600 %29 = load ptr, ptr %28, align 8 %.not.i.i = icmp eq ptr %29, null @@ -2035,13 +2035,13 @@ declare noundef zeroext i1 @_ZN14JfrThreadLocal11is_includedEPK6Thread(ptr nound define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI14EventThreadEndE17write_sized_eventEP9JfrBufferP6Threadmmb(ptr noundef nonnull align 8 dereferenceable(19) %0, ptr noundef %1, ptr noundef %2, i64 noundef %3, i64 noundef %4, i1 noundef zeroext %5) local_unnamed_addr #0 comdat align 2 { %7 = alloca %class.JfrFlush, align 8 %8 = alloca %class.EventWriterHost, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(41) %8, i8 0, i64 16, i1 false) %9 = getelementptr inbounds i8, ptr %8, i64 24 store ptr %1, ptr %9, align 8 %10 = getelementptr inbounds i8, ptr %8, i64 32 store ptr %2, ptr %10, align 8 %.not.i.i.i.i.i = icmp eq ptr %1, null - br i1 %.not.i.i.i.i.i, label %22, label %11 + br i1 %.not.i.i.i.i.i, label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, label %11 11: ; preds = %6 %12 = getelementptr inbounds i8, ptr %1, i64 16 @@ -2058,128 +2058,124 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI14EventThreadEndE17w %21 = getelementptr inbounds i8, ptr %18, i64 %20 br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i -22: ; preds = %6 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i +_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %6, %11 + %.sink.i.i.i.i.i = phi ptr [ %21, %11 ], [ null, %6 ] + %22 = getelementptr inbounds i8, ptr %8, i64 16 + store ptr %.sink.i.i.i.i.i, ptr %22, align 8 + %23 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 + %24 = icmp eq i8 %23, 0 + br i1 %24, label %25, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !15 + +25: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i + %26 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #18 + %.not.i.i.i = icmp eq i32 %26, 0 + br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %27 -_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %22, %11 - %.sink.i.i.i.i.i = phi ptr [ null, %22 ], [ %21, %11 ] - %23 = getelementptr inbounds i8, ptr %8, i64 16 - store ptr %.sink.i.i.i.i.i, ptr %23, align 8 - %24 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 - %25 = icmp eq i8 %24, 0 - br i1 %25, label %26, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !15 - -26: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - %27 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #18 - %.not.i.i.i = icmp eq i32 %27, 0 - br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %28 - -28: ; preds = %26 - %29 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #18 - %30 = zext i1 %29 to i8 - store i8 %30, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 +27: ; preds = %25 + %28 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #18 + %29 = zext i1 %28 to i8 + store i8 %29, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #18 br label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit -_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %26, %28 - %31 = getelementptr inbounds i8, ptr %8, i64 40 - %32 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 - %33 = and i8 %32, 1 - store i8 %33, ptr %31, align 8 +_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %25, %27 + %30 = getelementptr inbounds i8, ptr %8, i64 40 + %31 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 + %32 = and i8 %31, 1 + store i8 %32, ptr %30, align 8 call void @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE17begin_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %34 = load ptr, ptr %23, align 8 - %.not.i.i.i5 = icmp eq ptr %34, null - br i1 %.not.i.i.i5, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %35 - -35: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit - %36 = getelementptr inbounds i8, ptr %8, i64 8 - %37 = load ptr, ptr %36, align 8 - %38 = ptrtoint ptr %34 to i64 - %39 = ptrtoint ptr %37 to i64 - %40 = sub i64 %38, %39 - %41 = icmp ult i64 %40, 9 - br i1 %41, label %42, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - -42: ; preds = %35 - %43 = load ptr, ptr %8, align 8 - %44 = ptrtoint ptr %43 to i64 - %45 = sub i64 %39, %44 + %33 = load ptr, ptr %22, align 8 + %.not.i.i.i5 = icmp eq ptr %33, null + br i1 %.not.i.i.i5, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %34 + +34: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit + %35 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = load ptr, ptr %35, align 8 + %37 = ptrtoint ptr %33 to i64 + %38 = ptrtoint ptr %36 to i64 + %39 = sub i64 %37, %38 + %40 = icmp ult i64 %39, 9 + br i1 %40, label %41, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + +41: ; preds = %34 + %42 = load ptr, ptr %8, align 8 + %43 = ptrtoint ptr %42 to i64 + %44 = sub i64 %38, %43 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) - %46 = load ptr, ptr %9, align 8 - %47 = load ptr, ptr %10, align 8 - call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %46, i64 noundef %45, i64 noundef 9, ptr noundef %47) #18 - %48 = load ptr, ptr %7, align 8 - store ptr %48, ptr %9, align 8 - %.not5.i.i.i = icmp eq ptr %48, null + %45 = load ptr, ptr %9, align 8 + %46 = load ptr, ptr %10, align 8 + call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %45, i64 noundef %44, i64 noundef 9, ptr noundef %46) #18 + %47 = load ptr, ptr %7, align 8 + store ptr %47, ptr %9, align 8 + %.not5.i.i.i = icmp eq ptr %47, null call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) br i1 %.not5.i.i.i, label %.sink.split.i.i.i, label %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i -_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %42 - %49 = getelementptr inbounds i8, ptr %48, i64 16 - %50 = load ptr, ptr %49, align 8 - store ptr %50, ptr %8, align 8 - %51 = getelementptr inbounds i8, ptr %48, i64 40 - %52 = load i16, ptr %51, align 8 - %53 = zext i16 %52 to i64 - %54 = getelementptr inbounds i8, ptr %48, i64 %53 - %55 = getelementptr inbounds i8, ptr %48, i64 32 - %56 = load i64, ptr %55, align 8 - %57 = getelementptr inbounds i8, ptr %54, i64 %56 - %58 = getelementptr inbounds i8, ptr %50, i64 %45 - store ptr %58, ptr %36, align 8 +_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %41 + %48 = getelementptr inbounds i8, ptr %47, i64 16 + %49 = load ptr, ptr %48, align 8 + store ptr %49, ptr %8, align 8 + %50 = getelementptr inbounds i8, ptr %47, i64 40 + %51 = load i16, ptr %50, align 8 + %52 = zext i16 %51 to i64 + %53 = getelementptr inbounds i8, ptr %47, i64 %52 + %54 = getelementptr inbounds i8, ptr %47, i64 32 + %55 = load i64, ptr %54, align 8 + %56 = getelementptr inbounds i8, ptr %53, i64 %55 + %57 = getelementptr inbounds i8, ptr %49, i64 %44 + store ptr %57, ptr %35, align 8 br label %.sink.split.i.i.i -.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %42 - %.sink.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - %.0.ph.i.i.i = phi ptr [ %58, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - store ptr %.sink.i.i.i, ptr %23, align 8 +.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %41 + %.sink.i.i.i = phi ptr [ %56, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + %.0.ph.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + store ptr %.sink.i.i.i, ptr %22, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %35 - %.0.i.i.i = phi ptr [ %37, %35 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %34 + %.0.i.i.i = phi ptr [ %36, %34 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] %.not.i.i = icmp eq ptr %.0.i.i.i, null - br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %59 + br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %58 -59: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - %60 = load i8, ptr %31, align 8 - %61 = trunc i8 %60 to i1 - br i1 %61, label %62, label %63 +58: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + %59 = load i8, ptr %30, align 8 + %60 = trunc i8 %59 to i1 + br i1 %60, label %61, label %62 -62: ; preds = %59 +61: ; preds = %58 store i8 9, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -63: ; preds = %59 - %64 = ptrtoint ptr %.0.i.i.i to i64 - %65 = and i64 %64, 7 - %66 = icmp eq i64 %65, 0 - br i1 %66, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i +62: ; preds = %58 + %63 = ptrtoint ptr %.0.i.i.i to i64 + %64 = and i64 %63, 7 + %65 = icmp eq i64 %64, 0 + br i1 %65, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %62 store i64 648518346341351424, ptr %.0.i.i.i, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %62 store i64 648518346341351424, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %62 - %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %62 ] - %67 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i - store ptr %67, ptr %36, align 8 +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %61 + %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %61 ] + %66 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i + store ptr %66, ptr %35, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit _ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i - %68 = load i64, ptr %0, align 8 - call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %68) + %67 = load i64, ptr %0, align 8 + call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %67) call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %3) - %69 = getelementptr inbounds i8, ptr %0, i64 24 - %70 = load i64, ptr %69, align 8 - call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %70) - %71 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %72 = icmp sgt i64 %71, 0 - ret i1 %72 + %68 = getelementptr inbounds i8, ptr %0, i64 24 + %69 = load i64, ptr %68, align 8 + call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %69) + %70 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) + %71 = icmp sgt i64 %70, 0 + ret i1 %71 } declare noundef i64 @_ZN14JfrThreadLocal9thread_idEPK6Thread(ptr noundef) local_unnamed_addr #1 diff --git a/bench/openjdk/optimized/jfrCompilerQueueUtilization.ll b/bench/openjdk/optimized/jfrCompilerQueueUtilization.ll index fa26c4cee6b..5ac73890d28 100644 --- a/bench/openjdk/optimized/jfrCompilerQueueUtilization.ll +++ b/bench/openjdk/optimized/jfrCompilerQueueUtilization.ll @@ -443,13 +443,13 @@ declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #4 define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI29EventCompilerQueueUtilizationE17write_sized_eventEP9JfrBufferP6Threadmmb(ptr noundef nonnull align 8 dereferenceable(19) %0, ptr noundef %1, ptr noundef %2, i64 noundef %3, i64 noundef %4, i1 noundef zeroext %5) local_unnamed_addr #0 comdat align 2 { %7 = alloca %class.JfrFlush, align 8 %8 = alloca %class.EventWriterHost, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(41) %8, i8 0, i64 16, i1 false) %9 = getelementptr inbounds i8, ptr %8, i64 24 store ptr %1, ptr %9, align 8 %10 = getelementptr inbounds i8, ptr %8, i64 32 store ptr %2, ptr %10, align 8 %.not.i.i.i.i.i = icmp eq ptr %1, null - br i1 %.not.i.i.i.i.i, label %22, label %11 + br i1 %.not.i.i.i.i.i, label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, label %11 11: ; preds = %6 %12 = getelementptr inbounds i8, ptr %1, i64 16 @@ -466,125 +466,121 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI29EventCompilerQueue %21 = getelementptr inbounds i8, ptr %18, i64 %20 br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i -22: ; preds = %6 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - -_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %22, %11 - %.sink.i.i.i.i.i = phi ptr [ null, %22 ], [ %21, %11 ] - %23 = getelementptr inbounds i8, ptr %8, i64 16 - store ptr %.sink.i.i.i.i.i, ptr %23, align 8 - %24 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 - %25 = icmp eq i8 %24, 0 - br i1 %25, label %26, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !6 - -26: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - %27 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 - %.not.i.i.i = icmp eq i32 %27, 0 - br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %28 - -28: ; preds = %26 - %29 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #7 - %30 = zext i1 %29 to i8 - store i8 %30, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 +_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %6, %11 + %.sink.i.i.i.i.i = phi ptr [ %21, %11 ], [ null, %6 ] + %22 = getelementptr inbounds i8, ptr %8, i64 16 + store ptr %.sink.i.i.i.i.i, ptr %22, align 8 + %23 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 + %24 = icmp eq i8 %23, 0 + br i1 %24, label %25, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !6 + +25: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i + %26 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 + %.not.i.i.i = icmp eq i32 %26, 0 + br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %27 + +27: ; preds = %25 + %28 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #7 + %29 = zext i1 %28 to i8 + store i8 %29, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 br label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit -_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %26, %28 - %31 = getelementptr inbounds i8, ptr %8, i64 40 - %32 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 - %33 = and i8 %32, 1 - store i8 %33, ptr %31, align 8 +_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %25, %27 + %30 = getelementptr inbounds i8, ptr %8, i64 40 + %31 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 + %32 = and i8 %31, 1 + store i8 %32, ptr %30, align 8 call void @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE17begin_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %34 = load ptr, ptr %23, align 8 - %.not.i.i.i4 = icmp eq ptr %34, null - br i1 %.not.i.i.i4, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %35 - -35: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit - %36 = getelementptr inbounds i8, ptr %8, i64 8 - %37 = load ptr, ptr %36, align 8 - %38 = ptrtoint ptr %34 to i64 - %39 = ptrtoint ptr %37 to i64 - %40 = sub i64 %38, %39 - %41 = icmp ult i64 %40, 9 - br i1 %41, label %42, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - -42: ; preds = %35 - %43 = load ptr, ptr %8, align 8 - %44 = ptrtoint ptr %43 to i64 - %45 = sub i64 %39, %44 + %33 = load ptr, ptr %22, align 8 + %.not.i.i.i4 = icmp eq ptr %33, null + br i1 %.not.i.i.i4, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %34 + +34: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit + %35 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = load ptr, ptr %35, align 8 + %37 = ptrtoint ptr %33 to i64 + %38 = ptrtoint ptr %36 to i64 + %39 = sub i64 %37, %38 + %40 = icmp ult i64 %39, 9 + br i1 %40, label %41, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + +41: ; preds = %34 + %42 = load ptr, ptr %8, align 8 + %43 = ptrtoint ptr %42 to i64 + %44 = sub i64 %38, %43 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) - %46 = load ptr, ptr %9, align 8 - %47 = load ptr, ptr %10, align 8 - call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %46, i64 noundef %45, i64 noundef 9, ptr noundef %47) #7 - %48 = load ptr, ptr %7, align 8 - store ptr %48, ptr %9, align 8 - %.not5.i.i.i = icmp eq ptr %48, null + %45 = load ptr, ptr %9, align 8 + %46 = load ptr, ptr %10, align 8 + call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %45, i64 noundef %44, i64 noundef 9, ptr noundef %46) #7 + %47 = load ptr, ptr %7, align 8 + store ptr %47, ptr %9, align 8 + %.not5.i.i.i = icmp eq ptr %47, null call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) br i1 %.not5.i.i.i, label %.sink.split.i.i.i, label %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i -_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %42 - %49 = getelementptr inbounds i8, ptr %48, i64 16 - %50 = load ptr, ptr %49, align 8 - store ptr %50, ptr %8, align 8 - %51 = getelementptr inbounds i8, ptr %48, i64 40 - %52 = load i16, ptr %51, align 8 - %53 = zext i16 %52 to i64 - %54 = getelementptr inbounds i8, ptr %48, i64 %53 - %55 = getelementptr inbounds i8, ptr %48, i64 32 - %56 = load i64, ptr %55, align 8 - %57 = getelementptr inbounds i8, ptr %54, i64 %56 - %58 = getelementptr inbounds i8, ptr %50, i64 %45 - store ptr %58, ptr %36, align 8 +_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %41 + %48 = getelementptr inbounds i8, ptr %47, i64 16 + %49 = load ptr, ptr %48, align 8 + store ptr %49, ptr %8, align 8 + %50 = getelementptr inbounds i8, ptr %47, i64 40 + %51 = load i16, ptr %50, align 8 + %52 = zext i16 %51 to i64 + %53 = getelementptr inbounds i8, ptr %47, i64 %52 + %54 = getelementptr inbounds i8, ptr %47, i64 32 + %55 = load i64, ptr %54, align 8 + %56 = getelementptr inbounds i8, ptr %53, i64 %55 + %57 = getelementptr inbounds i8, ptr %49, i64 %44 + store ptr %57, ptr %35, align 8 br label %.sink.split.i.i.i -.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %42 - %.sink.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - %.0.ph.i.i.i = phi ptr [ %58, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - store ptr %.sink.i.i.i, ptr %23, align 8 +.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %41 + %.sink.i.i.i = phi ptr [ %56, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + %.0.ph.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + store ptr %.sink.i.i.i, ptr %22, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %35 - %.0.i.i.i = phi ptr [ %37, %35 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %34 + %.0.i.i.i = phi ptr [ %36, %34 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] %.not.i.i = icmp eq ptr %.0.i.i.i, null - br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %59 + br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %58 -59: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - %60 = load i8, ptr %31, align 8 - %61 = trunc i8 %60 to i1 - br i1 %61, label %62, label %63 +58: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + %59 = load i8, ptr %30, align 8 + %60 = trunc i8 %59 to i1 + br i1 %60, label %61, label %62 -62: ; preds = %59 +61: ; preds = %58 store i8 108, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -63: ; preds = %59 - %64 = ptrtoint ptr %.0.i.i.i to i64 - %65 = and i64 %64, 7 - %66 = icmp eq i64 %65, 0 - br i1 %66, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i +62: ; preds = %58 + %63 = ptrtoint ptr %.0.i.i.i to i64 + %64 = and i64 %63, 7 + %65 = icmp eq i64 %64, 0 + br i1 %65, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %62 store i64 7782220156096217088, ptr %.0.i.i.i, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %62 store i64 7782220156096217088, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %62 - %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %62 ] - %67 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i - store ptr %67, ptr %36, align 8 +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %61 + %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %61 ] + %66 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i + store ptr %66, ptr %35, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit _ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i - %68 = load i64, ptr %0, align 8 - call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %68) + %67 = load i64, ptr %0, align 8 + call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %67) call void @_ZN29EventCompilerQueueUtilization9writeDataI15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS3_ES2_I20Varint128EncoderImplS3_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEEEvRT_(ptr noundef nonnull align 8 dereferenceable(100) %0, ptr noundef nonnull align 8 dereferenceable(41) %8) - %69 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %70 = icmp sgt i64 %69, 0 - ret i1 %70 + %68 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) + %69 = icmp sgt i64 %68, 0 + ret i1 %69 } declare noundef ptr @_ZNK14JfrThreadLocal21install_native_bufferEv(ptr noundef nonnull align 8 dereferenceable(195)) local_unnamed_addr #2 diff --git a/bench/openjdk/optimized/jfrFinalizerStatisticsEvent.ll b/bench/openjdk/optimized/jfrFinalizerStatisticsEvent.ll index 5ad7b085d87..5c8d98d34f3 100644 --- a/bench/openjdk/optimized/jfrFinalizerStatisticsEvent.ll +++ b/bench/openjdk/optimized/jfrFinalizerStatisticsEvent.ll @@ -425,13 +425,13 @@ declare noundef zeroext i1 @_ZN14JfrThreadLocal11is_includedEPK6Thread(ptr nound define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI24EventFinalizerStatisticsE17write_sized_eventEP9JfrBufferP6Threadmmb(ptr noundef nonnull align 8 dereferenceable(19) %0, ptr noundef %1, ptr noundef %2, i64 noundef %3, i64 noundef %4, i1 noundef zeroext %5) local_unnamed_addr #0 comdat align 2 { %7 = alloca %class.JfrFlush, align 8 %8 = alloca %class.EventWriterHost, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(41) %8, i8 0, i64 16, i1 false) %9 = getelementptr inbounds i8, ptr %8, i64 24 store ptr %1, ptr %9, align 8 %10 = getelementptr inbounds i8, ptr %8, i64 32 store ptr %2, ptr %10, align 8 %.not.i.i.i.i.i = icmp eq ptr %1, null - br i1 %.not.i.i.i.i.i, label %22, label %11 + br i1 %.not.i.i.i.i.i, label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, label %11 11: ; preds = %6 %12 = getelementptr inbounds i8, ptr %1, i64 16 @@ -448,127 +448,123 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI24EventFinalizerStat %21 = getelementptr inbounds i8, ptr %18, i64 %20 br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i -22: ; preds = %6 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - -_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %22, %11 - %.sink.i.i.i.i.i = phi ptr [ null, %22 ], [ %21, %11 ] - %23 = getelementptr inbounds i8, ptr %8, i64 16 - store ptr %.sink.i.i.i.i.i, ptr %23, align 8 - %24 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 - %25 = icmp eq i8 %24, 0 - br i1 %25, label %26, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !6 - -26: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - %27 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 - %.not.i.i.i = icmp eq i32 %27, 0 - br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %28 - -28: ; preds = %26 - %29 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #7 - %30 = zext i1 %29 to i8 - store i8 %30, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 +_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %6, %11 + %.sink.i.i.i.i.i = phi ptr [ %21, %11 ], [ null, %6 ] + %22 = getelementptr inbounds i8, ptr %8, i64 16 + store ptr %.sink.i.i.i.i.i, ptr %22, align 8 + %23 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 + %24 = icmp eq i8 %23, 0 + br i1 %24, label %25, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !6 + +25: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i + %26 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 + %.not.i.i.i = icmp eq i32 %26, 0 + br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %27 + +27: ; preds = %25 + %28 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #7 + %29 = zext i1 %28 to i8 + store i8 %29, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #7 br label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit -_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %26, %28 - %31 = getelementptr inbounds i8, ptr %8, i64 40 - %32 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 - %33 = and i8 %32, 1 - store i8 %33, ptr %31, align 8 +_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %25, %27 + %30 = getelementptr inbounds i8, ptr %8, i64 40 + %31 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 + %32 = and i8 %31, 1 + store i8 %32, ptr %30, align 8 call void @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE17begin_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %34 = load ptr, ptr %23, align 8 - %.not.i.i.i4 = icmp eq ptr %34, null - br i1 %.not.i.i.i4, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %35 - -35: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit - %36 = getelementptr inbounds i8, ptr %8, i64 8 - %37 = load ptr, ptr %36, align 8 - %38 = ptrtoint ptr %34 to i64 - %39 = ptrtoint ptr %37 to i64 - %40 = sub i64 %38, %39 - %41 = icmp ult i64 %40, 9 - br i1 %41, label %42, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - -42: ; preds = %35 - %43 = load ptr, ptr %8, align 8 - %44 = ptrtoint ptr %43 to i64 - %45 = sub i64 %39, %44 + %33 = load ptr, ptr %22, align 8 + %.not.i.i.i4 = icmp eq ptr %33, null + br i1 %.not.i.i.i4, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %34 + +34: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit + %35 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = load ptr, ptr %35, align 8 + %37 = ptrtoint ptr %33 to i64 + %38 = ptrtoint ptr %36 to i64 + %39 = sub i64 %37, %38 + %40 = icmp ult i64 %39, 9 + br i1 %40, label %41, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + +41: ; preds = %34 + %42 = load ptr, ptr %8, align 8 + %43 = ptrtoint ptr %42 to i64 + %44 = sub i64 %38, %43 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) - %46 = load ptr, ptr %9, align 8 - %47 = load ptr, ptr %10, align 8 - call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %46, i64 noundef %45, i64 noundef 9, ptr noundef %47) #7 - %48 = load ptr, ptr %7, align 8 - store ptr %48, ptr %9, align 8 - %.not5.i.i.i = icmp eq ptr %48, null + %45 = load ptr, ptr %9, align 8 + %46 = load ptr, ptr %10, align 8 + call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %45, i64 noundef %44, i64 noundef 9, ptr noundef %46) #7 + %47 = load ptr, ptr %7, align 8 + store ptr %47, ptr %9, align 8 + %.not5.i.i.i = icmp eq ptr %47, null call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) br i1 %.not5.i.i.i, label %.sink.split.i.i.i, label %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i -_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %42 - %49 = getelementptr inbounds i8, ptr %48, i64 16 - %50 = load ptr, ptr %49, align 8 - store ptr %50, ptr %8, align 8 - %51 = getelementptr inbounds i8, ptr %48, i64 40 - %52 = load i16, ptr %51, align 8 - %53 = zext i16 %52 to i64 - %54 = getelementptr inbounds i8, ptr %48, i64 %53 - %55 = getelementptr inbounds i8, ptr %48, i64 32 - %56 = load i64, ptr %55, align 8 - %57 = getelementptr inbounds i8, ptr %54, i64 %56 - %58 = getelementptr inbounds i8, ptr %50, i64 %45 - store ptr %58, ptr %36, align 8 +_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %41 + %48 = getelementptr inbounds i8, ptr %47, i64 16 + %49 = load ptr, ptr %48, align 8 + store ptr %49, ptr %8, align 8 + %50 = getelementptr inbounds i8, ptr %47, i64 40 + %51 = load i16, ptr %50, align 8 + %52 = zext i16 %51 to i64 + %53 = getelementptr inbounds i8, ptr %47, i64 %52 + %54 = getelementptr inbounds i8, ptr %47, i64 32 + %55 = load i64, ptr %54, align 8 + %56 = getelementptr inbounds i8, ptr %53, i64 %55 + %57 = getelementptr inbounds i8, ptr %49, i64 %44 + store ptr %57, ptr %35, align 8 br label %.sink.split.i.i.i -.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %42 - %.sink.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - %.0.ph.i.i.i = phi ptr [ %58, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - store ptr %.sink.i.i.i, ptr %23, align 8 +.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %41 + %.sink.i.i.i = phi ptr [ %56, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + %.0.ph.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + store ptr %.sink.i.i.i, ptr %22, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %35 - %.0.i.i.i = phi ptr [ %37, %35 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %34 + %.0.i.i.i = phi ptr [ %36, %34 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] %.not.i.i = icmp eq ptr %.0.i.i.i, null - br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %59 + br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %58 -59: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - %60 = load i8, ptr %31, align 8 - %61 = trunc i8 %60 to i1 - br i1 %61, label %62, label %64 +58: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + %59 = load i8, ptr %30, align 8 + %60 = trunc i8 %59 to i1 + br i1 %60, label %61, label %63 -62: ; preds = %59 +61: ; preds = %58 store i8 -96, ptr %.0.i.i.i, align 1 - %63 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 1 - store i8 1, ptr %63, align 1 + %62 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 1 + store i8 1, ptr %62, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -64: ; preds = %59 - %65 = ptrtoint ptr %.0.i.i.i to i64 - %66 = and i64 %65, 7 - %67 = icmp eq i64 %66, 0 - br i1 %67, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i +63: ; preds = %58 + %64 = ptrtoint ptr %.0.i.i.i to i64 + %65 = and i64 %64, 7 + %66 = icmp eq i64 %65, 0 + br i1 %66, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %64 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %63 store i64 -6917529027641081856, ptr %.0.i.i.i, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %64 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %63 store i64 -6917529027641081856, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %62 - %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 2, %62 ] - %68 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i - store ptr %68, ptr %36, align 8 +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %61 + %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 2, %61 ] + %67 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i + store ptr %67, ptr %35, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit _ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i - %69 = load i64, ptr %0, align 8 - call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %69) + %68 = load i64, ptr %0, align 8 + call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %68) call void @_ZN24EventFinalizerStatistics9writeDataI15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS3_ES2_I20Varint128EncoderImplS3_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEEEvRT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(41) %8) - %70 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %71 = icmp sgt i64 %70, 0 - ret i1 %71 + %69 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) + %70 = icmp sgt i64 %69, 0 + ret i1 %70 } declare noundef ptr @_ZNK14JfrThreadLocal21install_native_bufferEv(ptr noundef nonnull align 8 dereferenceable(195)) local_unnamed_addr #1 diff --git a/bench/openjdk/optimized/jfrThreadCPULoadEvent.ll b/bench/openjdk/optimized/jfrThreadCPULoadEvent.ll index 4862d1da123..986dc027a8b 100644 --- a/bench/openjdk/optimized/jfrThreadCPULoadEvent.ll +++ b/bench/openjdk/optimized/jfrThreadCPULoadEvent.ll @@ -209,7 +209,7 @@ define hidden void @_ZN21JfrThreadCPULoadEvent11send_eventsEv() local_unnamed_ad %.019 = phi i32 [ 0, %.lr.ph ], [ %22, %_ZN21JfrThreadCPULoadEvent12update_eventER18EventThreadCPULoadP10JavaThreadli.exit ] %21 = call noundef ptr @_ZN28JfrJavaThreadIteratorAdapter4nextEv(ptr noundef nonnull align 8 dereferenceable(73) %10) #10 %22 = add nuw nsw i32 %.019, 1 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %2, i8 0, i64 16, i1 false) store i8 1, ptr %13, align 8 store i8 0, ptr %14, align 1 store i8 0, ptr %15, align 2 @@ -305,7 +305,7 @@ _ZN21JfrThreadCPULoadEvent12update_eventER18EventThreadCPULoadP10JavaThreadli.ex 71: ; preds = %._crit_edge, %66 call void @_ZN14JfrThreadLocal18stop_impersonatingEPK6Thread(ptr noundef %4) #10 - call void @_ZN17ThreadsListHandleD1Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #10 + call void @_ZN17ThreadsListHandleD1Ev(ptr noundef nonnull align 8 dereferenceable(73) %10) #10 ret void } @@ -367,7 +367,7 @@ _ZN8JfrEventI18EventThreadCPULoadE12should_writeEv.exit: ; preds = %14, %16, %20 25: ; preds = %._crit_edge, %_ZN8JfrEventI18EventThreadCPULoadE12should_writeEv.exit %.pre-phi = phi ptr [ %.pre, %._crit_edge ], [ %22, %_ZN8JfrEventI18EventThreadCPULoadE12should_writeEv.exit ] %26 = load ptr, ptr %.pre-phi, align 8 - %27 = tail call noundef i64 @_ZN14JfrThreadLocal9thread_idEPK6Thread(ptr noundef %26) #10 + %27 = tail call noundef i64 @_ZN14JfrThreadLocal9thread_idEPK6Thread(ptr noundef nonnull %26) #10 %28 = getelementptr inbounds i8, ptr %26, i64 600 %29 = load ptr, ptr %28, align 8 %.not.i.i = icmp eq ptr %29, null @@ -640,13 +640,13 @@ declare noundef zeroext i1 @_ZN14JfrThreadLocal11is_includedEPK6Thread(ptr nound define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI18EventThreadCPULoadE17write_sized_eventEP9JfrBufferP6Threadmmb(ptr noundef nonnull align 8 dereferenceable(19) %0, ptr noundef %1, ptr noundef %2, i64 noundef %3, i64 noundef %4, i1 noundef zeroext %5) local_unnamed_addr #0 comdat align 2 { %7 = alloca %class.JfrFlush, align 8 %8 = alloca %class.EventWriterHost, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(41) %8, i8 0, i64 16, i1 false) %9 = getelementptr inbounds i8, ptr %8, i64 24 store ptr %1, ptr %9, align 8 %10 = getelementptr inbounds i8, ptr %8, i64 32 store ptr %2, ptr %10, align 8 %.not.i.i.i.i.i = icmp eq ptr %1, null - br i1 %.not.i.i.i.i.i, label %22, label %11 + br i1 %.not.i.i.i.i.i, label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, label %11 11: ; preds = %6 %12 = getelementptr inbounds i8, ptr %1, i64 16 @@ -663,126 +663,122 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN8JfrEventI18EventThreadCPULoad %21 = getelementptr inbounds i8, ptr %18, i64 %20 br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i -22: ; preds = %6 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - br label %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - -_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %22, %11 - %.sink.i.i.i.i.i = phi ptr [ null, %22 ], [ %21, %11 ] - %23 = getelementptr inbounds i8, ptr %8, i64 16 - store ptr %.sink.i.i.i.i.i, ptr %23, align 8 - %24 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 - %25 = icmp eq i8 %24, 0 - br i1 %25, label %26, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !8 - -26: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i - %27 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #10 - %.not.i.i.i = icmp eq i32 %27, 0 - br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %28 - -28: ; preds = %26 - %29 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #10 - %30 = zext i1 %29 to i8 - store i8 %30, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 +_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i: ; preds = %6, %11 + %.sink.i.i.i.i.i = phi ptr [ %21, %11 ], [ null, %6 ] + %22 = getelementptr inbounds i8, ptr %8, i64 16 + store ptr %.sink.i.i.i.i.i, ptr %22, align 8 + %23 = load atomic i8, ptr @_ZGVZ19compressed_integersvE13comp_integers acquire, align 8 + %24 = icmp eq i8 %23, 0 + br i1 %24, label %25, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, !prof !8 + +25: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i + %26 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #10 + %.not.i.i.i = icmp eq i32 %26, 0 + br i1 %.not.i.i.i, label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, label %27 + +27: ; preds = %25 + %28 = tail call noundef zeroext i1 @_ZN12JfrOptionSet19compressed_integersEv() #10 + %29 = zext i1 %28 to i8 + store i8 %29, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ19compressed_integersvE13comp_integers) #10 br label %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit -_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %26, %28 - %31 = getelementptr inbounds i8, ptr %8, i64 40 - %32 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 - %33 = and i8 %32, 1 - store i8 %33, ptr %31, align 8 +_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit: ; preds = %_ZN16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEC2EP9JfrBufferP6Thread.exit.i.i, %25, %27 + %30 = getelementptr inbounds i8, ptr %8, i64 40 + %31 = load i8, ptr @_ZZ19compressed_integersvE13comp_integers, align 1 + %32 = and i8 %31, 1 + store i8 %32, ptr %30, align 8 call void @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE17begin_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %34 = load ptr, ptr %23, align 8 - %.not.i.i.i5 = icmp eq ptr %34, null - br i1 %.not.i.i.i5, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %35 - -35: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit - %36 = getelementptr inbounds i8, ptr %8, i64 8 - %37 = load ptr, ptr %36, align 8 - %38 = ptrtoint ptr %34 to i64 - %39 = ptrtoint ptr %37 to i64 - %40 = sub i64 %38, %39 - %41 = icmp ult i64 %40, 9 - br i1 %41, label %42, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - -42: ; preds = %35 - %43 = load ptr, ptr %8, align 8 - %44 = ptrtoint ptr %43 to i64 - %45 = sub i64 %39, %44 + %33 = load ptr, ptr %22, align 8 + %.not.i.i.i5 = icmp eq ptr %33, null + br i1 %.not.i.i.i5, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %34 + +34: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit + %35 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = load ptr, ptr %35, align 8 + %37 = ptrtoint ptr %33 to i64 + %38 = ptrtoint ptr %36 to i64 + %39 = sub i64 %37, %38 + %40 = icmp ult i64 %39, 9 + br i1 %40, label %41, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + +41: ; preds = %34 + %42 = load ptr, ptr %8, align 8 + %43 = ptrtoint ptr %42 to i64 + %44 = sub i64 %38, %43 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) - %46 = load ptr, ptr %9, align 8 - %47 = load ptr, ptr %10, align 8 - call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %46, i64 noundef %45, i64 noundef 9, ptr noundef %47) #10 - %48 = load ptr, ptr %7, align 8 - store ptr %48, ptr %9, align 8 - %.not5.i.i.i = icmp eq ptr %48, null + %45 = load ptr, ptr %9, align 8 + %46 = load ptr, ptr %10, align 8 + call void @_ZN8JfrFlushC1EP9JfrBuffermmP6Thread(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %45, i64 noundef %44, i64 noundef 9, ptr noundef %46) #10 + %47 = load ptr, ptr %7, align 8 + store ptr %47, ptr %9, align 8 + %.not5.i.i.i = icmp eq ptr %47, null call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) br i1 %.not5.i.i.i, label %.sink.split.i.i.i, label %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i -_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %42 - %49 = getelementptr inbounds i8, ptr %48, i64 16 - %50 = load ptr, ptr %49, align 8 - store ptr %50, ptr %8, align 8 - %51 = getelementptr inbounds i8, ptr %48, i64 40 - %52 = load i16, ptr %51, align 8 - %53 = zext i16 %52 to i64 - %54 = getelementptr inbounds i8, ptr %48, i64 %53 - %55 = getelementptr inbounds i8, ptr %48, i64 32 - %56 = load i64, ptr %55, align 8 - %57 = getelementptr inbounds i8, ptr %54, i64 %56 - %58 = getelementptr inbounds i8, ptr %50, i64 %45 - store ptr %58, ptr %36, align 8 +_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i: ; preds = %41 + %48 = getelementptr inbounds i8, ptr %47, i64 16 + %49 = load ptr, ptr %48, align 8 + store ptr %49, ptr %8, align 8 + %50 = getelementptr inbounds i8, ptr %47, i64 40 + %51 = load i16, ptr %50, align 8 + %52 = zext i16 %51 to i64 + %53 = getelementptr inbounds i8, ptr %47, i64 %52 + %54 = getelementptr inbounds i8, ptr %47, i64 32 + %55 = load i64, ptr %54, align 8 + %56 = getelementptr inbounds i8, ptr %53, i64 %55 + %57 = getelementptr inbounds i8, ptr %49, i64 %44 + store ptr %57, ptr %35, align 8 br label %.sink.split.i.i.i -.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %42 - %.sink.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - %.0.ph.i.i.i = phi ptr [ %58, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %42 ] - store ptr %.sink.i.i.i, ptr %23, align 8 +.sink.split.i.i.i: ; preds = %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i, %41 + %.sink.i.i.i = phi ptr [ %56, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + %.0.ph.i.i.i = phi ptr [ %57, %_ZN11StorageHostI7AdapterI8JfrFlushE8StackObjE11accommodateEmm.exit.thread.i.i.i ], [ null, %41 ] + store ptr %.sink.i.i.i, ptr %22, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %35 - %.0.i.i.i = phi ptr [ %37, %35 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i: ; preds = %.sink.split.i.i.i, %34 + %.0.i.i.i = phi ptr [ %36, %34 ], [ %.0.ph.i.i.i, %.sink.split.i.i.i ] %.not.i.i = icmp eq ptr %.0.i.i.i, null - br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %59 + br i1 %.not.i.i, label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit, label %58 -59: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i - %60 = load i8, ptr %31, align 8 - %61 = trunc i8 %60 to i1 - br i1 %61, label %62, label %63 +58: ; preds = %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i + %59 = load i8, ptr %30, align 8 + %60 = trunc i8 %59 to i1 + br i1 %60, label %61, label %62 -62: ; preds = %59 +61: ; preds = %58 store i8 106, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -63: ; preds = %59 - %64 = ptrtoint ptr %.0.i.i.i to i64 - %65 = and i64 %64, 7 - %66 = icmp eq i64 %65, 0 - br i1 %66, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i +62: ; preds = %58 + %63 = ptrtoint ptr %.0.i.i.i to i64 + %64 = and i64 %63, 7 + %65 = icmp eq i64 %64, 0 + br i1 %65, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, label %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i: ; preds = %62 store i64 7638104968020361216, ptr %.0.i.i.i, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %63 +_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i: ; preds = %62 store i64 7638104968020361216, ptr %.0.i.i.i, align 1 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i -_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %62 - %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %62 ] - %67 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i - store ptr %67, ptr %36, align 8 +_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i: ; preds = %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i, %61 + %.pn.i.i.i = phi i64 [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.i.i.i.i ], [ 8, %_ZN20BigEndianEncoderImpl6encodeImEEmT_Ph.exit.i.thread.i.i.i.i ], [ 1, %61 ] + %66 = getelementptr inbounds i8, ptr %.0.i.i.i, i64 %.pn.i.i.i + store ptr %66, ptr %35, align 8 br label %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit _ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_.exit: ; preds = %_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEC2I9JfrBufferEEPT_P6Thread.exit, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE11ensure_sizeEm.exit.i.i, %_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEPhPKT_mSE_.exit.i.i - %68 = load i64, ptr %0, align 8 - call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %68) + %67 = load i64, ptr %0, align 8 + call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeIlEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %67) call void @_ZN10WriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE5writeImEEvT_(ptr noundef nonnull align 8 dereferenceable(41) %8, i64 noundef %3) call void @_ZN18EventThreadCPULoad9writeDataI15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS3_ES2_I20Varint128EncoderImplS3_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEEEEvRT_(ptr noundef nonnull align 8 dereferenceable(28) %0, ptr noundef nonnull align 8 dereferenceable(41) %8) - %69 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) - %70 = icmp sgt i64 %69, 0 - ret i1 %70 + %68 = call noundef i64 @_ZN15EventWriterHostI11EncoderHostI20BigEndianEncoderImplS1_ES0_I20Varint128EncoderImplS1_E16MemoryWriterHostI7AdapterI8JfrFlushE8StackObj21ExclusiveAccessAssertEE15end_event_writeEb(ptr noundef nonnull align 8 dereferenceable(41) %8, i1 noundef zeroext %5) + %69 = icmp sgt i64 %68, 0 + ret i1 %69 } declare noundef ptr @_ZNK14JfrThreadLocal21install_native_bufferEv(ptr noundef nonnull align 8 dereferenceable(195)) local_unnamed_addr #1 diff --git a/bench/openssl/optimized/libcrypto-lib-pmeth_lib.ll b/bench/openssl/optimized/libcrypto-lib-pmeth_lib.ll index ca8eecf725d..fa9aa8b1899 100644 --- a/bench/openssl/optimized/libcrypto-lib-pmeth_lib.ll +++ b/bench/openssl/optimized/libcrypto-lib-pmeth_lib.ll @@ -2544,12 +2544,36 @@ if.end: ; preds = %lor.lhs.false %algctx = getelementptr inbounds i8, ptr %ctx, i64 48 %1 = load ptr, ptr %algctx, align 8 %cmp3 = icmp eq ptr %1, null - br i1 %cmp3, label %if.then4, label %if.end5 + br i1 %cmp3, label %if.end.i, label %if.end5 -if.then4: ; preds = %if.end +if.end.i: ; preds = %if.end call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %value.addr.i) store i64 %val, ptr %value.addr.i, align 8 - %call.i = call i32 @EVP_PKEY_CTX_ctrl(ptr noundef nonnull %ctx, i32 noundef -1, i32 noundef 2048, i32 noundef %ctrl, i32 noundef 0, ptr noundef nonnull %value.addr.i) + %call.i6 = tail call i32 @ERR_set_mark() #10 + %call1.i = call fastcc i32 @evp_pkey_ctx_store_cached_data(ptr noundef nonnull %ctx, i32 noundef -1, i32 noundef 2048, i32 noundef %ctrl, ptr noundef null, ptr noundef nonnull %value.addr.i, i64 noundef 0) + %cmp2.i = icmp eq i32 %call1.i, -2 + br i1 %cmp2.i, label %if.then4.i, label %if.else.i + +if.then4.i: ; preds = %if.end.i + %call5.i = call i32 @ERR_pop_to_mark() #10 + br label %if.end13.i + +if.else.i: ; preds = %if.end.i + %call6.i = call i32 @ERR_clear_last_mark() #10 + %cmp7.i = icmp slt i32 %call1.i, 1 + br i1 %cmp7.i, label %EVP_PKEY_CTX_ctrl.exit, label %lor.lhs.false.i + +lor.lhs.false.i: ; preds = %if.else.i + %2 = load i32, ptr %ctx, align 8 + %cmp9.i = icmp eq i32 %2, 0 + br i1 %cmp9.i, label %EVP_PKEY_CTX_ctrl.exit, label %if.end13.i + +if.end13.i: ; preds = %lor.lhs.false.i, %if.then4.i + %call14.i = call fastcc i32 @evp_pkey_ctx_ctrl_int(ptr noundef nonnull %ctx, i32 noundef -1, i32 noundef 2048, i32 noundef %ctrl, i32 noundef 0, ptr noundef nonnull %value.addr.i) + br label %EVP_PKEY_CTX_ctrl.exit + +EVP_PKEY_CTX_ctrl.exit: ; preds = %if.else.i, %lor.lhs.false.i, %if.end13.i + %retval.0.i = phi i32 [ %call14.i, %if.end13.i ], [ 1, %lor.lhs.false.i ], [ %call1.i, %if.else.i ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %value.addr.i) br label %return @@ -2562,8 +2586,8 @@ if.end5: ; preds = %if.end %call8 = call i32 @EVP_PKEY_CTX_set_params(ptr noundef nonnull %ctx, ptr noundef nonnull %uint64_params) br label %return -return: ; preds = %if.end5, %if.then4, %if.then - %retval.0 = phi i32 [ -2, %if.then ], [ %call.i, %if.then4 ], [ %call8, %if.end5 ] +return: ; preds = %if.end5, %EVP_PKEY_CTX_ctrl.exit, %if.then + %retval.0 = phi i32 [ -2, %if.then ], [ %retval.0.i, %EVP_PKEY_CTX_ctrl.exit ], [ %call8, %if.end5 ] ret i32 %retval.0 } diff --git a/bench/pybind11/optimized/cross_module_gil_utils.cpp.ll b/bench/pybind11/optimized/cross_module_gil_utils.cpp.ll index 42d1a9846aa..ecf22c4491c 100644 --- a/bench/pybind11/optimized/cross_module_gil_utils.cpp.ll +++ b/bench/pybind11/optimized/cross_module_gil_utils.cpp.ll @@ -672,7 +672,7 @@ define linkonce_odr hidden noundef ptr @_ZNK8pybind1117error_already_set4whatEv( 4: ; preds = %1 %5 = getelementptr inbounds i8, ptr %3, i64 8 %6 = getelementptr inbounds i8, ptr %3, i64 16 - invoke void @PyErr_Fetch(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull %6) + invoke void @PyErr_Fetch(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull %5, ptr noundef nonnull %6) to label %_ZN8pybind1111error_scopeC2Ev.exit unwind label %37 _ZN8pybind1111error_scopeC2Ev.exit: ; preds = %4 @@ -1221,7 +1221,7 @@ _ZN8pybind1118gil_scoped_releaseD2Ev.exit17: ; preds = %59, %62, %_ZN8pybin to label %.noexc unwind label %69 .noexc: ; preds = %_ZN8pybind1118gil_scoped_releaseD2Ev.exit17 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %66, ptr noundef nonnull align 1 dereferenceable(1) %5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %66, ptr noundef nonnull align 1 dereferenceable(1) %5) to label %.noexc18 unwind label %69 .noexc18: ; preds = %.noexc @@ -1231,7 +1231,7 @@ _ZN8pybind1118gil_scoped_releaseD2Ev.exit17: ; preds = %59, %62, %_ZN8pybin 67: ; preds = %.noexc18 %68 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #23 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %.noexc18 @@ -2050,7 +2050,7 @@ _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_cold br label %_ZN8pybind1117error_already_setD2Ev.exit _ZN8pybind1117error_already_setD2Ev.exit: ; preds = %1, %20, %33, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #23 + tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #23 tail call void @_ZdlPv(ptr noundef nonnull %0) #27 ret void } @@ -2077,7 +2077,7 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(488) ptr @_ZN %12 = tail call i32 @PyGILState_Ensure() %13 = getelementptr inbounds i8, ptr %2, i64 8 %14 = getelementptr inbounds i8, ptr %2, i64 16 - invoke void @PyErr_Fetch(ptr noundef nonnull %2, ptr noundef nonnull %13, ptr noundef nonnull %14) + invoke void @PyErr_Fetch(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull %13, ptr noundef nonnull %14) to label %_ZN8pybind1111error_scopeC2Ev.exit unwind label %37 _ZN8pybind1111error_scopeC2Ev.exit: ; preds = %11 @@ -2827,7 +2827,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail9internalsC2Ev(ptr noundef n to label %.noexc unwind label %51 .noexc: ; preds = %1 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %2) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %2) to label %.noexc2 unwind label %51 .noexc2: ; preds = %.noexc @@ -2837,7 +2837,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail9internalsC2Ev(ptr noundef n 49: ; preds = %.noexc2 %50 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #23 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %.noexc2 @@ -4490,7 +4490,7 @@ define linkonce_odr hidden void @_ZN8pybind1117error_already_set23m_fetched_erro call void @_ZN8pybind1118gil_scoped_acquireC2Ev(ptr noundef nonnull align 8 dereferenceable(10) %2) %4 = getelementptr inbounds i8, ptr %3, i64 8 %5 = getelementptr inbounds i8, ptr %3, i64 16 - invoke void @PyErr_Fetch(ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) + invoke void @PyErr_Fetch(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull %4, ptr noundef nonnull %5) to label %_ZN8pybind1111error_scopeC2Ev.exit unwind label %34 _ZN8pybind1111error_scopeC2Ev.exit: ; preds = %1 @@ -4618,7 +4618,7 @@ define linkonce_odr void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC 8: ; preds = %10, %6 %9 = landingpad { ptr, i32 } cleanup - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #23 resume { ptr, i32 } %9 10: ; preds = %3 @@ -5283,7 +5283,7 @@ _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit: ; preds = %17, %2, %7, %11, %1 to label %.noexc unwind label %62 .noexc: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %23, ptr noundef nonnull align 1 dereferenceable(1) %3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %23, ptr noundef nonnull align 1 dereferenceable(1) %3) to label %.noexc11 unwind label %62 .noexc11: ; preds = %.noexc @@ -5293,7 +5293,7 @@ _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit: ; preds = %17, %2, %7, %11, %1 24: ; preds = %.noexc11 %25 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #23 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit: ; preds = %.noexc11 @@ -6225,7 +6225,7 @@ define linkonce_odr void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11ch %.06.i.i.i = phi ptr [ %4, %.lr.ph.i.i.i ], [ %3, %1 ] %4 = load ptr, ptr %.06.i.i.i, align 8 %5 = getelementptr inbounds i8, ptr %.06.i.i.i, i64 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #23 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #23 tail call void @_ZdlPv(ptr noundef nonnull %.06.i.i.i) #27 %.not.i.i.i = icmp eq ptr %4, null br i1 %.not.i.i.i, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PvESaIS9_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSB_18_Mod_range_hashingENSB_20_Default_ranged_hashENSB_20_Prime_rehash_policyENSB_17_Hashtable_traitsILb1ELb0ELb1EEEE5clearEv.exit.i, label %.lr.ph.i.i.i, !llvm.loop !58 @@ -7376,7 +7376,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail27get_fully_qualified_tp_nam to label %.noexc unwind label %15 .noexc: ; preds = %2 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %3) to label %.noexc2 unwind label %15 .noexc2: ; preds = %.noexc @@ -7393,7 +7393,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail27get_fully_qualified_tp_nam 10: ; preds = %12, %8 %11 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #23 br label %.body 12: ; preds = %.noexc2 @@ -9681,13 +9681,13 @@ _ZN8pybind116detail8accessorINS0_17accessor_policies8str_attrEED2Ev.exit348: ; p to label %.noexc352 unwind label %438 .noexc352: ; preds = %424 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef %430, ptr noundef nonnull align 1 dereferenceable(1) %32) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef %430, ptr noundef nonnull align 1 dereferenceable(1) %32) to label %.noexc353 unwind label %438 431: ; preds = %.noexc353 %432 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #23 br label %.body354 .noexc353: ; preds = %.noexc352 @@ -11104,7 +11104,7 @@ _ZNSt8__detail14__to_chars_lenImEEjT_i.exit: ; preds = %16, %2, %6, %10, %1 to label %.noexc unwind label %57 .noexc: ; preds = %_ZNSt8__detail14__to_chars_lenImEEjT_i.exit - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %21, ptr noundef nonnull align 1 dereferenceable(1) %3) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %21, ptr noundef nonnull align 1 dereferenceable(1) %3) to label %.noexc6 unwind label %57 .noexc6: ; preds = %.noexc @@ -11114,7 +11114,7 @@ _ZNSt8__detail14__to_chars_lenImEEjT_i.exit: ; preds = %16, %2, %6, %10, %1 22: ; preds = %.noexc6 %23 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #23 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit: ; preds = %.noexc6 @@ -11211,7 +11211,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail27replace_newlines_and_squas to label %.noexc unwind label %29 .noexc: ; preds = %2 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %4) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %4) to label %.noexc31 unwind label %29 .noexc31: ; preds = %.noexc @@ -11228,7 +11228,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail27replace_newlines_and_squas 10: ; preds = %12, %8 %11 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #23 br label %.body 12: ; preds = %.noexc31 @@ -11326,7 +11326,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %.noexc32 unwind label %47 .noexc32: ; preds = %43 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %44, ptr noundef nonnull align 1 dereferenceable(1) %5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %44, ptr noundef nonnull align 1 dereferenceable(1) %5) to label %.noexc33 unwind label %47 .noexc33: ; preds = %.noexc32 @@ -11336,7 +11336,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr 45: ; preds = %.noexc33 %46 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #23 br label %.body34 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit36: ; preds = %.noexc33 @@ -11576,7 +11576,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail13clean_type_idERNSt7__cxx11 to label %.noexc unwind label %32 .noexc: ; preds = %14 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef %15, ptr noundef nonnull align 1 dereferenceable(1) %5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %15, ptr noundef nonnull align 1 dereferenceable(1) %5) to label %.noexc8 unwind label %32 .noexc8: ; preds = %.noexc @@ -11606,7 +11606,7 @@ define linkonce_odr hidden void @_ZN8pybind116detail13clean_type_idERNSt7__cxx11 %23 = landingpad { ptr, i32 } cleanup call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #23 - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #23 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %22 @@ -13626,7 +13626,7 @@ _ZNSt6vectorIbSaIbEE6resizeEmb.exit: ; preds = %706 .noexc.i: ; preds = %.noexc491 %718 = getelementptr inbounds i8, ptr %717, i64 440 - %719 = invoke i32 @PyThread_tss_set(ptr noundef nonnull %718, ptr noundef nonnull %18) + %719 = invoke i32 @PyThread_tss_set(ptr noundef nonnull %718, ptr noundef nonnull align 8 dereferenceable(64) %18) to label %_ZN8pybind116detail19loader_life_supportC2Ev.exit unwind label %720 720: ; preds = %.noexc.i, %.noexc491 @@ -13906,7 +13906,7 @@ _ZN8pybind114dictD2Ev.exit503._crit_edge: ; preds = %786, %_ZN8pybind114 .noexc.i509: ; preds = %.noexc511 %816 = getelementptr inbounds i8, ptr %815, i64 440 - %817 = invoke i32 @PyThread_tss_set(ptr noundef nonnull %816, ptr noundef nonnull %19) + %817 = invoke i32 @PyThread_tss_set(ptr noundef nonnull %816, ptr noundef nonnull align 8 dereferenceable(64) %19) to label %_ZN8pybind116detail19loader_life_supportC2Ev.exit514 unwind label %818 818: ; preds = %.noexc.i509, %.noexc511 @@ -14113,7 +14113,7 @@ _ZNKR8pybind116handle7inc_refEv.exit: ; preds = %879 to label %.noexc520 unwind label %952 .noexc520: ; preds = %884 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef %886, ptr noundef nonnull align 1 dereferenceable(1) %24) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %886, ptr noundef nonnull align 1 dereferenceable(1) %24) to label %.noexc521 unwind label %952 .noexc521: ; preds = %.noexc520 @@ -14130,7 +14130,7 @@ _ZNKR8pybind116handle7inc_refEv.exit: ; preds = %879 890: ; preds = %892, %888 %891 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #23 br label %.body522 892: ; preds = %.noexc521 @@ -14153,7 +14153,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %.noexc525 unwind label %956 .noexc525: ; preds = %896 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef %900, ptr noundef nonnull align 1 dereferenceable(1) %26) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %900, ptr noundef nonnull align 1 dereferenceable(1) %26) to label %.noexc526 unwind label %956 .noexc526: ; preds = %.noexc525 @@ -14165,7 +14165,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr 903: ; preds = %.noexc526 %904 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #23 br label %.body527 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit529: ; preds = %.noexc526 @@ -14239,7 +14239,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit529: ; to label %.noexc538 unwind label %972 .noexc538: ; preds = %929 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef %932, ptr noundef nonnull align 1 dereferenceable(1) %31) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %932, ptr noundef nonnull align 1 dereferenceable(1) %31) to label %.noexc539 unwind label %972 .noexc539: ; preds = %.noexc538 @@ -14265,7 +14265,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit529: ; 936: ; preds = %.loopexit.split-lp720, %.loopexit719 %lpad.phi723 = phi { ptr, i32 } [ %lpad.loopexit721, %.loopexit719 ], [ %lpad.loopexit.split-lp722, %.loopexit.split-lp720 ] - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #23 br label %.body540 937: ; preds = %.noexc539 @@ -15125,7 +15125,7 @@ _ZN8pybind115tupleD2Ev.exit592: ; preds = %_ZN8pybind119set_er to label %.noexc593 unwind label %1229 .noexc593: ; preds = %1213 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef %1214, ptr noundef nonnull align 1 dereferenceable(1) %46) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef %1214, ptr noundef nonnull align 1 dereferenceable(1) %46) to label %.noexc594 unwind label %1229 .noexc594: ; preds = %.noexc593 @@ -15135,7 +15135,7 @@ _ZN8pybind115tupleD2Ev.exit592: ; preds = %_ZN8pybind119set_er 1215: ; preds = %.noexc594 %1216 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #23 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #23 br label %.body595 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit597: ; preds = %.noexc594 @@ -17838,7 +17838,7 @@ declare i32 @PyDict_Next(ptr noundef, ptr noundef, ptr noundef, ptr noundef) loc ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZNK8pybind116detail10object_apiINS0_8accessorINS0_17accessor_policies8str_attrEEEEclILNS_19return_value_policyE1EJRKNS_6handleEEEENS_6objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.pybind11::object") align 8 %0, ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 8 dereferenceable(8) %2) local_unnamed_addr #1 comdat align 2 personality ptr @__gxx_personality_v0 { %4 = alloca %"class.pybind11::detail::simple_collector", align 8 - call void @_ZN8pybind1110make_tupleILNS_19return_value_policyE1EJRKNS_6handleEEEENS_5tupleEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.pybind11::tuple") align 8 %4, ptr noundef nonnull align 8 dereferenceable(8) %2) + call void @_ZN8pybind1110make_tupleILNS_19return_value_policyE1EJRKNS_6handleEEEENS_5tupleEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.pybind11::tuple") align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %2) %5 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8pybind116detail8accessorINS0_17accessor_policies8str_attrEE9get_cacheEv(ptr noundef nonnull align 8 dereferenceable(32) %1) to label %6 unwind label %24 @@ -18368,7 +18368,7 @@ define linkonce_odr hidden void @_ZZN8pybind117capsule35initialize_with_void_ptr %3 = alloca %"struct.pybind11::error_scope", align 8 %4 = getelementptr inbounds i8, ptr %3, i64 8 %5 = getelementptr inbounds i8, ptr %3, i64 16 - call void @PyErr_Fetch(ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) + call void @PyErr_Fetch(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull %4, ptr noundef nonnull %5) %6 = invoke ptr @PyCapsule_GetContext(ptr noundef %1) to label %7 unwind label %14 @@ -18468,7 +18468,7 @@ define linkonce_odr hidden noundef ptr @_ZN8pybind117capsule23get_name_in_error_ %2 = alloca %"struct.pybind11::error_scope", align 8 %3 = getelementptr inbounds i8, ptr %2, i64 8 %4 = getelementptr inbounds i8, ptr %2, i64 16 - call void @PyErr_Fetch(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4) + call void @PyErr_Fetch(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull %3, ptr noundef nonnull %4) %5 = invoke ptr @PyCapsule_GetName(ptr noundef %0) to label %6 unwind label %12 @@ -20213,7 +20213,7 @@ define linkonce_odr void @_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJPFvvE ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJPFvvEEEEEED0Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #0 comdat align 2 { - tail call void @_ZNSt6thread6_StateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #23 + tail call void @_ZNSt6thread6_StateD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #23 tail call void @_ZdlPv(ptr noundef nonnull %0) #27 ret void } diff --git a/bench/quantlib/optimized/abcdatmvolcurve.ll b/bench/quantlib/optimized/abcdatmvolcurve.ll index def3bd14937..639aae7a8f3 100644 --- a/bench/quantlib/optimized/abcdatmvolcurve.ll +++ b/bench/quantlib/optimized/abcdatmvolcurve.ll @@ -294,8 +294,6 @@ $_ZN8QuantLib6detail15AbcdCoeffHolderD2Ev = comdat any $_ZN8QuantLib6detail15AbcdCoeffHolderD0Ev = comdat any -$_ZN5boost14checked_deleteIN8QuantLib15AbcdCalibrationEEEvPT_ = comdat any - $_ZN5boost6detail17sp_counted_impl_pIN8QuantLib15AbcdCalibrationEED0Ev = comdat any $_ZN5boost6detail17sp_counted_impl_pIN8QuantLib15AbcdCalibrationEE7disposeEv = comdat any @@ -308,8 +306,6 @@ $_ZN5boost6detail17sp_counted_impl_pIN8QuantLib15AbcdCalibrationEE19get_untyped_ $_ZN8QuantLib15AbcdCalibrationD2Ev = comdat any -$_ZN5boost14checked_deleteIN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEESA_EEEEvPT_ = comdat any - $_ZN5boost6detail15sp_counted_baseD2Ev = comdat any $_ZN5boost6detail17sp_counted_impl_pIN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEESB_EEED0Ev = comdat any @@ -858,11 +854,11 @@ entry: %vtable.i = load ptr, ptr %this, align 8, !tbaa !47 %vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 48 %2 = load ptr, ptr %vfn.i, align 8 - call void %2(ptr dead_on_unwind nonnull writable sret(%"class.QuantLib::Calendar") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(64) %this) + call void %2(ptr dead_on_unwind nonnull writable sret(%"class.QuantLib::Calendar") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(68) %this) %vtable2.i = load ptr, ptr %this, align 8, !tbaa !47 %vfn3.i = getelementptr inbounds i8, ptr %vtable2.i, i64 40 %3 = load ptr, ptr %vfn3.i, align 8 - %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr %3(ptr noundef nonnull align 8 dereferenceable(64) %this) + %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr %3(ptr noundef nonnull align 8 dereferenceable(68) %this) to label %invoke.cont.i unwind label %lpad.i invoke.cont.i: ; preds = %entry @@ -1519,7 +1515,7 @@ if.then.i.i.i168: ; preds = %_ZNSt6vectorIN8Quan ehcleanup62: ; preds = %lpad8, %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit, %if.then.i.i.i168 %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %39, %lpad8 ], [ %.pn.pn.pn.pn.pn.pn.pn, %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit ], [ %.pn.pn.pn.pn.pn.pn.pn, %if.then.i.i.i168 ] %68 = getelementptr inbounds i8, ptr %vtt, i64 24 - call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %this, ptr noundef nonnull %68) #28 + call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %this, ptr noundef nonnull %68) #28 resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn } @@ -2730,11 +2726,11 @@ for.body: ; preds = %for.body.lr.ph, %_Z %vtable.i = load ptr, ptr %this, align 8, !tbaa !47 %vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 48 %5 = load ptr, ptr %vfn.i, align 8 - call void %5(ptr dead_on_unwind nonnull writable sret(%"class.QuantLib::Calendar") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(64) %this) + call void %5(ptr dead_on_unwind nonnull writable sret(%"class.QuantLib::Calendar") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(68) %this) %vtable2.i = load ptr, ptr %this, align 8, !tbaa !47 %vfn3.i = getelementptr inbounds i8, ptr %vtable2.i, i64 40 %6 = load ptr, ptr %vfn3.i, align 8 - %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr %6(ptr noundef nonnull align 8 dereferenceable(64) %this) + %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr %6(ptr noundef nonnull align 8 dereferenceable(68) %this) to label %invoke.cont.i unwind label %lpad.i invoke.cont.i: ; preds = %for.body @@ -4347,7 +4343,7 @@ if.then.i.i.i173: ; preds = %_ZNSt6vectorIN8Quan ehcleanup59: ; preds = %lpad6, %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit, %if.then.i.i.i173 %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %30, %lpad6 ], [ %.pn.pn.pn.pn.pn.pn.pn, %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit ], [ %.pn.pn.pn.pn.pn.pn.pn, %if.then.i.i.i173 ] - call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %this, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZTTN8QuantLib15AbcdAtmVolCurveE, i64 24)) #28 + call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %this, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZTTN8QuantLib15AbcdAtmVolCurveE, i64 24)) #28 br label %ehcleanup60 ehcleanup60: ; preds = %ehcleanup59, %lpad @@ -5852,7 +5848,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %10 = phi ptr [ %9, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %10, ptr noundef nonnull %4) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %10, ptr noundef nonnull align 8 dereferenceable(56) %4) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -5980,7 +5976,7 @@ define linkonce_odr void @_ZThn72_N8QuantLib15AbcdAtmVolCurveD0Ev(ptr noundef %t entry: %0 = getelementptr inbounds i8, ptr %this, i64 -72 tail call void @_ZN8QuantLib15AbcdAtmVolCurveD1Ev(ptr noundef nonnull align 8 dereferenceable(352) %0) #28 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 464) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(352) %0, i64 noundef 464) #32 ret void } @@ -6003,7 +5999,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib15AbcdAtmVolCurveD1Ev(ptr noundef nonnull align 8 dereferenceable(352) %2) #28 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 464) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(352) %2, i64 noundef 464) #32 ret void } @@ -6996,7 +6992,7 @@ if.then.i.i.i51: ; preds = %_ZNSt6vectorIN8Quan _ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit56: ; preds = %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EED2Ev.exit, %if.then.i.i.i51 %41 = getelementptr inbounds i8, ptr %vtt, i64 24 - tail call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %this, ptr noundef nonnull %41) #28 + tail call void @_ZN8QuantLib13TermStructureD2Ev(ptr noundef nonnull align 8 dereferenceable(68) %this, ptr noundef nonnull %41) #28 ret void } @@ -9187,7 +9183,8 @@ lpad.i.i: ; preds = %invoke.cont12 catch ptr null %7 = extractvalue { ptr, i32 } %6, 0 %8 = call ptr @__cxa_begin_catch(ptr %7) #28 - call void @_ZN5boost14checked_deleteIN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEESA_EEEEvPT_(ptr noundef nonnull %call) #28 + call void @_ZN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %call) #28 + call void @_ZdlPvm(ptr noundef nonnull %call, i64 noundef 184) #32 invoke void @__cxa_rethrow() #30 to label %unreachable.i.i unwind label %lpad5.i.i @@ -10483,7 +10480,8 @@ lpad.i.i: ; preds = %invoke.cont23 catch ptr null %28 = extractvalue { ptr, i32 } %27, 0 %29 = call ptr @__cxa_begin_catch(ptr %28) #28 - call void @_ZN5boost14checked_deleteIN8QuantLib15AbcdCalibrationEEEvPT_(ptr noundef nonnull %call9) #28 + call void @_ZN8QuantLib15AbcdCalibrationD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %call9) #28 + call void @_ZdlPvm(ptr noundef nonnull %call9, i64 noundef 176) #32 invoke void @__cxa_rethrow() #30 to label %unreachable.i.i unwind label %lpad5.i.i @@ -12072,7 +12070,7 @@ define linkonce_odr void @_ZThn32_N8QuantLib6detail21AbcdInterpolationImplIN9__g entry: %0 = getelementptr inbounds i8, ptr %this, i64 -32 tail call void @_ZN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0) #28 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 184) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(184) %0, i64 noundef 184) #32 ret void } @@ -12148,21 +12146,6 @@ declare noundef double @_ZNK8QuantLib15AbcdCalibration8maxErrorEv(ptr noundef no declare noundef i32 @_ZNK8QuantLib15AbcdCalibration11endCriteriaEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #6 -; Function Attrs: inlinehint mustprogress nounwind uwtable -define linkonce_odr void @_ZN5boost14checked_deleteIN8QuantLib15AbcdCalibrationEEEvPT_(ptr noundef %x) local_unnamed_addr #4 comdat { -entry: - %isnull = icmp eq ptr %x, null - br i1 %isnull, label %delete.end, label %delete.notnull - -delete.notnull: ; preds = %entry - tail call void @_ZN8QuantLib15AbcdCalibrationD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %x) #28 - tail call void @_ZdlPvm(ptr noundef nonnull %x, i64 noundef 176) #32 - br label %delete.end - -delete.end: ; preds = %delete.notnull, %entry - ret void -} - ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr void @_ZN5boost6detail17sp_counted_impl_pIN8QuantLib15AbcdCalibrationEED0Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: @@ -12375,21 +12358,6 @@ _ZN5boost10shared_ptrIN8QuantLib24ParametersTransformationEED2Ev.exit: ; preds = declare noundef double @_ZNK8QuantLib15AbcdCalibration5valueEd(ptr noundef nonnull align 8 dereferenceable(176), double noundef) local_unnamed_addr #6 -; Function Attrs: inlinehint mustprogress nounwind uwtable -define linkonce_odr void @_ZN5boost14checked_deleteIN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEESA_EEEEvPT_(ptr noundef %x) local_unnamed_addr #4 comdat { -entry: - %isnull = icmp eq ptr %x, null - br i1 %isnull, label %delete.end, label %delete.notnull - -delete.notnull: ; preds = %entry - tail call void @_ZN8QuantLib6detail21AbcdInterpolationImplIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %x) #28 - tail call void @_ZdlPvm(ptr noundef nonnull %x, i64 noundef 184) #32 - br label %delete.end - -delete.end: ; preds = %delete.notnull, %entry - ret void -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #9 comdat align 2 { entry: diff --git a/bench/quantlib/optimized/cmsmarket.ll b/bench/quantlib/optimized/cmsmarket.ll index 26c964b4a6e..64636093bfb 100644 --- a/bench/quantlib/optimized/cmsmarket.ll +++ b/bench/quantlib/optimized/cmsmarket.ll @@ -1152,7 +1152,7 @@ _ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i: ; pred br i1 %cmp.not.i.i.i.i104, label %_ZNSt12_Vector_baseIN8QuantLib6PeriodESaIS1_EEC2EmRKS2_.exit.thread.i, label %for.body.preheader.i.i.i.i.i _ZNSt12_Vector_baseIN8QuantLib6PeriodESaIS1_EEC2EmRKS2_.exit.thread.i: ; preds = %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %swapTenors_, i8 0, i64 16, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %swapTenors_, i8 0, i64 16, i1 false) br label %invoke.cont14 for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i @@ -1403,11 +1403,7 @@ _ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEm call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %ref.tmp68) #29 store i64 0, ptr %ref.tmp68, align 8 %cmp.not.i.i.i.i220 = icmp eq ptr %38, %39 - br i1 %cmp.not.i.i.i.i220, label %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i, label %for.body.preheader.i.i.i.i.i221 - -_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i - store i64 0, ptr %ref.tmp68, align 8 - br label %invoke.cont72 + br i1 %cmp.not.i.i.i.i220, label %invoke.cont72, label %for.body.preheader.i.i.i.i.i221 for.body.preheader.i.i.i.i.i221: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i %call5.i.i.i.i2.i.i232 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i102) #33 @@ -1420,9 +1416,9 @@ call5.i.i.i.i2.i.i.noexc231: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i224 = getelementptr i8, ptr %call5.i.i.i.i2.i.i232, i64 %sub.ptr.sub.i102 br label %invoke.cont72 -invoke.cont72: ; preds = %call5.i.i.i.i2.i.i.noexc231, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i - %add.ptr.i.i.sink.i226 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %add.ptr.i.i.i223, %call5.i.i.i.i2.i.i.noexc231 ] - %__cur.0.lcssa.i.i.i.i.i227 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %scevgep.i.i.i.i.i224, %call5.i.i.i.i2.i.i.noexc231 ] +invoke.cont72: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i, %call5.i.i.i.i2.i.i.noexc231 + %add.ptr.i.i.sink.i226 = phi ptr [ %add.ptr.i.i.i223, %call5.i.i.i.i2.i.i.noexc231 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i227 = phi ptr [ %scevgep.i.i.i.i.i224, %call5.i.i.i.i2.i.i.noexc231 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] %_M_finish.i.i7.i228 = getelementptr inbounds nuw i8, ptr %ref.tmp68, i64 8 %45 = getelementptr inbounds nuw i8, ptr %ref.tmp68, i64 16 store ptr %add.ptr.i.i.sink.i226, ptr %45, align 8 @@ -1561,11 +1557,7 @@ if.then.i.i272: ; preds = %_ZNSt6vectorIN5boos _ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EED2Ev.exit store i64 0, ptr %ref.tmp79, align 8 %cmp.not.i.i.i.i262 = icmp eq i64 %61, 0 - br i1 %cmp.not.i.i.i.i262, label %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i271, label %for.body.preheader.i.i.i.i.i263 - -_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i271: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261 - store i64 0, ptr %ref.tmp79, align 8 - br label %invoke.cont83 + br i1 %cmp.not.i.i.i.i262, label %invoke.cont83, label %for.body.preheader.i.i.i.i.i263 for.body.preheader.i.i.i.i.i263: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261 %mul.i.i.i.i.i.i264 = shl nuw nsw i64 %61, 4 @@ -1579,9 +1571,9 @@ call5.i.i.i.i2.i.i.noexc274: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i266 = getelementptr i8, ptr %call5.i.i.i.i2.i.i275, i64 %mul.i.i.i.i.i.i264 br label %invoke.cont83 -invoke.cont83: ; preds = %call5.i.i.i.i2.i.i.noexc274, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i271 - %add.ptr.i.i.sink.i268 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i271 ], [ %add.ptr.i.i.i265, %call5.i.i.i.i2.i.i.noexc274 ] - %__cur.0.lcssa.i.i.i.i.i269 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i271 ], [ %scevgep.i.i.i.i.i266, %call5.i.i.i.i2.i.i.noexc274 ] +invoke.cont83: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261, %call5.i.i.i.i2.i.i.noexc274 + %add.ptr.i.i.sink.i268 = phi ptr [ %add.ptr.i.i.i265, %call5.i.i.i.i2.i.i.noexc274 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261 ] + %__cur.0.lcssa.i.i.i.i.i269 = phi ptr [ %scevgep.i.i.i.i.i266, %call5.i.i.i.i2.i.i.noexc274 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i261 ] %_M_finish.i.i7.i270 = getelementptr inbounds nuw i8, ptr %ref.tmp79, i64 8 %62 = getelementptr inbounds nuw i8, ptr %ref.tmp79, i64 16 store ptr %add.ptr.i.i.sink.i268, ptr %62, align 8 @@ -5421,7 +5413,7 @@ _ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i: ; pred br i1 %cmp.not.i.i.i.i109, label %_ZNSt12_Vector_baseIN8QuantLib6PeriodESaIS1_EEC2EmRKS2_.exit.thread.i, label %for.body.preheader.i.i.i.i.i _ZNSt12_Vector_baseIN8QuantLib6PeriodESaIS1_EEC2EmRKS2_.exit.thread.i: ; preds = %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %swapTenors_, i8 0, i64 16, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %swapTenors_, i8 0, i64 16, i1 false) br label %invoke.cont12 for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN8QuantLib6PeriodESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i @@ -5672,11 +5664,7 @@ _ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEm call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %ref.tmp66) #29 store i64 0, ptr %ref.tmp66, align 8 %cmp.not.i.i.i.i225 = icmp eq ptr %31, %32 - br i1 %cmp.not.i.i.i.i225, label %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i, label %for.body.preheader.i.i.i.i.i226 - -_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i - store i64 0, ptr %ref.tmp66, align 8 - br label %invoke.cont70 + br i1 %cmp.not.i.i.i.i225, label %invoke.cont70, label %for.body.preheader.i.i.i.i.i226 for.body.preheader.i.i.i.i.i226: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i %call5.i.i.i.i2.i.i237 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i107) #33 @@ -5689,9 +5677,9 @@ call5.i.i.i.i2.i.i.noexc236: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i229 = getelementptr i8, ptr %call5.i.i.i.i2.i.i237, i64 %sub.ptr.sub.i107 br label %invoke.cont70 -invoke.cont70: ; preds = %call5.i.i.i.i2.i.i.noexc236, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i - %add.ptr.i.i.sink.i231 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %add.ptr.i.i.i228, %call5.i.i.i.i2.i.i.noexc236 ] - %__cur.0.lcssa.i.i.i.i.i232 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %scevgep.i.i.i.i.i229, %call5.i.i.i.i2.i.i.noexc236 ] +invoke.cont70: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i, %call5.i.i.i.i2.i.i.noexc236 + %add.ptr.i.i.sink.i231 = phi ptr [ %add.ptr.i.i.i228, %call5.i.i.i.i2.i.i.noexc236 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i232 = phi ptr [ %scevgep.i.i.i.i.i229, %call5.i.i.i.i2.i.i.noexc236 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] %_M_finish.i.i7.i233 = getelementptr inbounds nuw i8, ptr %ref.tmp66, i64 8 %38 = getelementptr inbounds nuw i8, ptr %ref.tmp66, i64 16 store ptr %add.ptr.i.i.sink.i231, ptr %38, align 8 @@ -5830,11 +5818,7 @@ if.then.i.i277: ; preds = %_ZNSt6vectorIN5boos _ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EED2Ev.exit store i64 0, ptr %ref.tmp77, align 8 %cmp.not.i.i.i.i267 = icmp eq i64 %54, 0 - br i1 %cmp.not.i.i.i.i267, label %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i276, label %for.body.preheader.i.i.i.i.i268 - -_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i276: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266 - store i64 0, ptr %ref.tmp77, align 8 - br label %invoke.cont81 + br i1 %cmp.not.i.i.i.i267, label %invoke.cont81, label %for.body.preheader.i.i.i.i.i268 for.body.preheader.i.i.i.i.i268: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266 %mul.i.i.i.i.i.i269 = shl nuw nsw i64 %54, 4 @@ -5848,9 +5832,9 @@ call5.i.i.i.i2.i.i.noexc279: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i271 = getelementptr i8, ptr %call5.i.i.i.i2.i.i280, i64 %mul.i.i.i.i.i.i269 br label %invoke.cont81 -invoke.cont81: ; preds = %call5.i.i.i.i2.i.i.noexc279, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i276 - %add.ptr.i.i.sink.i273 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i276 ], [ %add.ptr.i.i.i270, %call5.i.i.i.i2.i.i.noexc279 ] - %__cur.0.lcssa.i.i.i.i.i274 = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EEC2EmRKS5_.exit.thread.i276 ], [ %scevgep.i.i.i.i.i271, %call5.i.i.i.i2.i.i.noexc279 ] +invoke.cont81: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266, %call5.i.i.i.i2.i.i.noexc279 + %add.ptr.i.i.sink.i273 = phi ptr [ %add.ptr.i.i.i270, %call5.i.i.i.i2.i.i.noexc279 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266 ] + %__cur.0.lcssa.i.i.i.i.i274 = phi ptr [ %scevgep.i.i.i.i.i271, %call5.i.i.i.i2.i.i.noexc279 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib4SwapEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i266 ] %_M_finish.i.i7.i275 = getelementptr inbounds nuw i8, ptr %ref.tmp77, i64 8 %55 = getelementptr inbounds nuw i8, ptr %ref.tmp77, i64 16 store ptr %add.ptr.i.i.sink.i273, ptr %55, align 8 @@ -10069,7 +10053,7 @@ _ZNK8QuantLib6HandleINS_27SwaptionVolatilityStructureEEcvN5boost10shared_ptrINS_ br i1 %cmp.i.not.i, label %if.end.i, label %_ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i _ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i: ; preds = %_ZNK8QuantLib6HandleINS_27SwaptionVolatilityStructureEEcvN5boost10shared_ptrINS_10ObservableEEEEv.exit - %call3.i2 = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull %add.ptr) + %call3.i2 = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) to label %if.end.i unwind label %lpad if.end.i: ; preds = %_ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i, %_ZNK8QuantLib6HandleINS_27SwaptionVolatilityStructureEEcvN5boost10shared_ptrINS_10ObservableEEEEv.exit @@ -11572,7 +11556,7 @@ terminate.lpad.i.i.i.i.i: ; preds = %entry unreachable _ZN8QuantLib11SimpleQuoteD0Ev.exit: ; preds = %entry - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 72) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(16) %2, i64 noundef 72) #32 ret void } @@ -11619,7 +11603,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %6 = phi ptr [ %5, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull %0) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %0) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -11731,7 +11715,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib9CmsMarketD1Ev(ptr noundef nonnull align 8 dereferenceable(544) %2) #29 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 656) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(544) %2, i64 noundef 656) #32 ret void } @@ -13354,7 +13338,7 @@ if.then.i.i: ; preds = %cast.end.i br label %_ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i _ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i: ; preds = %if.then.i.i, %cast.end.i - %call3.i4 = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr.i, ptr noundef nonnull %add.ptr) + %call3.i4 = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %add.ptr.i, ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) to label %if.end.i unwind label %lpad if.end.i: ; preds = %_ZNK5boost10shared_ptrIN8QuantLib10ObservableEEptEv.exit.i @@ -13839,7 +13823,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %12 = phi ptr [ %11, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %12, ptr noundef nonnull %add.ptr) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %12, ptr noundef nonnull align 8 dereferenceable(56) %add.ptr) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -13901,7 +13885,7 @@ define linkonce_odr void @_ZThn56_N8QuantLib6HandleINS_5QuoteEE4LinkD0Ev(ptr nou entry: %0 = getelementptr inbounds i8, ptr %this, i64 -56 tail call void @_ZN8QuantLib6HandleINS_5QuoteEE4LinkD2Ev(ptr noundef nonnull align 8 dereferenceable(129) %0) #29 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 136) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(129) %0, i64 noundef 136) #32 ret void } @@ -13909,7 +13893,7 @@ entry: define linkonce_odr void @_ZThn56_N8QuantLib6HandleINS_5QuoteEE4Link6updateEv(ptr noundef %this) unnamed_addr #19 comdat align 2 { entry: %0 = getelementptr inbounds i8, ptr %this, i64 -56 - tail call void @_ZN8QuantLib10Observable15notifyObserversEv(ptr noundef nonnull align 8 dereferenceable(56) %0) + tail call void @_ZN8QuantLib10Observable15notifyObserversEv(ptr noundef nonnull align 8 dereferenceable(129) %0) ret void } diff --git a/bench/quantlib/optimized/hestonslvfdmmodel.ll b/bench/quantlib/optimized/hestonslvfdmmodel.ll index 04804a9de53..bc6d3b16a74 100644 --- a/bench/quantlib/optimized/hestonslvfdmmodel.ll +++ b/bench/quantlib/optimized/hestonslvfdmmodel.ll @@ -6146,11 +6146,7 @@ if.then.i.i826: ; preds = %invoke.cont396 _ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i: ; preds = %invoke.cont396 store i64 0, ptr %vStrikes, align 8 %cmp.not.i.i.i.i822 = icmp eq ptr %.pre4263, %.pre4264 - br i1 %cmp.not.i.i.i.i822, label %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i - store i64 0, ptr %vStrikes, align 8 - br label %invoke.cont402 + br i1 %cmp.not.i.i.i.i822, label %invoke.cont402, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i %mul.i.i.i.i.i.i823 = shl nuw nsw i64 %sub.ptr.sub.i.i819, 1 @@ -6164,9 +6160,9 @@ call5.i.i.i.i2.i.i.noexc828: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i829, i64 %mul.i.i.i.i.i.i823 br label %invoke.cont402 -invoke.cont402: ; preds = %call5.i.i.i.i2.i.i.noexc828, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i ], [ %add.ptr.i.i.i824, %call5.i.i.i.i2.i.i.noexc828 ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc828 ] +invoke.cont402: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i, %call5.i.i.i.i2.i.i.noexc828 + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i824, %call5.i.i.i.i2.i.i.noexc828 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc828 ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] %_M_finish.i.i7.i825 = getelementptr inbounds nuw i8, ptr %vStrikes, i64 8 %408 = getelementptr inbounds nuw i8, ptr %vStrikes, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %408, align 8 @@ -7124,7 +7120,7 @@ if.then.i.i6.i.i.i.i.i.i: ; preds = %_ZN5boost10shared_p br label %invoke.cont555 invoke.cont555: ; preds = %if.then.i.i6.i.i.i.i.i.i, %_ZN5boost10shared_ptrIN8QuantLib5ArrayEEC2ERKS3_.exit.i.i.i.i.i.i - call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i.i.i1101, ptr noundef nonnull %logEntries_) #29 + call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i.i.i1101, ptr noundef nonnull align 8 dereferenceable(24) %logEntries_) #29 %573 = load i64, ptr %_M_size.i.i.i, align 8, !tbaa !273 %add.i.i.i1099 = add i64 %573, 1 store i64 %add.i.i.i1099, ptr %_M_size.i.i.i, align 8, !tbaa !273 @@ -12718,7 +12714,7 @@ if.then.i.i6.i.i.i.i.i.i2190: ; preds = %_ZN5boost10shared_p br label %invoke.cont1179 invoke.cont1179: ; preds = %if.then.i.i6.i.i.i.i.i.i2190, %_ZN5boost10shared_ptrIN8QuantLib5ArrayEEC2ERKS3_.exit.i.i.i.i.i.i2184 - call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i.i.i2195, ptr noundef nonnull %logEntries_) #29 + call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i.i.i2195, ptr noundef nonnull align 8 dereferenceable(24) %logEntries_) #29 %1346 = load i64, ptr %_M_size.i.i.i, align 8, !tbaa !273 %add.i.i.i2193 = add i64 %1346, 1 store i64 %add.i.i.i2193, ptr %_M_size.i.i.i, align 8, !tbaa !273 @@ -16370,7 +16366,7 @@ if.then.i: ; preds = %entry call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp1.i) #29 %_M_manager.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp1.i, i64 16 %_M_invoker.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp1.i, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, i8 0, i64 16, i1 false) store ptr @_ZNSt17_Function_handlerIFdRKN8QuantLib5ArrayES3_ENS0_23DiscreteSimpsonIntegralEE9_M_invokeERKSt9_Any_dataS3_S3_, ptr %_M_invoker.i.i, align 8, !tbaa !384 store ptr @_ZNSt17_Function_handlerIFdRKN8QuantLib5ArrayES3_ENS0_23DiscreteSimpsonIntegralEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %_M_manager.i.i.i, align 8, !tbaa !387 invoke void @_ZN8QuantLib17FdmMesherIntegralC1ERKN5boost10shared_ptrINS_18FdmMesherCompositeEEERKSt8functionIFdRKNS_5ArrayESA_EE(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(16) %mesher, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) @@ -16456,7 +16452,7 @@ _ZN8QuantLib17FdmMesherIntegralD2Ev.exit.i: ; preds = %if.then.i.i.i.i.i, br i1 %tobool.not.i.i, label %_ZNSt14_Function_baseD2Ev.exit.i, label %if.then.i.i if.then.i.i: ; preds = %_ZN8QuantLib17FdmMesherIntegralD2Ev.exit.i - %call.i.i = invoke noundef zeroext i1 %11(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i, i32 noundef 3) + %call.i.i = invoke noundef zeroext i1 %11(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, i32 noundef 3) to label %_ZNSt14_Function_baseD2Ev.exit.i unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then.i.i @@ -16489,7 +16485,7 @@ ehcleanup.i: ; preds = %lpad3.i, %lpad.i br i1 %tobool.not.i19.i, label %_ZNSt14_Function_baseD2Ev.exit23.i, label %if.then.i20.i if.then.i20.i: ; preds = %ehcleanup.i - %call.i21.i = invoke noundef zeroext i1 %16(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i, i32 noundef 3) + %call.i21.i = invoke noundef zeroext i1 %16(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, i32 noundef 3) to label %_ZNSt14_Function_baseD2Ev.exit23.i unwind label %terminate.lpad.i22.i terminate.lpad.i22.i: ; preds = %if.then.i20.i @@ -16694,7 +16690,7 @@ _ZN8QuantLib19FdmLinearOpIteratorD2Ev.exit61.i: ; preds = %if.then.i.i.i2.i56. call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp49.i) #29 %_M_manager.i.i62.i = getelementptr inbounds nuw i8, ptr %ref.tmp49.i, i64 16 %_M_invoker.i63.i = getelementptr inbounds nuw i8, ptr %ref.tmp49.i, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp49.i, i8 0, i64 16, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i, i8 0, i64 16, i1 false) store ptr @_ZNSt17_Function_handlerIFdRKN8QuantLib5ArrayES3_ENS0_23DiscreteSimpsonIntegralEE9_M_invokeERKSt9_Any_dataS3_S3_, ptr %_M_invoker.i63.i, align 8, !tbaa !384 store ptr @_ZNSt17_Function_handlerIFdRKN8QuantLib5ArrayES3_ENS0_23DiscreteSimpsonIntegralEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation, ptr %_M_manager.i.i62.i, align 8, !tbaa !387 invoke void @_ZN8QuantLib17FdmMesherIntegralC1ERKN5boost10shared_ptrINS_18FdmMesherCompositeEEERKSt8functionIFdRKNS_5ArrayESA_EE(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp48.i, ptr noundef nonnull align 8 dereferenceable(16) %mesher, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i) @@ -16876,7 +16872,7 @@ _ZN8QuantLib17FdmMesherIntegralD2Ev.exit105.i: ; preds = %if.then.i.i.i.i90.i br i1 %tobool.not.i107.i, label %_ZNSt14_Function_baseD2Ev.exit111.i, label %if.then.i108.i if.then.i108.i: ; preds = %_ZN8QuantLib17FdmMesherIntegralD2Ev.exit105.i - %call.i109.i = invoke noundef zeroext i1 %65(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp49.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp49.i, i32 noundef 3) + %call.i109.i = invoke noundef zeroext i1 %65(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i, i32 noundef 3) to label %_ZNSt14_Function_baseD2Ev.exit111.i unwind label %terminate.lpad.i110.i terminate.lpad.i110.i: ; preds = %if.then.i108.i @@ -16919,7 +16915,7 @@ ehcleanup57.i: ; preds = %lpad53.i, %lpad51.i br i1 %tobool.not.i113.i, label %_ZNSt14_Function_baseD2Ev.exit117.i, label %if.then.i114.i if.then.i114.i: ; preds = %ehcleanup57.i - %call.i115.i = invoke noundef zeroext i1 %71(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp49.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp49.i, i32 noundef 3) + %call.i115.i = invoke noundef zeroext i1 %71(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i, i32 noundef 3) to label %_ZNSt14_Function_baseD2Ev.exit117.i unwind label %terminate.lpad.i116.i terminate.lpad.i116.i: ; preds = %if.then.i114.i @@ -17835,7 +17831,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %6 = phi ptr [ %5, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull %0) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %0) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -18078,7 +18074,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %6 = phi ptr [ %5, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull %0) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %0) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -18140,7 +18136,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib17HestonSLVFDMModelD1Ev(ptr noundef nonnull align 8 dereferenceable(304) %2) #29 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 416) #34 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(304) %2, i64 noundef 416) #34 ret void } @@ -19164,7 +19160,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIN8QuantLib17HundsdorferSchemeESt14default_deleteIS1_EED2Ev.exit, label %if.then.i if.then.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib17HundsdorferSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib17HundsdorferSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_, ptr noundef nonnull %0) br label %_ZNSt10unique_ptrIN8QuantLib17HundsdorferSchemeESt14default_deleteIS1_EED2Ev.exit _ZNSt10unique_ptrIN8QuantLib17HundsdorferSchemeESt14default_deleteIS1_EED2Ev.exit: ; preds = %entry, %if.then.i @@ -19182,7 +19178,7 @@ entry: br i1 %cmp.not.i.i, label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_17HundsdorferSchemeEED2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib17HundsdorferSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_.i, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib17HundsdorferSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_.i, ptr noundef nonnull %0) br label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_17HundsdorferSchemeEED2Ev.exit _ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_17HundsdorferSchemeEED2Ev.exit: ; preds = %entry, %if.then.i.i @@ -19390,7 +19386,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIN8QuantLib13DouglasSchemeESt14default_deleteIS1_EED2Ev.exit, label %if.then.i if.then.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib13DouglasSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib13DouglasSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_, ptr noundef nonnull %0) br label %_ZNSt10unique_ptrIN8QuantLib13DouglasSchemeESt14default_deleteIS1_EED2Ev.exit _ZNSt10unique_ptrIN8QuantLib13DouglasSchemeESt14default_deleteIS1_EED2Ev.exit: ; preds = %entry, %if.then.i @@ -19408,7 +19404,7 @@ entry: br i1 %cmp.not.i.i, label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_13DouglasSchemeEED2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib13DouglasSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_.i, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib13DouglasSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_.i, ptr noundef nonnull %0) br label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_13DouglasSchemeEED2Ev.exit _ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_13DouglasSchemeEED2Ev.exit: ; preds = %entry, %if.then.i.i @@ -19616,7 +19612,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIN8QuantLib16CraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit, label %if.then.i if.then.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib16CraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib16CraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_, ptr noundef nonnull %0) br label %_ZNSt10unique_ptrIN8QuantLib16CraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit _ZNSt10unique_ptrIN8QuantLib16CraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit: ; preds = %entry, %if.then.i @@ -19634,7 +19630,7 @@ entry: br i1 %cmp.not.i.i, label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_16CraigSneydSchemeEED2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib16CraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_.i, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib16CraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_.i, ptr noundef nonnull %0) br label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_16CraigSneydSchemeEED2Ev.exit _ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_16CraigSneydSchemeEED2Ev.exit: ; preds = %entry, %if.then.i.i @@ -19842,7 +19838,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIN8QuantLib24ModifiedCraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit, label %if.then.i if.then.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib24ModifiedCraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib24ModifiedCraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_, ptr noundef nonnull %0) br label %_ZNSt10unique_ptrIN8QuantLib24ModifiedCraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit _ZNSt10unique_ptrIN8QuantLib24ModifiedCraigSneydSchemeESt14default_deleteIS1_EED2Ev.exit: ; preds = %entry, %if.then.i @@ -19860,7 +19856,7 @@ entry: br i1 %cmp.not.i.i, label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_24ModifiedCraigSneydSchemeEED2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib24ModifiedCraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_.i, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib24ModifiedCraigSneydSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_.i, ptr noundef nonnull %0) br label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_24ModifiedCraigSneydSchemeEED2Ev.exit _ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_24ModifiedCraigSneydSchemeEED2Ev.exit: ; preds = %entry, %if.then.i.i @@ -20327,7 +20323,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIN8QuantLib19ExplicitEulerSchemeESt14default_deleteIS1_EED2Ev.exit, label %if.then.i if.then.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib19ExplicitEulerSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib19ExplicitEulerSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_, ptr noundef nonnull %0) br label %_ZNSt10unique_ptrIN8QuantLib19ExplicitEulerSchemeESt14default_deleteIS1_EED2Ev.exit _ZNSt10unique_ptrIN8QuantLib19ExplicitEulerSchemeESt14default_deleteIS1_EED2Ev.exit: ; preds = %entry, %if.then.i @@ -20345,7 +20341,7 @@ entry: br i1 %cmp.not.i.i, label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_19ExplicitEulerSchemeEED2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %entry - tail call void @_ZNKSt14default_deleteIN8QuantLib19ExplicitEulerSchemeEEclEPS1_(ptr noundef nonnull align 1 dereferenceable(1) %scheme_.i, ptr noundef nonnull %0) + tail call void @_ZNKSt14default_deleteIN8QuantLib19ExplicitEulerSchemeEEclEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %scheme_.i, ptr noundef nonnull %0) br label %_ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_19ExplicitEulerSchemeEED2Ev.exit _ZN8QuantLib12_GLOBAL__N_116FdmSchemeWrapperINS_19ExplicitEulerSchemeEED2Ev.exit: ; preds = %entry, %if.then.i.i diff --git a/bench/quantlib/optimized/hestonslvmcmodel.ll b/bench/quantlib/optimized/hestonslvmcmodel.ll index b518c5d8971..fad0e0879c8 100644 --- a/bench/quantlib/optimized/hestonslvmcmodel.ll +++ b/bench/quantlib/optimized/hestonslvmcmodel.ll @@ -4959,11 +4959,7 @@ if.then.i.i146: ; preds = %invoke.cont62 _ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i: ; preds = %invoke.cont62 store i64 0, ptr %vStrikes, align 8 %cmp.not.i.i.i.i = icmp eq ptr %.pre, %.pre916 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i - store i64 0, ptr %vStrikes, align 8 - br label %invoke.cont67 + br i1 %cmp.not.i.i.i.i, label %invoke.cont67, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %sub.ptr.sub.i.i144, 1 @@ -4977,9 +4973,9 @@ call5.i.i.i.i2.i.i.noexc: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i148, i64 %mul.i.i.i.i.i.i br label %invoke.cont67 -invoke.cont67: ; preds = %call5.i.i.i.i2.i.i.noexc, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i ], [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrISt6vectorIdSaIdEEEESaIS5_EEC2EmRKS6_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ] +invoke.cont67: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i, %call5.i.i.i.i2.i.i.noexc + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIS_IdSaIdEEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds nuw i8, ptr %vStrikes, i64 8 %37 = getelementptr inbounds nuw i8, ptr %vStrikes, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %37, align 8 @@ -8470,7 +8466,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %6 = phi ptr [ %5, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull %0) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %0) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -8532,7 +8528,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib16HestonSLVMCModelD1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2) #27 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 240) #32 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(128) %2, i64 noundef 240) #32 ret void } diff --git a/bench/quantlib/optimized/jointcalendar.ll b/bench/quantlib/optimized/jointcalendar.ll index cb579aa6b71..05296fecb97 100644 --- a/bench/quantlib/optimized/jointcalendar.ll +++ b/bench/quantlib/optimized/jointcalendar.ll @@ -50,8 +50,6 @@ $_ZN5boost6detail12shared_countD2Ev = comdat any $_ZN8QuantLib8CalendarD2Ev = comdat any -$_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_ = comdat any - $_ZN5boost6detail15sp_counted_baseD2Ev = comdat any $_ZN5boost6detail17sp_counted_impl_pIN8QuantLib13JointCalendar4ImplEED0Ev = comdat any @@ -2480,7 +2478,8 @@ lpad.i.i: ; preds = %invoke.cont3 catch ptr null %exn.slot.0.i.i = extractvalue { ptr, i32 } %0, 0 %1 = tail call ptr @__cxa_begin_catch(ptr %exn.slot.0.i.i) #22 - tail call void @_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_(ptr noundef nonnull %call) #22 + tail call void @_ZN8QuantLib13JointCalendar4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %call) #22 + tail call void @_ZdlPvm(ptr noundef nonnull %call, i64 noundef 136) #24 invoke void @__cxa_rethrow() #23 to label %unreachable.i.i unwind label %lpad5.i.i @@ -2644,7 +2643,8 @@ lpad.i.i: ; preds = %invoke.cont3 catch ptr null %exn.slot.0.i.i = extractvalue { ptr, i32 } %0, 0 %1 = tail call ptr @__cxa_begin_catch(ptr %exn.slot.0.i.i) #22 - tail call void @_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_(ptr noundef nonnull %call) #22 + tail call void @_ZN8QuantLib13JointCalendar4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %call) #22 + tail call void @_ZdlPvm(ptr noundef nonnull %call, i64 noundef 136) #24 invoke void @__cxa_rethrow() #23 to label %unreachable.i.i unwind label %lpad5.i.i @@ -2802,7 +2802,8 @@ lpad.i.i: ; preds = %invoke.cont3 catch ptr null %exn.slot.0.i.i = extractvalue { ptr, i32 } %0, 0 %1 = tail call ptr @__cxa_begin_catch(ptr %exn.slot.0.i.i) #22 - tail call void @_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_(ptr noundef nonnull %call) #22 + tail call void @_ZN8QuantLib13JointCalendar4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %call) #22 + tail call void @_ZdlPvm(ptr noundef nonnull %call, i64 noundef 136) #24 invoke void @__cxa_rethrow() #23 to label %unreachable.i.i unwind label %lpad5.i.i @@ -3031,7 +3032,8 @@ lpad.i.i: ; preds = %invoke.cont5 catch ptr null %exn.slot.0.i.i = extractvalue { ptr, i32 } %5, 0 %6 = call ptr @__cxa_begin_catch(ptr %exn.slot.0.i.i) #22 - call void @_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_(ptr noundef nonnull %call) #22 + call void @_ZN8QuantLib13JointCalendar4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %call) #22 + call void @_ZdlPvm(ptr noundef nonnull %call, i64 noundef 136) #24 invoke void @__cxa_rethrow() #23 to label %unreachable.i.i unwind label %lpad5.i.i @@ -3635,21 +3637,6 @@ _ZN5boost10shared_ptrIN8QuantLib8Calendar4ImplEED2Ev.exit: ; preds = %entry, %if ret void } -; Function Attrs: inlinehint mustprogress nounwind uwtable -define linkonce_odr void @_ZN5boost14checked_deleteIN8QuantLib13JointCalendar4ImplEEEvPT_(ptr noundef %x) local_unnamed_addr #4 comdat { -entry: - %isnull = icmp eq ptr %x, null - br i1 %isnull, label %delete.end, label %delete.notnull - -delete.notnull: ; preds = %entry - tail call void @_ZN8QuantLib13JointCalendar4ImplD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %x) #22 - tail call void @_ZdlPvm(ptr noundef nonnull %x, i64 noundef 136) #24 - br label %delete.end - -delete.end: ; preds = %delete.notnull, %entry - ret void -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #6 comdat align 2 { entry: diff --git a/bench/quantlib/optimized/multisteppathwisewrapper.ll b/bench/quantlib/optimized/multisteppathwisewrapper.ll index 80088f816dc..7b31c53bc63 100644 --- a/bench/quantlib/optimized/multisteppathwisewrapper.ll +++ b/bench/quantlib/optimized/multisteppathwisewrapper.ll @@ -116,11 +116,7 @@ if.then.i.i: ; preds = %invoke.cont7 _ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i: ; preds = %invoke.cont7 store i64 0, ptr %ref.tmp, align 8 %cmp.not.i.i.i.i = icmp eq i64 %call8, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EEC2EmRKS3_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EEC2EmRKS3_.exit.thread.i: ; preds = %_ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i - store i64 0, ptr %ref.tmp, align 8 - br label %invoke.cont11 + br i1 %cmp.not.i.i.i.i, label %invoke.cont11, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %call8, 5 @@ -134,9 +130,9 @@ call5.i.i.i.i2.i.i.noexc: ; preds = %for.body.preheader. %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i13, i64 %mul.i.i.i.i.i.i br label %invoke.cont11 -invoke.cont11: ; preds = %call5.i.i.i.i2.i.i.noexc, %_ZNSt12_Vector_baseIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EEC2EmRKS3_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EEC2EmRKS3_.exit.thread.i ], [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EEC2EmRKS3_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ] +invoke.cont11: ; preds = %_ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i, %call5.i.i.i.i2.i.i.noexc + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorIN8QuantLib31MarketModelPathwiseMultiProduct8CashFlowESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 %4 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %4, align 8 diff --git a/bench/quantlib/optimized/rangeaccrual.ll b/bench/quantlib/optimized/rangeaccrual.ll index 96f6b221137..741739a8374 100644 --- a/bench/quantlib/optimized/rangeaccrual.ll +++ b/bench/quantlib/optimized/rangeaccrual.ll @@ -4032,7 +4032,7 @@ if.then: ; preds = %entry br label %if.end if.else: ; preds = %entry - %2 = tail call ptr @__dynamic_cast(ptr nonnull %v, ptr nonnull @_ZTIN8QuantLib14AcyclicVisitorE, ptr nonnull @_ZTIN8QuantLib7VisitorINS_18FloatingRateCouponEEE, i64 -2) #35 + %2 = tail call ptr @__dynamic_cast(ptr nonnull align 8 dereferenceable(8) %v, ptr nonnull @_ZTIN8QuantLib14AcyclicVisitorE, ptr nonnull @_ZTIN8QuantLib7VisitorINS_18FloatingRateCouponEEE, i64 -2) #35 %cmp.not.i = icmp eq ptr %2, null br i1 %cmp.not.i, label %if.else.i, label %if.then.i @@ -4044,7 +4044,7 @@ if.then.i: ; preds = %if.else br label %if.end if.else.i: ; preds = %if.else - tail call void @_ZN8QuantLib6Coupon6acceptERNS_14AcyclicVisitorE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(8) %v) + tail call void @_ZN8QuantLib6Coupon6acceptERNS_14AcyclicVisitorE(ptr noundef nonnull align 8 dereferenceable(176) %this, ptr noundef nonnull align 8 dereferenceable(8) %v) br label %if.end if.end: ; preds = %if.else.i, %if.then.i, %if.then @@ -4111,7 +4111,7 @@ _ZNK5boost10shared_ptrIN8QuantLib18YieldTermStructureEEptEv.exit: ; preds = %ent %7 = load ptr, ptr %vfn10, align 8 %call11 = tail call i64 %7(ptr noundef nonnull align 8 dereferenceable(88) %this) store i64 %call11, ptr %ref.tmp, align 8 - %call.i = call noundef double @_ZNK8QuantLib13TermStructure17timeFromReferenceERKNS_4DateE(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + %call.i = call noundef double @_ZNK8QuantLib13TermStructure17timeFromReferenceERKNS_4DateE(ptr noundef nonnull align 8 dereferenceable(152) %5, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) %call2.i = call noundef double @_ZNK8QuantLib18YieldTermStructure8discountEdb(ptr noundef nonnull align 8 dereferenceable(152) %5, double noundef %call.i, i1 noundef zeroext false) %mul13 = fmul double %mul6, %call2.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp) #35 @@ -4395,7 +4395,7 @@ cond.false.i41: ; preds = %invoke.cont40 invoke.cont42: ; preds = %.noexc43, %invoke.cont40 %35 = phi ptr [ %34, %invoke.cont40 ], [ %.pre.i42, %.noexc43 ] - %call.i44 = invoke noundef double @_ZNK8QuantLib13TermStructure17timeFromReferenceERKNS_4DateE(ptr noundef nonnull align 8 dereferenceable(64) %35, ptr noundef nonnull align 8 dereferenceable(8) %paymentDate) + %call.i44 = invoke noundef double @_ZNK8QuantLib13TermStructure17timeFromReferenceERKNS_4DateE(ptr noundef nonnull align 8 dereferenceable(152) %35, ptr noundef nonnull align 8 dereferenceable(8) %paymentDate) to label %call.i.noexc unwind label %lpad39 call.i.noexc: ; preds = %invoke.cont42 @@ -10794,11 +10794,7 @@ if.then.i.i358: ; preds = %do.end337 _ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i: ; preds = %do.end337 store i64 0, ptr %agg.result, align 8 %cmp.not.i.i.i.i = icmp eq i64 %sub, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EEC2EmRKS5_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EEC2EmRKS5_.exit.thread.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i - store i64 0, ptr %agg.result, align 8 - br label %invoke.cont340 + br i1 %cmp.not.i.i.i.i, label %invoke.cont340, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %sub, 4 @@ -10809,9 +10805,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN5boos %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i359, i64 %mul.i.i.i.i.i.i br label %invoke.cont340 -invoke.cont340: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EEC2EmRKS5_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont340: ; preds = %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN5boost10shared_ptrIN8QuantLib8CashFlowEEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 %173 = getelementptr inbounds nuw i8, ptr %agg.result, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %173, align 8 @@ -12806,7 +12802,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %6 = phi ptr [ %5, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull %0) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %0) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -12954,7 +12950,7 @@ define linkonce_odr void @_ZThn8_N8QuantLib18FloatingRateCouponD0Ev(ptr noundef entry: %0 = getelementptr inbounds i8, ptr %this, i64 -8 tail call void @_ZN8QuantLib18FloatingRateCouponD1Ev(ptr noundef nonnull align 8 dereferenceable(176) %0) #35 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 288) #38 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(176) %0, i64 noundef 288) #38 ret void } @@ -12980,7 +12976,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib18FloatingRateCouponD1Ev(ptr noundef nonnull align 8 dereferenceable(176) %2) #35 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 288) #38 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(176) %2, i64 noundef 288) #38 ret void } @@ -13063,7 +13059,7 @@ terminate.lpad.i.i.i: ; preds = %if.then.i.i.i.i.i, unreachable _ZN8QuantLib26RangeAccrualFloatersCouponD2Ev.exit: ; preds = %_ZNSt6vectorIN8QuantLib4DateESaIS1_EED2Ev.exit.i, %if.then.i.i.i, %.noexc.i.i.i, %if.then.i.i.i.i.i - tail call void @_ZN8QuantLib18FloatingRateCouponD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %this, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZTTN8QuantLib26RangeAccrualFloatersCouponE, i64 8)) #35 + tail call void @_ZN8QuantLib18FloatingRateCouponD2Ev(ptr noundef nonnull align 8 dereferenceable(280) %this, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZTTN8QuantLib26RangeAccrualFloatersCouponE, i64 8)) #35 store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN8QuantLib8ObserverE, i64 16), ptr %add.ptr7.i, align 8, !tbaa !33 %observables_.i = getelementptr inbounds i8, ptr %this, i64 344 %_M_left.i.i.i = getelementptr inbounds i8, ptr %this, i64 368 @@ -13102,7 +13098,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %16 = phi ptr [ %15, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %16, ptr noundef nonnull %add.ptr7.i) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %16, ptr noundef nonnull align 8 dereferenceable(56) %add.ptr7.i) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -13157,7 +13153,7 @@ define linkonce_odr void @_ZThn8_N8QuantLib26RangeAccrualFloatersCouponD0Ev(ptr entry: %0 = getelementptr inbounds i8, ptr %this, i64 -8 tail call void @_ZN8QuantLib26RangeAccrualFloatersCouponD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %0) #35 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 392) #38 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(280) %0, i64 noundef 392) #38 ret void } @@ -13180,7 +13176,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib26RangeAccrualFloatersCouponD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %2) #35 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 392) #38 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(280) %2, i64 noundef 392) #38 ret void } @@ -13325,7 +13321,7 @@ cond.false.i.i: ; preds = %for.body.i invoke.cont.i: ; preds = %.noexc.i, %for.body.i %10 = phi ptr [ %9, %for.body.i ], [ %.pre.i.i, %.noexc.i ] - %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %10, ptr noundef nonnull %4) + %call8.i = invoke noundef i64 @_ZN8QuantLib10Observable18unregisterObserverEPNS_8ObserverE(ptr noundef nonnull align 8 dereferenceable(56) %10, ptr noundef nonnull align 8 dereferenceable(56) %4) to label %invoke.cont7.i unwind label %terminate.lpad.i invoke.cont7.i: ; preds = %invoke.cont.i @@ -13371,7 +13367,7 @@ entry: %1 = load i64, ptr %0, align 8 %2 = getelementptr inbounds i8, ptr %this, i64 %1 tail call void @_ZN8QuantLib23RangeAccrualPricerByBgmD1Ev(ptr noundef nonnull align 8 dereferenceable(224) %2) #35 - tail call void @_ZdlPvm(ptr noundef nonnull %2, i64 noundef 336) #38 + tail call void @_ZdlPvm(ptr noundef nonnull align 8 dereferenceable(224) %2, i64 noundef 336) #38 ret void } diff --git a/bench/quantlib/optimized/tqreigendecomposition.ll b/bench/quantlib/optimized/tqreigendecomposition.ll index 85e29e113b1..976a8ab06fa 100644 --- a/bench/quantlib/optimized/tqreigendecomposition.ll +++ b/bench/quantlib/optimized/tqreigendecomposition.ll @@ -417,11 +417,7 @@ if.then.i.i160: ; preds = %for.cond.cleanup66 _ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: ; preds = %for.cond.cleanup66 store i64 0, ptr %temp, align 8 - br i1 %cmp.not.i145, label %_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i, label %for.inc.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i: ; preds = %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - store i64 0, ptr %temp, align 8 - br label %invoke.cont296 + br i1 %cmp.not.i145, label %invoke.cont296, label %for.inc.preheader.i.i.i.i.i for.inc.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.thread, %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %11, 5 @@ -640,10 +636,10 @@ for.inc290: ; preds = %invoke.cont69.for.i %cmp65.not = icmp eq i64 %dec291, 0 br i1 %cmp65.not, label %for.cond.cleanup66, label %invoke.cont69.preheader, !llvm.loop !38 -invoke.cont296: ; preds = %call5.i.i.i.i2.i.i.noexc, %_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i - %88 = phi ptr [ null, %_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %call5.i.i.i.i2.i.i161, %call5.i.i.i.i2.i.i.noexc ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ] - %89 = phi ptr [ null, %_ZNSt12_Vector_baseISt4pairIdSt6vectorIdSaIdEEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ] +invoke.cont296: ; preds = %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i, %call5.i.i.i.i2.i.i.noexc + %88 = phi ptr [ %call5.i.i.i.i2.i.i161, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] + %89 = phi ptr [ %scevgep.i.i.i.i.i, %call5.i.i.i.i2.i.i.noexc ], [ null, %_ZNSt6vectorISt4pairIdS_IdSaIdEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds nuw i8, ptr %temp, i64 8 %90 = getelementptr inbounds nuw i8, ptr %temp, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %90, align 8 diff --git a/bench/quest/optimized/QuEST_cpu.c.ll b/bench/quest/optimized/QuEST_cpu.c.ll index e173c6ccbdf..5114f23124b 100644 --- a/bench/quest/optimized/QuEST_cpu.c.ll +++ b/bench/quest/optimized/QuEST_cpu.c.ll @@ -198,7 +198,7 @@ define void @densmatr_mixDephasing(ptr nocapture noundef readonly byval(%struct. store i64 %19, ptr %7, align 8 %20 = or i64 %19, %14 store i64 %20, ptr %8, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull align 8 %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) @@ -677,7 +677,7 @@ define void @densmatr_mixDepolarisingDistributed(ptr noundef byval(%struct.Qureg store i64 %26, ptr %7, align 8 %27 = or i64 %26, %21 store i64 %27, ptr %8, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull align 8 %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) @@ -853,7 +853,7 @@ define void @densmatr_mixDampingDistributed(ptr noundef byval(%struct.Qureg) ali store i64 %28, ptr %7, align 8 %29 = or i64 %28, %23 store i64 %29, ptr %8, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 6, ptr nonnull @densmatr_oneQubitDegradeOffDiagonal.omp_outlined, ptr nonnull %5, ptr nonnull align 8 %9, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) @@ -2022,7 +2022,7 @@ define internal void @alternateNormZeroingSomeAmpBlocks.omp_outlined(ptr noalias store double %32, ptr %11, align 8 store i64 %31, ptr %12, align 8 store i64 %29, ptr %13, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %12, ptr nonnull %13, ptr nonnull %14, ptr nonnull %11) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %12, ptr nonnull %13, ptr nonnull align 8 %14, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) @@ -2035,7 +2035,7 @@ define internal void @alternateNormZeroingSomeAmpBlocks.omp_outlined(ptr noalias call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %10, ptr noundef nonnull align 8 dereferenceable(136) %5, i64 136, i1 false) store i64 %34, ptr %8, align 8 store i64 %33, ptr %9, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %8, ptr nonnull %9, ptr nonnull %10) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %8, ptr nonnull %9, ptr nonnull align 8 %10) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %10) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) @@ -2097,7 +2097,7 @@ define internal void @alternateNormZeroingSomeAmpBlocks.omp_outlined.1(ptr noali call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %14, ptr noundef nonnull align 8 dereferenceable(136) %5, i64 136, i1 false) store i64 %31, ptr %12, align 8 store i64 %29, ptr %13, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %12, ptr nonnull %13, ptr nonnull %14) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %12, ptr nonnull %13, ptr nonnull align 8 %14) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) @@ -2112,7 +2112,7 @@ define internal void @alternateNormZeroingSomeAmpBlocks.omp_outlined.1(ptr noali store double %32, ptr %8, align 8 store i64 %34, ptr %9, align 8 store i64 %33, ptr %10, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %9, ptr nonnull %10, ptr nonnull %11, ptr nonnull %8) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %9, ptr nonnull %10, ptr nonnull align 8 %11, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) @@ -2196,7 +2196,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %35, ptr noundef nonnull align 8 dereferenceable(136) %0, i64 136, i1 false) store i64 0, ptr %33, align 8 store i64 %44, ptr %34, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %33, ptr nonnull %34, ptr nonnull %35) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %33, ptr nonnull %34, ptr nonnull align 8 %35) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %35) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) @@ -2217,7 +2217,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %32, ptr noundef nonnull align 8 dereferenceable(136) %0, i64 136, i1 false) store i64 0, ptr %30, align 8 store i64 %44, ptr %31, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %30, ptr nonnull %31, ptr nonnull %32) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %30, ptr nonnull %31, ptr nonnull align 8 %32) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %32) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) @@ -2232,7 +2232,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly store double %3, ptr %26, align 8 store i64 0, ptr %27, align 8 store i64 %44, ptr %28, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %27, ptr nonnull %28, ptr nonnull %29, ptr nonnull %26) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 4, ptr nonnull @normaliseSomeAmps.omp_outlined, ptr nonnull %27, ptr nonnull %28, ptr nonnull align 8 %29, ptr nonnull %26) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %29) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) @@ -2253,7 +2253,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly %63 = sdiv i64 %44, %62 store i64 %63, ptr %24, align 8 %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i = select i1 %.not64, ptr @alternateNormZeroingSomeAmpBlocks.omp_outlined, ptr @alternateNormZeroingSomeAmpBlocks.omp_outlined.1 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i, ptr nonnull %24, ptr nonnull %22, ptr nonnull %23, ptr nonnull %25, ptr nonnull %21) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i, ptr nonnull %24, ptr nonnull %22, ptr nonnull %23, ptr nonnull align 8 %25, ptr nonnull %21) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %25) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) @@ -2301,7 +2301,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly store i64 %74, ptr %17, align 8 store i64 %37, ptr %18, align 8 store i64 %71, ptr %19, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i61, ptr nonnull %19, ptr nonnull %17, ptr nonnull %18, ptr nonnull %20, ptr nonnull %16) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i61, ptr nonnull %19, ptr nonnull %17, ptr nonnull %18, ptr nonnull align 8 %20, ptr nonnull %16) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %20) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) @@ -2314,7 +2314,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %15, ptr noundef nonnull align 8 dereferenceable(136) %0, i64 136, i1 false) store i64 %75, ptr %13, align 8 store i64 %42, ptr %14, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %13, ptr nonnull %14, ptr nonnull %15) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %13, ptr nonnull %14, ptr nonnull align 8 %15) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) @@ -2332,7 +2332,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %12, ptr noundef nonnull align 8 dereferenceable(136) %0, i64 136, i1 false) store i64 %79, ptr %10, align 8 store i64 %42, ptr %11, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %10, ptr nonnull %11, ptr nonnull %12) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 3, ptr nonnull @zeroSomeAmps.omp_outlined, ptr nonnull %10, ptr nonnull %11, ptr nonnull align 8 %12) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %12) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) @@ -2348,7 +2348,7 @@ define void @densmatr_collapseToKnownProbOutcome(ptr nocapture noundef readonly store i64 %37, ptr %7, align 8 %81 = sdiv i64 %42, %69 store i64 %81, ptr %8, align 8 - call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i63, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull %9, ptr nonnull %5) + call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr nonnull @3, i32 5, ptr nonnull %alternateNormZeroingSomeAmpBlocks.omp_outlined.1.alternateNormZeroingSomeAmpBlocks.omp_outlined.i63, ptr nonnull %8, ptr nonnull %6, ptr nonnull %7, ptr nonnull align 8 %9, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) diff --git a/bench/raylib/optimized/raudio.c.ll b/bench/raylib/optimized/raudio.c.ll index a24b0e63f46..f2896c1a518 100644 --- a/bench/raylib/optimized/raudio.c.ll +++ b/bench/raylib/optimized/raudio.c.ll @@ -12228,7 +12228,7 @@ ma_copy_pcm_frames.exit.i.i: ; preds = %ma_copy_pcm_frames. ma_device__on_data_inner.exit130.i.i: ; preds = %.preheader.i123.i.i, %656, %.lr.ph36.preheader.i.i129.i.i, %653, %642 %665 = load ptr, ptr %58, align 8 - call void %665(ptr noundef %0, ptr noundef %643, ptr noundef %644, i32 noundef %639) #67 + call void %665(ptr noundef nonnull %0, ptr noundef %643, ptr noundef %644, i32 noundef %639) #67 %666 = load i32, ptr %68, align 8 store i32 %666, ptr %64, align 4 store i32 0, ptr %61, align 4 @@ -36195,23 +36195,104 @@ define hidden range(i32 -3, 1) i32 @ma_linear_resampler_set_rate(ptr noundef %0, ; Function Attrs: nounwind uwtable define hidden range(i32 -3, 1) i32 @ma_linear_resampler_set_rate_ratio(ptr noundef %0, float noundef %1) local_unnamed_addr #4 { - %3 = icmp ne ptr %0, null - %4 = fcmp ugt float %1, 0.000000e+00 - %or.cond = and i1 %3, %4 - br i1 %or.cond, label %5, label %11 + %3 = alloca %struct.ma_lpf_config, align 8 + %4 = icmp ne ptr %0, null + %5 = fcmp ugt float %1, 0.000000e+00 + %or.cond = and i1 %4, %5 + br i1 %or.cond, label %6, label %55 -5: ; preds = %2 - %6 = fmul float %1, 1.000000e+06 - %7 = fptoui float %6 to i32 - %8 = icmp eq i32 %7, 0 - br i1 %8, label %11, label %9 +6: ; preds = %2 + %7 = fmul float %1, 1.000000e+06 + %8 = fptoui float %7 to i32 + %9 = icmp eq i32 %8, 0 + br i1 %9, label %55, label %10 -9: ; preds = %5 - %10 = tail call fastcc range(i32 -3, 1) i32 @ma_linear_resampler_set_rate_internal(ptr noundef nonnull %0, ptr noundef null, ptr noundef null, i32 noundef %7, i32 noundef 1000000, i32 noundef 1) - br label %11 +10: ; preds = %6 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) + %11 = getelementptr inbounds i8, ptr %0, i64 12 + %12 = load i32, ptr %11, align 4 + br label %13 -11: ; preds = %5, %2, %9 - %.0 = phi i32 [ %10, %9 ], [ -2, %2 ], [ -2, %5 ] +13: ; preds = %13, %10 + %.065.i = phi i32 [ %8, %10 ], [ %.05264.i, %13 ] + %.05264.i = phi i32 [ 1000000, %10 ], [ %14, %13 ] + %14 = urem i32 %.065.i, %.05264.i + %15 = icmp eq i32 %14, 0 + br i1 %15, label %16, label %13 + +16: ; preds = %13 + %17 = getelementptr inbounds i8, ptr %0, i64 8 + %18 = udiv i32 %8, %.05264.i + store i32 %18, ptr %17, align 8 + %19 = udiv i32 1000000, %.05264.i + store i32 %19, ptr %11, align 4 + %20 = getelementptr inbounds i8, ptr %0, i64 16 + %21 = load i32, ptr %20, align 8 + %22 = icmp ugt i32 %21, 8 + br i1 %22, label %ma_linear_resampler_set_rate_internal.exit, label %23 + +23: ; preds = %16 + %..i = tail call i32 @llvm.umax.i32(i32 %18, i32 %19) + %24 = tail call i32 @llvm.umin.i32(i32 %18, i32 %19) + %25 = uitofp nneg i32 %24 to double + %26 = fmul double %25, 5.000000e-01 + %27 = getelementptr inbounds i8, ptr %0, i64 24 + %28 = load double, ptr %27, align 8 + %29 = fmul double %26, %28 + %30 = load i32, ptr %0, align 8 + %31 = getelementptr inbounds i8, ptr %0, i64 4 + %32 = load i32, ptr %31, align 4 + store i32 %30, ptr %3, align 8 + %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 4 + store i32 %32, ptr %.sroa.2.0..sroa_idx.i, align 4 + %.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 8 + store i32 %..i, ptr %.sroa.3.0..sroa_idx.i, align 8 + %.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 12 + store i32 0, ptr %.sroa.5.0..sroa_idx.i, align 4 + %.sroa.563.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 16 + store double %29, ptr %.sroa.563.0..sroa_idx.i, align 8 + %.sroa.6.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 24 + store i32 %21, ptr %.sroa.6.0..sroa_idx.i, align 8 + %.sroa.7.0..sroa_idx.i = getelementptr inbounds i8, ptr %3, i64 28 + store i32 0, ptr %.sroa.7.0..sroa_idx.i, align 4 + %33 = getelementptr inbounds i8, ptr %0, i64 64 + %34 = call fastcc range(i32 -3, 1) i32 @ma_lpf_reinit__internal(ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %33, i32 noundef 0) + %.not62.i = icmp eq i32 %34, 0 + br i1 %.not62.i, label %35, label %ma_linear_resampler_set_rate_internal.exit + +35: ; preds = %23 + %36 = load i32, ptr %17, align 8 + %37 = load i32, ptr %11, align 4 + %38 = udiv i32 %36, %37 + %39 = getelementptr inbounds i8, ptr %0, i64 32 + store i32 %38, ptr %39, align 8 + %40 = urem i32 %36, %37 + %41 = getelementptr inbounds i8, ptr %0, i64 36 + store i32 %40, ptr %41, align 4 + %42 = getelementptr inbounds i8, ptr %0, i64 44 + %43 = load i32, ptr %42, align 4 + %44 = udiv i32 %43, %12 + %45 = urem i32 %43, %12 + %46 = mul i32 %44, %37 + %47 = mul i32 %45, %37 + %48 = udiv i32 %47, %12 + %49 = add i32 %48, %46 + %50 = udiv i32 %49, %37 + %51 = getelementptr inbounds i8, ptr %0, i64 40 + %52 = load i32, ptr %51, align 8 + %53 = add i32 %52, %50 + store i32 %53, ptr %51, align 8 + %54 = urem i32 %49, %37 + store i32 %54, ptr %42, align 4 + br label %ma_linear_resampler_set_rate_internal.exit + +ma_linear_resampler_set_rate_internal.exit: ; preds = %16, %23, %35 + %.053.i = phi i32 [ 0, %35 ], [ -2, %16 ], [ %34, %23 ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) + br label %55 + +55: ; preds = %6, %2, %ma_linear_resampler_set_rate_internal.exit + %.0 = phi i32 [ %.053.i, %ma_linear_resampler_set_rate_internal.exit ], [ -2, %2 ], [ -2, %6 ] ret i32 %.0 } @@ -51067,7 +51148,7 @@ ma_decoder__preinit.exit: ; preds = %35, %31 52: ; preds = %48 store i64 %.sroa.0.0.insert.insert.i.i.i, ptr %7, align 8 - %53 = call i32 %50(ptr noundef %.sroa.15103.0.copyload, ptr noundef nonnull %0, i64 noundef %1, ptr noundef nonnull %7, ptr noundef nonnull %24, ptr noundef nonnull %8) #67 + %53 = call i32 %50(ptr noundef %.sroa.15103.0.copyload, ptr noundef nonnull %0, i64 noundef range(i64 1, 0) %1, ptr noundef nonnull %7, ptr noundef nonnull %24, ptr noundef nonnull %8) #67 %.not.i.i = icmp eq i32 %53, 0 br i1 %.not.i.i, label %56, label %ma_decoder_init_from_memory__internal.exit.thread.i @@ -51223,7 +51304,7 @@ ma_decoder_init_custom_from_memory__internal.exit: ; preds = %54, %42 store ptr %.sroa.15103.0.copyload, ptr %96, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - %97 = call fastcc i32 @ma_decoder__postinit(ptr noundef readonly %9, ptr noundef nonnull %3) + %97 = call fastcc i32 @ma_decoder__postinit(ptr noundef nonnull readonly %9, ptr noundef nonnull %3) %.not44 = icmp eq i32 %97, 0 br i1 %.not44, label %98, label %ma_decoder__preinit.exit.thread @@ -56395,7 +56476,7 @@ drwav_guid_equal.exit834.thread: ; preds = %.preheader1306, %dr %.0607 = phi i64 [ 24, %676 ], [ 18, %678 ] %680 = load ptr, ptr %0, align 8 %681 = load ptr, ptr %33, align 8 - %682 = call i64 %680(ptr noundef %681, ptr noundef nonnull %27, i64 noundef %.0607) #67 + %682 = call i64 %680(ptr noundef %681, ptr noundef nonnull %27, i64 noundef range(i64 0, -602) %.0607) #67 %683 = add i64 %360, %682 store i64 %683, ptr %8, align 8 %.not706 = icmp eq i64 %682, %.0607 @@ -58168,7 +58249,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file(ptr noundef %0, ptr noundef r br i1 %4, label %drwav_init_file_ex.exit, label %5 5: ; preds = %3 - %6 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.170) + %6 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.170) %7 = icmp eq ptr %6, null br i1 %7, label %drwav_init_file_ex.exit, label %drwav_fopen.exit.i @@ -58241,7 +58322,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file_ex(ptr noundef %0, ptr nounde br i1 %7, label %drwav_init_file__internal_FILE.exit, label %8 8: ; preds = %6 - %9 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.170) + %9 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.170) %10 = icmp eq ptr %9, null br i1 %10, label %drwav_init_file__internal_FILE.exit, label %drwav_fopen.exit @@ -58563,7 +58644,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file_with_metadata(ptr noundef %0, br i1 %5, label %drwav_init_file__internal_FILE.exit, label %6 6: ; preds = %4 - %7 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.170) + %7 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.170) %8 = icmp eq ptr %7, null br i1 %8, label %drwav_init_file__internal_FILE.exit, label %drwav_fopen.exit @@ -58709,7 +58790,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file_write(ptr noundef %0, ptr nou br i1 %5, label %drwav_init_file_write__internal.exit, label %6 6: ; preds = %4 - %7 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.173) + %7 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.173) %8 = icmp eq ptr %7, null br i1 %8, label %drwav_init_file_write__internal.exit, label %drwav_fopen.exit.i @@ -58728,7 +58809,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file_write_sequential(ptr noundef br i1 %6, label %drwav_init_file_write__internal.exit, label %7 7: ; preds = %5 - %8 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.173) + %8 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.173) %9 = icmp eq ptr %8, null br i1 %9, label %drwav_init_file_write__internal.exit, label %drwav_fopen.exit.i @@ -58755,7 +58836,7 @@ define hidden range(i32 0, 2) i32 @drwav_init_file_write_sequential_pcm_frames(p br i1 %12, label %drwav_init_file_write_sequential.exit, label %13 13: ; preds = %7 - %14 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.173) + %14 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.173) %15 = icmp eq ptr %14, null br i1 %15, label %drwav_init_file_write_sequential.exit, label %drwav_fopen.exit.i.i @@ -61483,7 +61564,7 @@ define hidden i64 @drwav_read_pcm_frames_s16(ptr noundef %0, i64 noundef %1, ptr br i1 %20, label %.split.i, label %._crit_edge.i .split.i: ; preds = %17 - %21 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef %1, ptr noundef nonnull %2) + %21 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef range(i64 1, 0) %1, ptr noundef nonnull %2) br label %drwav_read_pcm_frames_s16__pcm.exit ._crit_edge.i: ; preds = %17 @@ -62588,7 +62669,7 @@ drwav_read_pcm_frames_f32__msadpcm_ima.exit: ; preds = %122, %drwav_s16_to_ br i1 %145, label %146, label %._crit_edge.i 146: ; preds = %142 - %147 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef %1, ptr noundef nonnull %2) + %147 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef range(i64 1, 0) %1, ptr noundef nonnull %2) br label %drwav_read_pcm_frames_f32__ieee.exit ._crit_edge.i: ; preds = %142 @@ -63232,7 +63313,7 @@ define hidden i64 @drwav_read_pcm_frames_s32(ptr noundef %0, i64 noundef %1, ptr br i1 %21, label %22, label %._crit_edge.i 22: ; preds = %18 - %23 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef %1, ptr noundef nonnull %2) + %23 = tail call i64 @drwav_read_pcm_frames(ptr noundef nonnull %0, i64 noundef range(i64 1, 0) %1, ptr noundef nonnull %2) br label %drwav_read_pcm_frames_s32__pcm.exit ._crit_edge.i: ; preds = %18 @@ -64692,7 +64773,7 @@ define hidden ptr @drwav_open_file_and_read_pcm_frames_s16(ptr noundef readonly br i1 %13, label %drwav_init_file.exit.thread, label %14 14: ; preds = %12 - %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull readonly @.str.170) + %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull @.str.170) %16 = icmp eq ptr %15, null br i1 %16, label %drwav_init_file.exit.thread, label %drwav_fopen.exit.i.i @@ -64790,7 +64871,7 @@ define hidden ptr @drwav_open_file_and_read_pcm_frames_f32(ptr noundef readonly br i1 %13, label %drwav_init_file.exit.thread, label %14 14: ; preds = %12 - %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull readonly @.str.170) + %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull @.str.170) %16 = icmp eq ptr %15, null br i1 %16, label %drwav_init_file.exit.thread, label %drwav_fopen.exit.i.i @@ -64888,7 +64969,7 @@ define hidden ptr @drwav_open_file_and_read_pcm_frames_s32(ptr noundef readonly br i1 %13, label %drwav_init_file.exit.thread, label %14 14: ; preds = %12 - %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull readonly @.str.170) + %15 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %0, ptr noundef nonnull @.str.170) %16 = icmp eq ptr %15, null br i1 %16, label %drwav_init_file.exit.thread, label %drwav_fopen.exit.i.i @@ -68757,7 +68838,7 @@ get_bits.exit.thread.i: ; preds = %._crit_edge581.i, % %916 = tail call i32 @llvm.abs.i32(i32 %915, i1 true) %917 = mul nsw i32 %916, %913 %918 = sub nsw i32 %914, %917 - %.043.i.i.i = tail call i32 @llvm.smin.i32(i32 %910, i32 %33) + %.043.i.i.i = tail call i32 @llvm.smin.i32(i32 range(i32 0, 65536) %910, i32 range(i32 -1073741824, 1073741824) %33) %919 = icmp slt i32 %.0452.i.i, %.043.i.i.i br i1 %919, label %920, label %draw_line.exit.i.i @@ -70070,7 +70151,7 @@ crc32_init.exit: ; preds = %214 br label %setup_temp_free.exit 370: ; preds = %360 - tail call void @free(ptr noundef %.0936) #67 + tail call void @free(ptr noundef nonnull %.0936) #67 br label %setup_temp_free.exit setup_temp_free.exit: ; preds = %364, %370 @@ -70674,7 +70755,7 @@ setup_temp_free.exit1093: ; preds = %628, %635 br label %setup_temp_free.exit1095 658: ; preds = %.loopexit1129 - tail call void @free(ptr noundef %515) #67 + tail call void @free(ptr noundef nonnull %515) #67 br label %setup_temp_free.exit1095 setup_temp_free.exit1095: ; preds = %658, %651, %481 @@ -72868,7 +72949,7 @@ seek_to_sample_coarse.exit.thread: ; preds = %77, %._crit_edge206 br label %412 412: ; preds = %.lr.ph, %flush_packet.exit - %413 = call fastcc i32 @vorbis_decode_initial(ptr noundef nonnull %0, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13) + %413 = call fastcc i32 @vorbis_decode_initial(ptr noundef nonnull %0, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) %.not.i32 = icmp eq i32 %413, 0 br i1 %.not.i32, label %505, label %414 @@ -76299,7 +76380,7 @@ stb_vorbis_open_filename.exit: ; preds = %4 br i1 %29, label %._crit_edge, label %.lr.ph 30: ; preds = %22 - call fastcc void @vorbis_deinit(ptr noundef %14) + call fastcc void @vorbis_deinit(ptr noundef nonnull %14) %31 = getelementptr i8, ptr %14, i64 128 %.val.i = load ptr, ptr %31, align 8 %.not.i.i = icmp eq ptr %.val.i, null @@ -76333,7 +76414,7 @@ stb_vorbis_open_filename.exit: ; preds = %4 45: ; preds = %39 call void @free(ptr noundef %.04058) #67 - call fastcc void @vorbis_deinit(ptr noundef %14) + call fastcc void @vorbis_deinit(ptr noundef nonnull %14) %46 = getelementptr i8, ptr %14, i64 128 %.val.i48 = load ptr, ptr %46, align 8 %.not.i.i49 = icmp eq ptr %.val.i48, null @@ -76354,7 +76435,7 @@ stb_vorbis_open_filename.exit: ; preds = %4 %.040.lcssa = phi ptr [ %25, %.preheader ], [ %.1, %47 ] %.038.lcssa = phi i32 [ 0, %.preheader ], [ %33, %47 ] store ptr %.040.lcssa, ptr %3, align 8 - call fastcc void @vorbis_deinit(ptr noundef %14) + call fastcc void @vorbis_deinit(ptr noundef nonnull %14) %54 = getelementptr i8, ptr %14, i64 128 %.val.i51 = load ptr, ptr %54, align 8 %.not.i.i52 = icmp eq ptr %.val.i51, null @@ -76413,7 +76494,7 @@ define hidden i32 @stb_vorbis_decode_memory(ptr noundef %0, i32 noundef %1, ptr br i1 %22, label %._crit_edge, label %.lr.ph 23: ; preds = %15 - call fastcc void @vorbis_deinit(ptr noundef %7) + call fastcc void @vorbis_deinit(ptr noundef nonnull %7) %24 = getelementptr i8, ptr %7, i64 128 %.val.i = load ptr, ptr %24, align 8 %.not.i.i = icmp eq ptr %.val.i, null @@ -76447,7 +76528,7 @@ define hidden i32 @stb_vorbis_decode_memory(ptr noundef %0, i32 noundef %1, ptr 38: ; preds = %32 call void @free(ptr noundef %.04158) #67 - call fastcc void @vorbis_deinit(ptr noundef %7) + call fastcc void @vorbis_deinit(ptr noundef nonnull %7) %39 = getelementptr i8, ptr %7, i64 128 %.val.i49 = load ptr, ptr %39, align 8 %.not.i.i50 = icmp eq ptr %.val.i49, null @@ -76468,7 +76549,7 @@ define hidden i32 @stb_vorbis_decode_memory(ptr noundef %0, i32 noundef %1, ptr %.041.lcssa = phi ptr [ %18, %.preheader ], [ %.1, %40 ] %.039.lcssa = phi i32 [ 0, %.preheader ], [ %26, %40 ] store ptr %.041.lcssa, ptr %4, align 8 - call fastcc void @vorbis_deinit(ptr noundef %7) + call fastcc void @vorbis_deinit(ptr noundef nonnull %7) %47 = getelementptr i8, ptr %7, i64 128 %.val.i52 = load ptr, ptr %47, align 8 %.not.i.i53 = icmp eq ptr %.val.i52, null @@ -78307,7 +78388,7 @@ drmp3_L3_read_side_info.exit.thread: ; preds = %drmp3_bs_get_bits.e 840: ; preds = %833 %841 = getelementptr inbounds i8, ptr %0, i64 6144 %842 = load i32, ptr %841, align 4 - %..i = tail call i32 @llvm.smin.i32(i32 %842, i32 %.094.i) + %..i = tail call i32 @llvm.smin.i32(i32 %842, i32 range(i32 0, -2147483648) %.094.i) %843 = sub nsw i32 %842, %.094.i %narrow.i = tail call i32 @llvm.smax.i32(i32 %843, i32 0) %844 = zext nneg i32 %narrow.i to i64 @@ -79871,7 +79952,7 @@ drmp3_L3_antialias.exit.i: ; preds = %1651 1657: ; preds = %drmp3_L3_antialias.exit.i %1658 = getelementptr inbounds [2 x [576 x float]], ptr %863, i64 0, i64 %indvars.iv195.i - call fastcc void @drmp3_L3_imdct36(ptr noundef %1630, ptr noundef %1654, ptr noundef nonnull @drmp3_L3_imdct_gr.g_mdct_window, i32 noundef %1589) + call fastcc void @drmp3_L3_imdct36(ptr noundef nonnull %1630, ptr noundef %1654, ptr noundef nonnull @drmp3_L3_imdct_gr.g_mdct_window, i32 noundef range(i32 0, 5) %1589) %1659 = mul nuw nsw i32 %1589, 18 %1660 = zext nneg i32 %1659 to i64 %1661 = getelementptr inbounds float, ptr %1658, i64 %1660 @@ -81296,7 +81377,7 @@ drmp3d_DCT_II.exit: ; preds = %189 %231 = getelementptr inbounds i8, ptr %202, i64 496 %232 = getelementptr inbounds i8, ptr %202, i64 500 tail call fastcc void @drmp3d_synth_pair(ptr noundef %230, i32 noundef %3, ptr noundef %232) - tail call fastcc void @drmp3d_synth_pair(ptr noundef %201, i32 noundef %3, ptr noundef %228) + tail call fastcc void @drmp3d_synth_pair(ptr noundef nonnull %201, i32 noundef %3, ptr noundef %228) %233 = getelementptr inbounds i16, ptr %201, i64 %196 tail call fastcc void @drmp3d_synth_pair(ptr noundef %233, i32 noundef %3, ptr noundef %231) %invariant.gep.i = getelementptr inbounds i8, ptr %202, i64 4096 @@ -81724,7 +81805,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i: ; preds = %8 17: ; preds = %14, %.thread.i %.sroa.5.0..sroa_idx3234.i = phi ptr [ %.sroa.5.0..sroa_idx31.i, %.thread.i ], [ %.sroa.5.0..sroa_idx.i, %14 ] %18 = getelementptr inbounds i8, ptr %0, i64 6752 - %19 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %18) + %19 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %18) %20 = icmp eq i32 %19, 0 br i1 %20, label %21, label %29 @@ -81825,7 +81906,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i: ; preds = %9 21: ; preds = %18, %.thread.i %.sroa.5.0..sroa_idx3234.i = phi ptr [ %.sroa.5.0..sroa_idx31.i, %.thread.i ], [ %.sroa.5.0..sroa_idx.i, %18 ] %22 = getelementptr inbounds i8, ptr %0, i64 6752 - %23 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %22) + %23 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %22) %24 = icmp eq i32 %23, 0 br i1 %24, label %25, label %33 @@ -82013,7 +82094,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %9 18: ; preds = %15, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %15 ] %19 = getelementptr inbounds i8, ptr %0, i64 6752 - %20 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %19) + %20 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %19) %21 = icmp eq i32 %20, 0 br i1 %21, label %22, label %drmp3_init.exit @@ -82231,7 +82312,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %48 57: ; preds = %54, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %54 ] %58 = getelementptr inbounds i8, ptr %0, i64 6752 - %59 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %58) + %59 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %58) %60 = icmp eq i32 %59, 0 br i1 %60, label %61, label %drmp3_init.exit @@ -82385,7 +82466,7 @@ define hidden i64 @drmp3_read_pcm_frames_f32(ptr noundef %0, i64 noundef %1, ptr br i1 %48, label %drmp3_read_pcm_frames_raw.exit, label %49 49: ; preds = %.preheader.split.i - %50 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %12) + %50 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %12) %.not35.i = icmp eq i32 %50, 0 br i1 %.not35.i, label %drmp3_read_pcm_frames_raw.exit, label %.preheader.split.i @@ -82471,7 +82552,7 @@ define hidden i64 @drmp3_read_pcm_frames_s16(ptr noundef %0, i64 noundef %1, ptr br i1 %28, label %drmp3_read_pcm_frames_raw.exit, label %29 29: ; preds = %.preheader.split.us.i - %30 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %9) + %30 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %9) %.not35.us.i = icmp eq i32 %30, 0 br i1 %.not35.us.i, label %drmp3_read_pcm_frames_raw.exit, label %.preheader.split.us.i @@ -82514,7 +82595,7 @@ define hidden i64 @drmp3_read_pcm_frames_s16(ptr noundef %0, i64 noundef %1, ptr br i1 %59, label %drmp3_read_pcm_frames_raw.exit, label %60 60: ; preds = %.preheader.split.i - %61 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %9) + %61 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %9) %.not35.i = icmp eq i32 %61, 0 br i1 %.not35.i, label %drmp3_read_pcm_frames_raw.exit, label %.preheader.split.i @@ -82621,7 +82702,7 @@ drmp3_find_closest_seek_point.exit.thread29.i: ; preds = %drmp3_find_closest_ %44 = trunc nuw nsw i64 %.sroa.0.038.i to i32 %45 = getelementptr inbounds i8, ptr %0, i64 6696 %46 = load ptr, ptr %45, align 8 - %47 = tail call i32 %6(ptr noundef %46, i32 noundef %44, i32 noundef 0) #67 + %47 = tail call i32 %6(ptr noundef %46, i32 noundef range(i32 0, -2147483648) %44, i32 noundef 0) #67 %.not.i.i.i = icmp eq i32 %47, 0 br i1 %.not.i.i.i, label %drmp3_seek_to_start_of_stream.exit, label %48 @@ -82649,7 +82730,7 @@ drmp3_find_closest_seek_point.exit.thread29.i: ; preds = %drmp3_find_closest_ %57 = trunc nuw nsw i64 %.lcssa47.i to i32 %58 = load ptr, ptr %5, align 8 %59 = load ptr, ptr %51, align 8 - %60 = tail call i32 %58(ptr noundef %59, i32 noundef %57, i32 noundef 1) #67 + %60 = tail call i32 %58(ptr noundef %59, i32 noundef range(i32 0, -2147483648) %57, i32 noundef 1) #67 %.not.i21.i.i = icmp eq i32 %60, 0 br i1 %.not.i21.i.i, label %drmp3_seek_to_start_of_stream.exit, label %.thread.i.i @@ -82711,7 +82792,7 @@ drmp3__on_seek_64.exit.i: ; preds = %.thread.i.i, %48 %indvars.iv = phi i32 [ %indvars.iv.next, %82 ], [ 0, %.lr.ph54.i ] %84 = icmp eq i32 %80, %indvars.iv %spec.select.i = select i1 %84, ptr %81, ptr null - %85 = tail call fastcc i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef %spec.select.i) + %85 = tail call fastcc i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef %spec.select.i) %86 = icmp eq i32 %85, 0 br i1 %86, label %drmp3_seek_to_start_of_stream.exit, label %82 @@ -82753,7 +82834,7 @@ drmp3__on_seek_64.exit.i: ; preds = %.thread.i.i, %48 br i1 %106, label %drmp3_seek_forward_by_pcm_frames__brute_force.exit.i, label %107 107: ; preds = %.preheader.split.us.i.i.i.i - %108 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %92) + %108 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %92) %.not35.us.i.i.i.i = icmp eq i32 %108, 0 br i1 %.not35.us.i.i.i.i, label %drmp3_seek_forward_by_pcm_frames__brute_force.exit.i, label %.preheader.split.us.i.i.i.i @@ -82834,7 +82915,7 @@ drmp3_seek_to_start_of_stream.exit.i: ; preds = %115 br i1 %148, label %drmp3_seek_forward_by_pcm_frames__brute_force.exit.i21, label %149 149: ; preds = %.preheader.split.us.i.i.i.i17 - %150 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %132) + %150 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %132) %.not35.us.i.i.i.i20 = icmp eq i32 %150, 0 br i1 %.not35.us.i.i.i.i20, label %drmp3_seek_forward_by_pcm_frames__brute_force.exit.i21, label %.preheader.split.us.i.i.i.i17 @@ -83618,7 +83699,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %9 18: ; preds = %15, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %15 ] %19 = getelementptr inbounds i8, ptr %7, i64 6752 - %20 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %7, ptr noundef nonnull %19) + %20 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %7, ptr noundef nonnull %19) %21 = icmp eq i32 %20, 0 br i1 %21, label %22, label %30 @@ -83868,7 +83949,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %9 18: ; preds = %15, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %15 ] %19 = getelementptr inbounds i8, ptr %7, i64 6752 - %20 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %7, ptr noundef nonnull %19) + %20 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %7, ptr noundef nonnull %19) %21 = icmp eq i32 %20, 0 br i1 %21, label %22, label %30 @@ -83971,7 +84052,7 @@ define internal fastcc ptr @drmp3__full_read_and_close_s16(ptr noundef nonnull % br i1 %48, label %drmp3_read_pcm_frames_s16.exit, label %49 49: ; preds = %.preheader.split.i.i - %50 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %0, ptr noundef nonnull %7) + %50 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %0, ptr noundef nonnull %7) %.not35.i.i = icmp eq i32 %50, 0 br i1 %.not35.i.i, label %drmp3_read_pcm_frames_s16.exit, label %.preheader.split.i.i @@ -84175,7 +84256,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %9 20: ; preds = %17, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %17 ] %21 = getelementptr inbounds i8, ptr %6, i64 6752 - %22 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %6, ptr noundef nonnull %21) + %22 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %6, ptr noundef nonnull %21) %23 = icmp eq i32 %22, 0 br i1 %23, label %24, label %32 @@ -84272,7 +84353,7 @@ drmp3_copy_allocation_callbacks_or_defaults.exit.i.i: ; preds = %9 20: ; preds = %17, %.thread.i.i %.sroa.5.0..sroa_idx3234.i.i = phi ptr [ %.sroa.5.0..sroa_idx31.i.i, %.thread.i.i ], [ %.sroa.5.0..sroa_idx.i.i, %17 ] %21 = getelementptr inbounds i8, ptr %6, i64 6752 - %22 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %6, ptr noundef nonnull %21) + %22 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %6, ptr noundef nonnull %21) %23 = icmp eq i32 %22, 0 br i1 %23, label %24, label %32 @@ -84666,7 +84747,7 @@ qoa_lms_predict.exit.us.us: ; preds = %110 %.neg10.i.us.us = add nsw i32 %122, %123 %125 = add nsw i32 %.neg10.i.us.us, %.lobit.neg9.neg.i.us.us %126 = add nsw i32 %125, %.neg.i.us.us - %..i135.us.us = tail call i32 @llvm.smin.i32(i32 %126, i32 8) + %..i135.us.us = tail call i32 @llvm.smin.i32(i32 range(i32 -2147483628, 65555) %126, i32 8) %.0.i.us.us = tail call i32 @llvm.smax.i32(i32 %..i135.us.us, i32 -8) %127 = add nsw i32 %.0.i.us.us, 8 %128 = zext nneg i32 %127 to i64 @@ -85147,7 +85228,7 @@ define hidden i32 @qoa_decode_frame(ptr nocapture noundef readonly %0, i32 nound %.080115.us = phi i32 [ 0, %.preheader.lr.ph ], [ %56, %._crit_edge112.us ] %.1114.us = phi i32 [ %52, %.preheader.lr.ph ], [ %90, %._crit_edge112.us ] %56 = add nuw nsw i32 %.080115.us, 20 - %..i.us = tail call i32 @llvm.smin.i32(i32 %56, i32 %19) + %..i.us = tail call i32 @llvm.smin.i32(i32 range(i32 -2147483628, 65555) %56, i32 %19) %57 = mul nuw nsw i32 %..i.us, %6 %58 = zext i32 %57 to i64 br label %.lr.ph108.us @@ -92329,7 +92410,7 @@ memcopy.exit283: ; preds = %25 %330 = mul nsw i64 %329, 348 %331 = getelementptr inbounds i8, ptr %3, i64 952 %332 = load ptr, ptr %331, align 8 - tail call void @llvm.memset.p0.i64(ptr align 1 %332, i8 0, i64 %330, i1 false) + tail call void @llvm.memset.p0.i64(ptr align 1 %332, i8 0, i64 range(i64 -747324309504, 747324309157) %330, i1 false) br label %memclear.exit memclear.exit: ; preds = %324, %.lr.ph.preheader.i @@ -95212,7 +95293,7 @@ drwav_init_memory.exit.thread: ; preds = %15, %drwav_init_mem %68 = getelementptr inbounds i8, ptr %0, i64 16 store ptr %67, ptr %68, align 8 %69 = tail call i32 @stb_vorbis_get_samples_short_interleaved(ptr noundef nonnull %55, i32 noundef %58, ptr noundef %67, i32 noundef %64) - tail call fastcc void @vorbis_deinit(ptr noundef %55) + tail call fastcc void @vorbis_deinit(ptr noundef nonnull %55) %70 = getelementptr i8, ptr %55, i64 128 %.val.i = load ptr, ptr %70, align 8 %.not.i.i = icmp eq ptr %.val.i, null @@ -95266,7 +95347,7 @@ drwav_init_memory.exit.thread: ; preds = %15, %drwav_init_mem %.sroa.5.0..sroa_idx31.i.i.i = getelementptr inbounds i8, ptr %5, i64 6728 store ptr @drmp3__free_default, ptr %.sroa.5.0..sroa_idx31.i.i.i, align 8 %90 = getelementptr inbounds i8, ptr %5, i64 6752 - %91 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %5, ptr noundef nonnull %90) + %91 = call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %5, ptr noundef nonnull %90) %92 = icmp eq i32 %91, 0 br i1 %92, label %93, label %drmp3_open_memory_and_read_pcm_frames_f32.exit @@ -96793,7 +96874,7 @@ define void @LoadMusicStream(ptr dead_on_unwind noalias nocapture writable sret( br i1 %10, label %drwav_init_file.exit.thread, label %11 11: ; preds = %8 - %12 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull readonly @.str.170) + %12 = tail call noalias ptr @fopen(ptr noundef nonnull readonly %1, ptr noundef nonnull @.str.170) %13 = icmp eq ptr %12, null br i1 %13, label %drwav_init_file.exit.thread, label %drwav_fopen.exit.i.i @@ -97018,7 +97099,7 @@ drmp3_fopen.exit.i: ; preds = %101 %.sroa.5.0..sroa_idx31.i.i.i = getelementptr inbounds i8, ptr %99, i64 6728 store ptr @drmp3__free_default, ptr %.sroa.5.0..sroa_idx31.i.i.i, align 8 %110 = getelementptr inbounds i8, ptr %99, i64 6752 - %111 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %99, ptr noundef nonnull %110) + %111 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %99, ptr noundef nonnull %110) %112 = icmp eq i32 %111, 0 br i1 %112, label %113, label %125 @@ -97755,7 +97836,7 @@ LoadAudioStream.exit81: ; preds = %87, %91 %.sroa.5.0..sroa_idx31.i.i = getelementptr inbounds i8, ptr %103, i64 6728 store ptr @drmp3__free_default, ptr %.sroa.5.0..sroa_idx31.i.i, align 8 %117 = getelementptr inbounds i8, ptr %103, i64 6752 - %118 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef %103, ptr noundef nonnull %117) + %118 = tail call fastcc range(i32 0, 1153) i32 @drmp3_decode_next_frame_ex(ptr noundef nonnull %103, ptr noundef nonnull %117) %119 = icmp eq i32 %118, 0 br i1 %119, label %120, label %130 @@ -98262,7 +98343,7 @@ define void @UnloadMusicStream(ptr nocapture noundef readonly byval(%struct.Musi br label %stb_vorbis_close.exit 9: ; preds = %4 - tail call fastcc void @vorbis_deinit(ptr noundef %3) + tail call fastcc void @vorbis_deinit(ptr noundef nonnull %3) %10 = getelementptr i8, ptr %3, i64 128 %.val.i = load ptr, ptr %10, align 8 %.not.i.i = icmp eq ptr %.val.i, null @@ -111543,7 +111624,7 @@ drwav__chunk_matches.exit: ; preds = %16 %163 = zext i32 %162 to i64 %164 = load ptr, ptr %0, align 8 %165 = load ptr, ptr %76, align 8 - %166 = call i64 %164(ptr noundef %165, ptr noundef %159, i64 noundef %163) #67 + %166 = call i64 %164(ptr noundef %165, ptr noundef %159, i64 noundef range(i64 0, -602) %163) #67 %167 = add i64 %166, %.2.i br label %drwav__read_smpl_to_metadata_obj.exit @@ -112680,7 +112761,7 @@ drwav_buffer_reader_read.exit: ; preds = %drwav_buffer_reader store ptr %87, ptr %90, align 8 %91 = load ptr, ptr %0, align 8 %92 = load ptr, ptr %6, align 8 - %93 = call i64 %91(ptr noundef %92, ptr noundef %87, i64 noundef %85) #67 + %93 = call i64 %91(ptr noundef %92, ptr noundef %87, i64 noundef range(i64 0, -602) %85) #67 %94 = add i64 %93, 602 %95 = load ptr, ptr %90, align 8 %96 = load i8, ptr %95, align 1 @@ -112746,7 +112827,7 @@ define internal fastcc i64 @drwav__read_list_label_or_note_to_metadata_obj(ptr n store ptr %21, ptr %23, align 8 %24 = load ptr, ptr %0, align 8 %25 = load ptr, ptr %7, align 8 - %26 = call i64 %24(ptr noundef %25, ptr noundef %21, i64 noundef %19) #67 + %26 = call i64 %24(ptr noundef %25, ptr noundef %21, i64 noundef range(i64 0, -602) %19) #67 %27 = add i64 %26, 4 br label %31 @@ -112831,7 +112912,7 @@ define internal fastcc i64 @drwav__read_list_labelled_cue_region_to_metadata_obj store ptr %47, ptr %49, align 8 %50 = load ptr, ptr %0, align 8 %51 = load ptr, ptr %6, align 8 - %52 = call i64 %50(ptr noundef %51, ptr noundef %47, i64 noundef %45) #67 + %52 = call i64 %50(ptr noundef %51, ptr noundef %47, i64 noundef range(i64 0, -602) %45) #67 %53 = add i64 %52, 20 br label %57 @@ -112889,7 +112970,7 @@ define internal fastcc i64 @drwav__metadata_process_info_text_chunk(ptr nocaptur %28 = load ptr, ptr %0, align 8 %29 = getelementptr inbounds i8, ptr %0, i64 16 %30 = load ptr, ptr %29, align 8 - %31 = tail call i64 %28(ptr noundef %30, ptr noundef %25, i64 noundef %1) #67 + %31 = tail call i64 %28(ptr noundef %30, ptr noundef %25, i64 noundef range(i64 0, -602) %1) #67 %32 = icmp eq i64 %31, %1 br i1 %32, label %33, label %41 @@ -113031,7 +113112,7 @@ drwav_fourcc_equal.exit39.thread: ; preds = %18, %drwav_fourcc_e %69 = load ptr, ptr %0, align 8 %70 = getelementptr inbounds i8, ptr %0, i64 16 %71 = load ptr, ptr %70, align 8 - %72 = tail call i64 %69(ptr noundef %71, ptr noundef %64, i64 noundef %68) #67 + %72 = tail call i64 %69(ptr noundef %71, ptr noundef %64, i64 noundef range(i64 0, -602) %68) #67 %73 = load i32, ptr %62, align 8 %74 = zext i32 %73 to i64 %75 = icmp eq i64 %72, %74 diff --git a/bench/ring-rs/optimized/1vabw27ldssjsz66.ll b/bench/ring-rs/optimized/1vabw27ldssjsz66.ll index 2718008271c..3deadce1024 100644 --- a/bench/ring-rs/optimized/1vabw27ldssjsz66.ll +++ b/bench/ring-rs/optimized/1vabw27ldssjsz66.ll @@ -103,7 +103,7 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G %4 = load ptr, ptr %0, align 8, !nonnull !4, !align !5, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3), !noalias !6 call void @_ZN4core3fmt9Formatter12debug_struct17h182b2d36b73186b9E(ptr noalias nocapture noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 dereferenceable(16) %3, ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.3beb75dc861d66d2d938a1ec4e9d58e9.35.llvm.5814777820638942741, i64 noundef 9), !noalias !10 - %5 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h0ae9bd404677e494E(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 1 @anon.3beb75dc861d66d2d938a1ec4e9d58e9.36.llvm.5814777820638942741, i64 noundef 5, ptr noundef nonnull readonly align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3beb75dc861d66d2d938a1ec4e9d58e9.37.llvm.5814777820638942741) + %5 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h0ae9bd404677e494E(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 1 @anon.3beb75dc861d66d2d938a1ec4e9d58e9.36.llvm.5814777820638942741, i64 noundef 5, ptr noundef nonnull readonly align 8 dereferenceable(16) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3beb75dc861d66d2d938a1ec4e9d58e9.37.llvm.5814777820638942741) %6 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17h27bac3b01d1dda5cE(ptr noalias noundef nonnull align 8 dereferenceable(16) %5) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3), !noalias !6 ret i1 %6 @@ -370,7 +370,7 @@ define hidden i40 @_ZN4ring4aead3aes3Key8new_mask17h42bef1921daf07ebE(ptr noalia %4 = alloca { [16 x i8] }, align 16 %5 = alloca { [16 x i8] }, align 16 %6 = load <16 x i8>, ptr %1, align 1 - %7 = tail call noundef i8 @_ZN4core4sync6atomic11atomic_load17h757d58c2fa035f26E.llvm.8403485840513791397(ptr noundef nonnull @_ZN4ring3cpu8features4INIT17hdec16924e286df23E, i8 noundef 2) + %7 = tail call noundef i8 @_ZN4core4sync6atomic11atomic_load17h757d58c2fa035f26E.llvm.8403485840513791397(ptr noundef nonnull align 1 @_ZN4ring3cpu8features4INIT17hdec16924e286df23E, i8 noundef 2) %8 = icmp ult i8 %7, 4 tail call void @llvm.assume(i1 %8) %.not.i = icmp eq i8 %7, 2 @@ -1221,7 +1221,7 @@ define hidden void @_ZN4ring4aead3gcm7Context3new17h5c45cd819d1f2c2aE(ptr noalia _ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit: ; preds = %9, %_ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit %.sroa.5.029 = phi i64 [ %18, %_ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit ], [ %3, %9 ] %.sroa.022.028 = phi ptr [ %17, %_ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit ], [ %2, %9 ] - %.0.sroa.speculated.i.i = call noundef i64 @llvm.umin.i64(i64 %.sroa.5.029, i64 16) + %.0.sroa.speculated.i.i = call noundef i64 @llvm.umin.i64(i64 range(i64 1, 0) %.sroa.5.029, i64 16) %17 = getelementptr inbounds i8, ptr %.sroa.022.028, i64 %.0.sroa.speculated.i.i %18 = sub nuw i64 %.sroa.5.029, %.0.sroa.speculated.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %.sroa.0.i) @@ -1569,12 +1569,12 @@ define hidden void @_ZN4ring4aead5shift13shift_partial17h3d5439878fc854a3E(ptr n br i1 %22, label %23, label %_ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit.i 23: ; preds = %21 - tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef %18, i64 noundef 16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.46ac70c01d12096318b30cbe23e8e5d5.16) #22, !noalias !168 + tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef range(i64 1, 0) %18, i64 noundef 16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.46ac70c01d12096318b30cbe23e8e5d5.16) #22, !noalias !168 unreachable _ZN4ring4aead5block5Block17overwrite_part_at17he2f95ace39200dceE.exit.i: ; preds = %21 %24 = getelementptr inbounds i8, ptr %13, i64 %11 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %.sroa.0.i.i, ptr noundef nonnull readonly align 1 dereferenceable(1) %24, i64 %18, i1 false), !alias.scope !171, !noalias !175 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %.sroa.0.i.i, ptr noundef nonnull readonly align 1 dereferenceable(1) %24, i64 range(i64 1, 0) %18, i1 false), !alias.scope !171, !noalias !175 %.sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..i.i = load <16 x i8>, ptr %.sroa.0.i.i, align 16, !noalias !160 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.0.i.i) %25 = icmp ne ptr %.sroa.015.0.copyload, null @@ -1765,7 +1765,7 @@ define hidden { ptr, i64 } @_ZN4ring2io10der_writer9write_all17h3a1f4346c53abf5f 32: ; preds = %26 %33 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hcf46508d01f011f1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8) #23 + invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hcf46508d01f011f1E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8) #23 to label %.body.thread unwind label %34 34: ; preds = %32 @@ -1776,7 +1776,7 @@ define hidden { ptr, i64 } @_ZN4ring2io10der_writer9write_all17h3a1f4346c53abf5f 36: ; preds = %20 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !218 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0afa8bac86c6b554E.llvm.4129427866461079095"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %9) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0afa8bac86c6b554E.llvm.4129427866461079095"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %9) %37 = getelementptr inbounds i8, ptr %4, i64 8 %38 = load i64, ptr %37, align 8, !range !227, !noalias !218, !noundef !4 %.not.i.i.i.i = icmp eq i64 %38, 0 @@ -2074,7 +2074,7 @@ define void @_ZN4ring6pbkdf26derive17h38f75382a469d03bE(ptr noalias noundef read unreachable "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$10chunks_mut17hbb007d906e555d86E.exit": ; preds = %"_ZN96_$LT$core..slice..iter..ChunksMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17heddf377f49250887E.exit" - %.0.sroa.speculated.i.i = tail call noundef i64 @llvm.umin.i64(i64 %.sroa.5.0714, i64 %12) + %.0.sroa.speculated.i.i = tail call noundef i64 @llvm.umin.i64(i64 range(i64 1, 0) %.sroa.5.0714, i64 %12) %24 = sub nuw i64 %.sroa.5.0714, %.0.sroa.speculated.i.i %25 = getelementptr inbounds i8, ptr %.sroa.06.013, i64 %.0.sroa.speculated.i.i %26 = extractvalue { i32, i1 } %21, 0 @@ -2116,11 +2116,11 @@ define internal fastcc void @_ZN4ring6pbkdf212derive_block17h23076b73e2eeec55E(p call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.4.0..sroa_idx.i, ptr noundef nonnull readonly align 8 dereferenceable(64) %20, i64 64, i1 false), !alias.scope !268 %.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %14, i64 288 store i64 %22, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !266, !noalias !263 - call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %14, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) + call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(296) %14, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) %25 = call i32 @llvm.bswap.i32(i32 %4) store i32 %25, ptr %13, align 4 - call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %14, ptr noalias noundef nonnull readonly align 1 %13, i64 noundef 4) + call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(296) %14, ptr noalias noundef nonnull readonly align 1 %13, i64 noundef 4) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %12) call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %11) @@ -2196,7 +2196,7 @@ _ZN4core4iter6traits8iterator8Iterator8for_each17h84ff889a3bee275bE.exit: ; pred store ptr %23, ptr %31, align 8, !alias.scope !295, !noalias !297 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.4.0..sroa_idx.i.i, ptr noundef nonnull readonly align 8 dereferenceable(64) %20, i64 64, i1 false), !alias.scope !298, !noalias !299 store i64 %22, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !295, !noalias !297 - call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %9, ptr noalias noundef nonnull readonly align 1 %26, i64 noundef %32), !noalias !300 + call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(296) %9, ptr noalias noundef nonnull readonly align 1 %26, i64 noundef %32), !noalias !300 call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %8), !noalias !287 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(296) %8, ptr noundef nonnull align 8 dereferenceable(296) %9, i64 296, i1 false), !noalias !287 call void @_ZN4ring4hmac7Context4sign17h357fb20bafbe8153E(ptr noalias nocapture noundef nonnull sret({ { ptr, { [64 x i8] } } }) align 8 dereferenceable(72) %10, ptr noalias nocapture noundef nonnull align 8 dereferenceable(296) %8), !noalias !301 @@ -2258,7 +2258,7 @@ define noundef zeroext i1 @_ZN4ring6pbkdf26verify17h3b62a3be952bcf4dE(ptr noalia %.01428 = phi i32 [ %28, %.lr.ph.preheader.i ], [ 0, %13 ] %.sroa.5.01727 = phi i64 [ %25, %.lr.ph.preheader.i ], [ %7, %13 ] %.sroa.016.026 = phi ptr [ %24, %.lr.ph.preheader.i ], [ %6, %13 ] - %.0.sroa.speculated.i.i = call noundef i64 @llvm.umin.i64(i64 %.sroa.5.01727, i64 %15) + %.0.sroa.speculated.i.i = call noundef i64 @llvm.umin.i64(i64 range(i64 1, 0) %.sroa.5.01727, i64 %15) %24 = getelementptr inbounds i8, ptr %.sroa.016.026, i64 %.0.sroa.speculated.i.i %25 = sub nuw i64 %.sroa.5.01727, %.0.sroa.speculated.i.i %26 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %.01428, i32 1) @@ -2281,7 +2281,7 @@ define noundef zeroext i1 @_ZN4ring6pbkdf26verify17h3b62a3be952bcf4dE(ptr noalia .lr.ph.preheader.i: ; preds = %30 call void @llvm.memset.p0.i64(ptr nonnull align 1 %11, i8 0, i64 %.0.sroa.speculated.i.i, i1 false), !alias.scope !314 call fastcc void @_ZN4ring6pbkdf212derive_block17h23076b73e2eeec55E(ptr noalias noundef readonly align 8 dereferenceable(160) %10, i32 noundef %1, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3, i32 noundef %28, ptr noalias noundef nonnull align 1 %11, i64 noundef %.0.sroa.speculated.i.i) - %33 = call noundef i32 @ring_core_0_17_8__CRYPTO_memcmp(ptr noundef nonnull readonly %11, ptr noundef nonnull readonly %.sroa.016.026, i64 noundef %.0.sroa.speculated.i.i) + %33 = call noundef i32 @ring_core_0_17_8__CRYPTO_memcmp(ptr noundef nonnull readonly align 1 %11, ptr noundef nonnull readonly align 1 %.sroa.016.026, i64 noundef %.0.sroa.speculated.i.i) %.not = icmp eq i32 %33, 0 %34 = select i1 %.not, i32 %.029, i32 0 %35 = icmp eq i64 %25, 0 diff --git a/bench/rocksdb/optimized/compaction_picker.cc.ll b/bench/rocksdb/optimized/compaction_picker.cc.ll index f6616133a1f..cec0f9ebe0e 100644 --- a/bench/rocksdb/optimized/compaction_picker.cc.ll +++ b/bench/rocksdb/optimized/compaction_picker.cc.ll @@ -1397,7 +1397,7 @@ invoke.cont13: ; preds = %if.end4.i20, %land. to label %call.i.noexc unwind label %lpad16 call.i.noexc: ; preds = %invoke.cont13 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %call.i21, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i21, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) to label %.noexc unwind label %lpad16 .noexc: ; preds = %call.i.noexc @@ -1407,7 +1407,7 @@ call.i.noexc: ; preds = %invoke.cont13 lpad.i: ; preds = %.noexc %15 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #30 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #30 br label %ehcleanup invoke.cont17: ; preds = %.noexc @@ -1636,7 +1636,7 @@ invoke.cont: ; preds = %if.then lpad: ; preds = %if.end, %if.then %0 = landingpad { ptr, i32 } cleanup - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #30 + tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #30 resume { ptr, i32 } %0 if.end: ; preds = %entry @@ -2158,7 +2158,7 @@ if.then47: ; preds = %for.end45 to label %call.i43.noexc unwind label %lpad49 call.i43.noexc: ; preds = %if.then47 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %message, ptr noundef %call.i4345, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp48) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %message, ptr noundef %call.i4345, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp48) to label %.noexc46 unwind label %lpad49 .noexc46: ; preds = %call.i43.noexc @@ -2168,7 +2168,7 @@ call.i43.noexc: ; preds = %if.then47 lpad.i: ; preds = %.noexc46 %43 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %message) #30 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %message) #30 br label %lpad49.body invoke.cont50: ; preds = %.noexc46 @@ -2306,7 +2306,7 @@ for.inc92: ; preds = %if.else.i61, %if.th for.end94: ; preds = %for.inc92, %for.cond82.preheader %state_.i.i = getelementptr inbounds i8, ptr %agg.result, i64 8 store ptr null, ptr %state_.i.i, align 8, !alias.scope !22 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %agg.result, i8 0, i64 6, i1 false), !alias.scope !22 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.result, i8 0, i64 6, i1 false), !alias.scope !22 br label %cleanup cleanup: ; preds = %for.end94, %invoke.cont79 @@ -2412,7 +2412,7 @@ _ZNSt8__detail14__to_chars_lenImEEjT_i.exit: ; preds = %if.end16.i, %entry, to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %_ZNSt8__detail14__to_chars_lenImEEjT_i.exit - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %lpad .noexc: ; preds = %call.i.noexc @@ -2422,7 +2422,7 @@ call.i.noexc: ; preds = %_ZNSt8__detail14__t lpad.i: ; preds = %.noexc %0 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #30 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #30 br label %lpad.body invoke.cont: ; preds = %.noexc @@ -3266,11 +3266,7 @@ if.then.i.i: ; preds = %if.end10 _ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i: ; preds = %if.end10 store i64 0, ptr %inputs, align 8 %cmp.not.i.i.i.i = icmp eq i32 %4, %8 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i: ; preds = %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i - store i64 0, ptr %inputs, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i %mul.i.i.i.i.i.i = mul nuw nsw i64 %conv, 56 @@ -3281,10 +3277,10 @@ for.body.preheader.i.i.i.i.i: ; preds = %_ZNSt6vectorIN7rock %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i134, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i - %10 = phi ptr [ null, %_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %call5.i.i.i.i2.i.i134, %for.body.preheader.i.i.i.i.i ] - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN7rocksdb20CompactionInputFilesESaIS1_EEC2EmRKS2_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i, %for.body.preheader.i.i.i.i.i + %10 = phi ptr [ %call5.i.i.i.i2.i.i134, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %_ZNSt6vectorIN7rocksdb20CompactionInputFilesESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %inputs, i64 8 %11 = getelementptr inbounds i8, ptr %inputs, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %11, align 8 @@ -5354,7 +5350,7 @@ if.then196: ; preds = %invoke.cont193 to label %if.end203 unwind label %lpad.loopexit.split-lp257.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit if.end203: ; preds = %for.inc165, %for.end124.thread, %invoke.cont193, %if.then196 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %aggregated_file_meta) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(432) %aggregated_file_meta) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %directory.i.i) #30 store i64 0, ptr %file_number.i.i, align 8 store i32 5, ptr %file_type.i.i, align 8 @@ -5593,7 +5589,7 @@ invoke.cont246: ; preds = %invoke.cont241 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %file_checksum_func_name.i.i) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %file_checksum.i.i) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %directory.i.i) #30 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %aggregated_file_meta) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(432) %aggregated_file_meta) #30 br label %cleanup282 lpad206.loopexit: ; preds = %if.end249, %for.body227, %if.then.i, %if.else.i, %if.end17.i, %if.then24.i, %if.else33.i, %invoke.cont252 @@ -5662,7 +5658,7 @@ for.inc265.critedge: ; preds = %for.inc261, %invoke call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %file_checksum_func_name.i.i) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %file_checksum.i.i) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %directory.i.i) #30 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %aggregated_file_meta) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(432) %aggregated_file_meta) #30 br label %for.inc265 for.inc265: ; preds = %for.body, %for.inc265.critedge, %for.end @@ -5706,7 +5702,7 @@ if.then274: ; preds = %invoke.cont272 if.end280: ; preds = %invoke.cont272 %state_.i.i = getelementptr inbounds i8, ptr %agg.result, i64 8 store ptr null, ptr %state_.i.i, align 8, !alias.scope !48 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %agg.result, i8 0, i64 6, i1 false), !alias.scope !48 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.result, i8 0, i64 6, i1 false), !alias.scope !48 br label %cleanup282 cleanup282: ; preds = %if.then274, %invoke.cont246, %if.end280, %invoke.cont112 @@ -5783,7 +5779,7 @@ entry: tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %file_checksum.i) #30 %directory.i = getelementptr inbounds i8, ptr %this, i64 32 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %directory.i) #30 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) #30 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(160) %this) #30 ret void } @@ -6040,7 +6036,7 @@ invoke.cont56: ; preds = %if.end46 if.then58: ; preds = %invoke.cont56 %state_.i.i = getelementptr inbounds i8, ptr %agg.result, i64 8 store ptr null, ptr %state_.i.i, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %agg.result, i8 0, i64 6, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.result, i8 0, i64 6, i1 false) %cmp.not.i.i = icmp eq ptr %agg.result, %s br i1 %cmp.not.i.i, label %cleanup, label %if.then.i.i @@ -6134,7 +6130,7 @@ if.then89: ; preds = %if.then88 to label %call.i85.noexc unwind label %lpad96 call.i85.noexc: ; preds = %if.then89 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp94, ptr noundef %call.i8587, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp95) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp94, ptr noundef %call.i8587, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp95) to label %.noexc unwind label %lpad96 .noexc: ; preds = %call.i85.noexc @@ -6144,7 +6140,7 @@ call.i85.noexc: ; preds = %if.then89 lpad.i: ; preds = %.noexc %30 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp94) #30 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp94) #30 br label %ehcleanup113 invoke.cont97: ; preds = %.noexc @@ -6500,7 +6496,7 @@ ehcleanup201: ; preds = %ehcleanup200, %lpad for.end205: ; preds = %for.cond %state_.i.i132 = getelementptr inbounds i8, ptr %agg.result, i64 8 store ptr null, ptr %state_.i.i132, align 8, !alias.scope !54 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %agg.result, i8 0, i64 6, i1 false), !alias.scope !54 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.result, i8 0, i64 6, i1 false), !alias.scope !54 br label %cleanup cleanup: ; preds = %if.then58, %if.then.i.i, %for.end205, %invoke.cont191, %invoke.cont151, %invoke.cont108 @@ -6611,7 +6607,7 @@ _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit: ; preds = %if.end14.i, %entry, to label %call.i.noexc unwind label %terminate.lpad call.i.noexc: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef %call.i8, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) to label %.noexc unwind label %terminate.lpad .noexc: ; preds = %call.i.noexc @@ -6621,7 +6617,7 @@ call.i.noexc: ; preds = %_ZNSt8__detail14__t lpad.i: ; preds = %.noexc %1 = landingpad { ptr, i32 } catch ptr null - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #30 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #30 br label %terminate.lpad.body invoke.cont: ; preds = %.noexc @@ -6908,7 +6904,7 @@ invoke.cont.i.i: ; preds = %for.end br label %cleanup35 cleanup35: ; preds = %invoke.cont28, %invoke.cont.i.i, %for.end, %invoke.cont13 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %continuation) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(72) %continuation) #30 br label %cleanup.cont cleanup.cont: ; preds = %entry, %cleanup35 @@ -6916,7 +6912,7 @@ cleanup.cont: ; preds = %entry, %cleanup35 ehcleanup37: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp, %lpad22 %.pn.pn = phi { ptr, i32 } [ %21, %lpad22 ], [ %lpad.loopexit29, %lpad.loopexit ], [ %lpad.loopexit.split-lp30, %lpad.loopexit.split-lp ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %continuation) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(72) %continuation) #30 resume { ptr, i32 } %.pn.pn } diff --git a/bench/sentencepiece/optimized/time.cc.ll b/bench/sentencepiece/optimized/time.cc.ll index ac714de8c79..9f128bcf56c 100644 --- a/bench/sentencepiece/optimized/time.cc.ll +++ b/bench/sentencepiece/optimized/time.cc.ll @@ -503,7 +503,7 @@ define void @_ZN6google8protobuf8internal10FormatTimeB5cxx11Eli(ptr dead_on_unwi to label %.noexc unwind label %15 .noexc: ; preds = %11 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %12, ptr noundef nonnull align 1 dereferenceable(1) %5) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %12, ptr noundef nonnull align 1 dereferenceable(1) %5) to label %.noexc16 unwind label %15 .noexc16: ; preds = %.noexc @@ -513,12 +513,12 @@ define void @_ZN6google8protobuf8internal10FormatTimeB5cxx11Eli(ptr dead_on_unwi 13: ; preds = %.noexc16 %14 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #10 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #10 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %.noexc16 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10 - br label %54 + br label %55 15: ; preds = %.noexc, %11 %16 = landingpad { ptr, i32 } @@ -528,7 +528,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr .body: ; preds = %13, %15 %eh.lpad-body = phi { ptr, i32 } [ %16, %15 ], [ %14, %13 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10 - br label %55 + br label %56 17: ; preds = %9 %18 = load i32, ptr %4, align 4 @@ -544,7 +544,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %28 = load i32, ptr %27, align 4 call void (ptr, ptr, ...) @_ZN6google8protobuf12StringPrintfB5cxx11EPKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull @.str.1, i32 noundef %18, i32 noundef %20, i32 noundef %22, i32 noundef %24, i32 noundef %26, i32 noundef %28) %.not = icmp eq i32 %2, 0 - br i1 %.not, label %50, label %29 + br i1 %.not, label %51, label %29 29: ; preds = %17 %30 = urem i32 %2, 1000000 @@ -556,78 +556,80 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %34 = urem i32 %2, 1000 %35 = udiv i32 %2, 1000 %36 = icmp eq i32 %34, 0 - %spec.select = select i1 %36, ptr @.str.5, ptr @.str.6 - %spec.select24 = select i1 %36, i32 %35, i32 %2 - br label %.invoke + br i1 %36, label %.invoke, label %39 .invoke: ; preds = %33, %29 - %37 = phi ptr [ @.str.4, %29 ], [ %spec.select, %33 ] - %38 = phi i32 [ %31, %29 ], [ %spec.select24, %33 ] + %37 = phi ptr [ @.str.4, %29 ], [ @.str.5, %33 ] + %38 = phi i32 [ %31, %29 ], [ %35, %33 ] invoke void (ptr, ptr, ...) @_ZN6google8protobuf12StringPrintfB5cxx11EPKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull %37, i32 noundef %38) - to label %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit unwind label %43 + to label %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit unwind label %44 -_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit: ; preds = %.invoke - %39 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 0, ptr noundef nonnull @.str.2) - to label %40 unwind label %45 +39: ; preds = %33 + invoke void (ptr, ptr, ...) @_ZN6google8protobuf12StringPrintfB5cxx11EPKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.6, i32 noundef range(i32 1, 1000000000) %2) + to label %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit unwind label %44 -40: ; preds = %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %39) #10 - %41 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %7) - to label %42 unwind label %47 +_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit: ; preds = %.invoke, %39 + %40 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 0, ptr noundef nonnull @.str.2) + to label %41 unwind label %46 -42: ; preds = %40 +41: ; preds = %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %40) #10 + %42 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %7) + to label %43 unwind label %48 + +43: ; preds = %41 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10 - br label %50 + br label %51 -43: ; preds = %.invoke, %50 - %44 = landingpad { ptr, i32 } +44: ; preds = %.invoke, %51, %39 + %45 = landingpad { ptr, i32 } cleanup br label %.body22 -45: ; preds = %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit - %46 = landingpad { ptr, i32 } +46: ; preds = %_ZN6google8protobuf8internal12_GLOBAL__N_111FormatNanosB5cxx11Ei.exit + %47 = landingpad { ptr, i32 } cleanup - br label %49 + br label %50 -47: ; preds = %40 - %48 = landingpad { ptr, i32 } +48: ; preds = %41 + %49 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10 - br label %49 + br label %50 -49: ; preds = %47, %45 - %.pn = phi { ptr, i32 } [ %48, %47 ], [ %46, %45 ] +50: ; preds = %48, %46 + %.pn = phi { ptr, i32 } [ %49, %48 ], [ %47, %46 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10 br label %.body22 -50: ; preds = %42, %17 +51: ; preds = %43, %17 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) - to label %.noexc21 unwind label %43 + to label %.noexc21 unwind label %44 -.noexc21: ; preds = %50 - %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.3) - to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit unwind label %52 +.noexc21: ; preds = %51 + %52 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.3) + to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit unwind label %53 -52: ; preds = %.noexc21 - %53 = landingpad { ptr, i32 } +53: ; preds = %.noexc21 + %54 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #10 br label %.body22 _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit: ; preds = %.noexc21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %54 + br label %55 -.body22: ; preds = %43, %52, %49 - %.pn12 = phi { ptr, i32 } [ %.pn, %49 ], [ %44, %43 ], [ %53, %52 ] +.body22: ; preds = %44, %53, %50 + %.pn12 = phi { ptr, i32 } [ %.pn, %50 ], [ %45, %44 ], [ %54, %53 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %55 + br label %56 -54: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit +55: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit ret void -55: ; preds = %.body22, %.body +56: ; preds = %.body22, %.body %.pn14 = phi { ptr, i32 } [ %eh.lpad-body, %.body ], [ %.pn12, %.body22 ] resume { ptr, i32 } %.pn14 } diff --git a/bench/simdjson/optimized/simdjson.cpp.ll b/bench/simdjson/optimized/simdjson.cpp.ll index 8ac515022d3..201fcd4deff 100644 --- a/bench/simdjson/optimized/simdjson.cpp.ll +++ b/bench/simdjson/optimized/simdjson.cpp.ll @@ -3192,7 +3192,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #53 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i.i) #53 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3313,7 +3313,7 @@ sw.bb100.i.i: ; preds = %if.end84.i.i br i1 %cmp103.i.i, label %sw.epilog118.sink.split.i.i, label %array_begin.i.i sw.default112.i.i: ; preds = %if.end84.i.i - %call114.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 + %call114.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 %tobool115.not.i.i = icmp eq i32 %call114.i.i, 0 br i1 %tobool115.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3499,7 +3499,7 @@ sw.bb202.i.i: ; preds = %array_value.i.i br i1 %cmp205.i.i, label %sw.epilog220.sink.split.i.i, label %array_begin.i.i sw.default214.i.i: ; preds = %array_value.i.i - %call216.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 + %call216.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 %tobool217.not.i.i = icmp eq i32 %call216.i.i, 0 br i1 %tobool217.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3654,7 +3654,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3775,7 +3775,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3961,7 +3961,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -4580,7 +4580,7 @@ entry: %idx.i.i = getelementptr inbounds i8, ptr %reader.i, i64 24 store i64 0, ptr %idx.i.i, align 8 %dst.i.i = getelementptr inbounds i8, ptr %minifier.i, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %minifier.i, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %minifier.i, i8 0, i64 24, i1 false) store ptr %dst, ptr %dst.i.i, align 8 %cmp.i18.not.i = icmp ult i64 %len, 129 br i1 %cmp.i18.not.i, label %while.end.i, label %while.body.i @@ -4733,7 +4733,7 @@ if.end11.i: ; preds = %_ZN8simdjson7haswel %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 32 %indexer.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 128 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 32 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 32 dereferenceable(152) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 32 dereferenceable(96) %checker.i.i, i8 0, i64 96, i1 false) store ptr %8, ptr %indexer.i.i, align 32 %prev_structurals.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 136 @@ -5188,7 +5188,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #53 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i.i) #53 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5309,7 +5309,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5495,7 +5495,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5650,7 +5650,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5771,7 +5771,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5957,7 +5957,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -6951,7 +6951,7 @@ if.end11.i: ; preds = %_ZN8simdjson7icelak %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 64 %indexer.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 256 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(280) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(192) %checker.i.i, i8 0, i64 192, i1 false) store ptr %8, ptr %indexer.i.i, align 64 %prev_structurals.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 264 @@ -7390,7 +7390,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #53 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i.i) #53 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7511,7 +7511,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7697,7 +7697,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7852,7 +7852,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7973,7 +7973,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -8159,7 +8159,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -9365,7 +9365,7 @@ if.end11.i: ; preds = %_ZN8simdjson8westme %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 32 %indexer.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 80 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %checker.i.i, i8 0, i64 48, i1 false) store ptr %8, ptr %indexer.i.i, align 16 %prev_structurals.i.i = getelementptr inbounds i8, ptr %indexer.i, i64 88 @@ -9943,7 +9943,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #53 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i.i) #53 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10064,7 +10064,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i162.i.i) #53 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10250,7 +10250,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i267.i.i) #53 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10405,7 +10405,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i.i4.i) #53 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10526,7 +10526,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i146.i.i) #53 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10712,7 +10712,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull %arrayidx.i251.i.i) #53 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -13916,7 +13916,7 @@ if.then11.i.i.i: ; preds = %if.end9.i.i.i if.end13.i.i.i: ; preds = %if.end9.i.i.i %mul14.i.i.i = mul nsw i64 %exponent.1.i, 217706 %shr.i.i47.i = ashr i64 %mul14.i.i.i, 16 - %26 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %i.1.i, i1 true) + %26 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 range(i64 1, 0) %i.1.i, i1 true) %shl.i.i.i = shl i64 %i.1.i, %26 %27 = trunc nsw i64 %exponent.1.i to i32 %conv17.i.i.i = shl nsw i32 %27, 1 @@ -15933,7 +15933,7 @@ if.then11.i.i.i: ; preds = %if.end9.i.i.i if.end13.i.i.i: ; preds = %if.end9.i.i.i %mul14.i.i.i = mul nsw i64 %exponent.1.i, 217706 %shr.i.i48.i = ashr i64 %mul14.i.i.i, 16 - %27 = tail call noundef range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %i.1.i, i1 true) + %27 = tail call noundef range(i64 0, 65) i64 @llvm.ctlz.i64(i64 range(i64 1, 0) %i.1.i, i1 true) %shl.i.i.i = shl i64 %i.1.i, %27 %28 = trunc nsw i64 %exponent.1.i to i32 %conv17.i.i.i = shl nsw i32 %28, 1 @@ -17294,7 +17294,7 @@ if.then11.i.i.i: ; preds = %if.end9.i.i.i if.end13.i.i.i: ; preds = %if.end9.i.i.i %mul14.i.i.i = mul nsw i64 %exponent.1.i, 217706 %shr.i.i48.i = ashr i64 %mul14.i.i.i, 16 - %27 = tail call noundef range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %i.1.i, i1 true) + %27 = tail call noundef range(i64 0, 65) i64 @llvm.ctlz.i64(i64 range(i64 1, 0) %i.1.i, i1 true) %shl.i.i.i = shl i64 %i.1.i, %27 %28 = trunc nsw i64 %exponent.1.i to i32 %conv17.i.i.i = shl nsw i32 %28, 1 @@ -18848,7 +18848,7 @@ if.then11.i.i.i: ; preds = %if.end9.i.i.i if.end13.i.i.i: ; preds = %if.end9.i.i.i %mul14.i.i.i = mul nsw i64 %exponent.1.i, 217706 %shr.i.i48.i = ashr i64 %mul14.i.i.i, 16 - %27 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %i.1.i, i1 true) + %27 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 range(i64 1, 0) %i.1.i, i1 true) %shl.i.i.i = shl i64 %i.1.i, %27 %28 = trunc nsw i64 %exponent.1.i to i32 %conv17.i.i.i = shl nsw i32 %28, 1 diff --git a/bench/soc-simulator/optimized/Vmycpu_top__Syms.ll b/bench/soc-simulator/optimized/Vmycpu_top__Syms.ll index e0b8457b3da..63206ad78fa 100644 --- a/bench/soc-simulator/optimized/Vmycpu_top__Syms.ll +++ b/bench/soc-simulator/optimized/Vmycpu_top__Syms.ll @@ -57,7 +57,7 @@ define dso_local void @_ZN16Vmycpu_top__SymsD2Ev(ptr noundef nonnull align 64 de br label %_ZNSt6vectorIP11VlDeletableSaIS1_EED2Ev.exit.i _ZNSt6vectorIP11VlDeletableSaIS1_EED2Ev.exit.i: ; preds = %8, %4 - %14 = tail call ptr @llvm.ptr.annotation.p0.p0(ptr nonnull %3, ptr nonnull @.str, ptr nonnull @.str.1, i32 1729, ptr null) + %14 = tail call ptr @llvm.ptr.annotation.p0.p0(ptr nonnull align 8 dereferenceable(128) %3, ptr nonnull @.str, ptr nonnull @.str.1, i32 1729, ptr null) %15 = load ptr, ptr %14, align 8 %.not.i.i.i1.i = icmp eq ptr %15, null br i1 %.not.i.i.i1.i, label %_ZN9VlDeleterD2Ev.exit, label %16 @@ -142,7 +142,7 @@ define dso_local void @_ZN16Vmycpu_top__SymsC2EP16VerilatedContextPKcP10Vmycpu_t %5 = getelementptr inbounds i8, ptr %0, i64 16 store ptr %3, ptr %5, align 16 %6 = getelementptr inbounds i8, ptr %0, i64 24 - %7 = tail call ptr @llvm.ptr.annotation.p0.p0(ptr nonnull %6, ptr nonnull @.str, ptr nonnull @.str.1, i32 1729, ptr null) + %7 = tail call ptr @llvm.ptr.annotation.p0.p0(ptr nonnull align 8 dereferenceable(128) %6, ptr nonnull @.str, ptr nonnull @.str.1, i32 1729, ptr null) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false) %8 = getelementptr inbounds i8, ptr %0, i64 48 %9 = tail call ptr @llvm.ptr.annotation.p0.p0(ptr nonnull %8, ptr nonnull @.str, ptr nonnull @.str.1, i32 1731, ptr null) @@ -164,13 +164,13 @@ define dso_local void @_ZN16Vmycpu_top__SymsC2EP16VerilatedContextPKcP10Vmycpu_t 15: ; preds = %13 %16 = load ptr, ptr %0, align 64 - %17 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %16) #11 + %17 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(608) %16) #11 %.not.i.i.i.i.i = icmp eq i32 %17, 0 br i1 %.not.i.i.i.i.i, label %.loopexit, label %.preheader.i.i.i .preheader.i.i.i: ; preds = %15, %19 %.03.i.i.i = phi i32 [ %20, %19 ], [ 0, %15 ] - %18 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %16) #11 + %18 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(608) %16) #11 %.not.i.i2.i.i.i = icmp eq i32 %18, 0 br i1 %.not.i.i2.i.i.i, label %.loopexit, label %19 @@ -181,7 +181,7 @@ define dso_local void @_ZN16Vmycpu_top__SymsC2EP16VerilatedContextPKcP10Vmycpu_t br i1 %exitcond.not.i.i.i, label %21, label %.preheader.i.i.i, !llvm.loop !6 21: ; preds = %19 - %22 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %16) #11 + %22 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(608) %16) #11 %.not.i.i.i.i = icmp eq i32 %22, 0 br i1 %.not.i.i.i.i, label %.loopexit, label %23 @@ -195,7 +195,7 @@ define dso_local void @_ZN16Vmycpu_top__SymsC2EP16VerilatedContextPKcP10Vmycpu_t .loopexit: ; preds = %.preheader.i.i.i, %21, %15 %24 = getelementptr inbounds i8, ptr %16, i64 56 store i8 12, ptr %24, align 8 - %25 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %16) #11 + %25 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(608) %16) #11 invoke void @_ZN20Vmycpu_top___024root12__VconfigureEb(ptr noundef nonnull align 64 dereferenceable(19328) %11, i1 noundef zeroext true) to label %26 unwind label %29 @@ -232,13 +232,13 @@ declare void @_ZN16VerilatedContext8timeunitEi(ptr noundef nonnull align 8 deref ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN16VerilatedContext13timeprecisionEi(ptr noundef nonnull align 8 dereferenceable(608) %0, i32 noundef %1) #2 comdat align 2 personality ptr @__gxx_personality_v0 { - %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %0) #11 + %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i.i.i.i = icmp eq i32 %3, 0 br i1 %.not.i.i.i.i, label %_ZN18VerilatedLockGuardC2ER14VerilatedMutex.exit, label %.preheader.i.i .preheader.i.i: ; preds = %2, %5 %.03.i.i = phi i32 [ %6, %5 ], [ 0, %2 ] - %4 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %0) #11 + %4 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i.i2.i.i = icmp eq i32 %4, 0 br i1 %.not.i.i2.i.i, label %_ZN18VerilatedLockGuardC2ER14VerilatedMutex.exit, label %5 @@ -249,7 +249,7 @@ define linkonce_odr dso_local void @_ZN16VerilatedContext13timeprecisionEi(ptr n br i1 %exitcond.not.i.i, label %7, label %.preheader.i.i, !llvm.loop !6 7: ; preds = %5 - %8 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #11 + %8 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i.i.i = icmp eq i32 %8, 0 br i1 %.not.i.i.i, label %_ZN18VerilatedLockGuardC2ER14VerilatedMutex.exit, label %9 @@ -262,7 +262,7 @@ _ZN18VerilatedLockGuardC2ER14VerilatedMutex.exit: ; preds = %.preheader.i.i, %2, %10 = trunc i32 %spec.select to i8 %11 = getelementptr inbounds i8, ptr %0, i64 56 store i8 %10, ptr %11, align 8 - %12 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #11 + %12 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 ret void } @@ -294,13 +294,13 @@ declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN18VerilatedLockGuardC2ER14VerilatedMutex(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) unnamed_addr #2 comdat align 2 personality ptr @__gxx_personality_v0 { store ptr %1, ptr %0, align 8 - %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %1) #11 + %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %1) #11 %.not.i.i.i = icmp eq i32 %3, 0 br i1 %.not.i.i.i, label %_ZN14VerilatedMutex4lockEv.exit, label %.preheader.i .preheader.i: ; preds = %2, %5 %.03.i = phi i32 [ %6, %5 ], [ 0, %2 ] - %4 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %1) #11 + %4 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %1) #11 %.not.i.i2.i = icmp eq i32 %4, 0 br i1 %.not.i.i2.i, label %_ZN14VerilatedMutex4lockEv.exit, label %5 @@ -311,7 +311,7 @@ define linkonce_odr dso_local void @_ZN18VerilatedLockGuardC2ER14VerilatedMutex( br i1 %exitcond.not.i, label %7, label %.preheader.i, !llvm.loop !6 7: ; preds = %5 - %8 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %1) #11 + %8 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %1) #11 %.not.i.i = icmp eq i32 %8, 0 br i1 %.not.i.i, label %_ZN14VerilatedMutex4lockEv.exit, label %9 @@ -326,19 +326,19 @@ _ZN14VerilatedMutex4lockEv.exit: ; preds = %.preheader.i, %2, % ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local void @_ZN18VerilatedLockGuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = load ptr, ptr %0, align 8 - %3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %2) #11 + %3 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %2) #11 ret void } ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN14VerilatedMutex4lockEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #2 comdat align 2 personality ptr @__gxx_personality_v0 { - %2 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %0) #11 + %2 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i.i = icmp eq i32 %2, 0 br i1 %.not.i.i, label %_ZNSt5mutex4lockEv.exit, label %.preheader .preheader: ; preds = %1, %4 %.03 = phi i32 [ %5, %4 ], [ 0, %1 ] - %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %0) #11 + %3 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i.i2 = icmp eq i32 %3, 0 br i1 %.not.i.i2, label %_ZNSt5mutex4lockEv.exit, label %4 @@ -349,7 +349,7 @@ define linkonce_odr dso_local void @_ZN14VerilatedMutex4lockEv(ptr noundef nonnu br i1 %exitcond.not, label %6, label %.preheader, !llvm.loop !6 6: ; preds = %4 - %7 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #11 + %7 = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i = icmp eq i32 %7, 0 br i1 %.not.i, label %_ZNSt5mutex4lockEv.exit, label %8 @@ -363,7 +363,7 @@ _ZNSt5mutex4lockEv.exit: ; preds = %.preheader, %6, %1 ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef zeroext i1 @_ZN14VerilatedMutex8try_lockEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #0 comdat align 2 personality ptr @__gxx_personality_v0 { - %2 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull %0) #11 + %2 = tail call noundef i32 @pthread_mutex_trylock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 %.not.i = icmp eq i32 %2, 0 ret i1 %.not.i } @@ -379,7 +379,7 @@ declare i32 @pthread_mutex_lock(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN14VerilatedMutex6unlockEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #2 comdat align 2 { - %2 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #11 + %2 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #11 ret void } diff --git a/bench/spdlog/optimized/stdout_sinks.cpp.ll b/bench/spdlog/optimized/stdout_sinks.cpp.ll index f5cb865f610..08473f5008f 100644 --- a/bench/spdlog/optimized/stdout_sinks.cpp.ll +++ b/bench/spdlog/optimized/stdout_sinks.cpp.ll @@ -495,7 +495,7 @@ entry: %ref.tmp = alloca %"class.std::allocator", align 1 %mutex_ = getelementptr inbounds i8, ptr %this, i64 16 %0 = load ptr, ptr %mutex_, align 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #17 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -542,14 +542,14 @@ if.then.i.i1: ; preds = %invoke.cont3 _ZN3fmt2v919basic_memory_bufferIcLm250ESaIcEED2Ev.exit: ; preds = %invoke.cont3, %if.then.i.i1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %alloc_.i) #17 - %call1.i.i.i3 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i3 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 ret void lpad2: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit %8 = landingpad { ptr, i32 } cleanup call void @_ZN3fmt2v919basic_memory_bufferIcLm250ESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(288) %formatted) #17 - %call1.i.i.i4 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i4 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 resume { ptr, i32 } %8 } @@ -589,7 +589,7 @@ define weak_odr dso_local void @_ZN6spdlog5sinks16stdout_sink_baseINS_7details13 entry: %mutex_ = getelementptr inbounds i8, ptr %this, i64 16 %0 = load ptr, ptr %mutex_, align 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #17 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -601,7 +601,7 @@ _ZNSt10lock_guardISt5mutexEC2ERS0_.exit: ; preds = %entry %file_ = getelementptr inbounds i8, ptr %this, i64 24 %1 = load ptr, ptr %file_, align 8 %call = tail call i32 @fflush(ptr noundef %1) - %call1.i.i.i1 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i1 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 ret void } @@ -614,7 +614,7 @@ entry: %agg.tmp8 = alloca %"class.std::unordered_map", align 8 %mutex_ = getelementptr inbounds i8, ptr %this, i64 16 %0 = load ptr, ptr %mutex_, align 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #17 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -708,7 +708,7 @@ _ZNSt13unordered_mapIcSt10unique_ptrIN6spdlog21custom_flag_formatterESt14default call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp4) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #17 - %call1.i.i.i5 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i5 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 ret void lpad: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit @@ -746,7 +746,7 @@ cleanup.action: ; preds = %lpad2, %ehcleanup ehcleanup14: ; preds = %cleanup.action, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %cleanup.action ], [ %11, %lpad ] - %call1.i.i.i6 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i6 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 resume { ptr, i32 } %.pn.pn.pn } @@ -821,7 +821,7 @@ define weak_odr dso_local void @_ZN6spdlog5sinks16stdout_sink_baseINS_7details13 entry: %mutex_ = getelementptr inbounds i8, ptr %this, i64 16 %0 = load ptr, ptr %mutex_, align 8 - %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %0) #17 + %call1.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, label %if.then.i.i @@ -846,7 +846,7 @@ _ZNKSt14default_deleteIN6spdlog9formatterEEclEPS1_.exit.i.i.i.i: ; preds = %_ZNS br label %_ZNSt10unique_ptrIN6spdlog9formatterESt14default_deleteIS1_EEaSEOS4_.exit _ZNSt10unique_ptrIN6spdlog9formatterESt14default_deleteIS1_EEaSEOS4_.exit: ; preds = %_ZNSt10lock_guardISt5mutexEC2ERS0_.exit, %_ZNKSt14default_deleteIN6spdlog9formatterEEclEPS1_.exit.i.i.i.i - %call1.i.i.i1 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %0) #17 + %call1.i.i.i1 = tail call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %0) #17 ret void } @@ -2298,7 +2298,7 @@ entry: %agg.tmp13 = alloca %"class.std::shared_ptr", align 8 %call = tail call noundef nonnull align 8 dereferenceable(336) ptr @_ZN6spdlog7details8registry8instanceEv() %call1 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZN6spdlog7details8registry8tp_mutexEv(ptr noundef nonnull align 8 dereferenceable(336) %call) - %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_.exit, label %if.then.i.i @@ -2821,7 +2821,7 @@ if.end8.sink.split.i.i.i.i151: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160 _ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160: ; preds = %_ZNSt10shared_ptrIN6spdlog5sinks11stdout_sinkINS0_7details13console_mutexEEEED2Ev.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i138, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i148, %if.end8.sink.split.i.i.i.i151 - %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 ret void lpad11: ; preds = %invoke.cont9 @@ -2848,7 +2848,7 @@ ehcleanup16: ; preds = %_ZNSt15__allocated_ ehcleanup17: ; preds = %ehcleanup16, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %ehcleanup16 ], [ %29, %lpad ] - %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 resume { ptr, i32 } %.pn.pn.pn } @@ -2971,7 +2971,7 @@ entry: %agg.tmp13 = alloca %"class.std::shared_ptr", align 8 %call = tail call noundef nonnull align 8 dereferenceable(336) ptr @_ZN6spdlog7details8registry8instanceEv() %call1 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZN6spdlog7details8registry8tp_mutexEv(ptr noundef nonnull align 8 dereferenceable(336) %call) - %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_.exit, label %if.then.i.i @@ -3494,7 +3494,7 @@ if.end8.sink.split.i.i.i.i151: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160 _ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160: ; preds = %_ZNSt10shared_ptrIN6spdlog5sinks11stdout_sinkINS0_7details17console_nullmutexEEEED2Ev.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i138, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i148, %if.end8.sink.split.i.i.i.i151 - %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 ret void lpad11: ; preds = %invoke.cont9 @@ -3521,7 +3521,7 @@ ehcleanup16: ; preds = %_ZNSt15__allocated_ ehcleanup17: ; preds = %ehcleanup16, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %ehcleanup16 ], [ %29, %lpad ] - %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 resume { ptr, i32 } %.pn.pn.pn } @@ -3564,7 +3564,7 @@ entry: %agg.tmp13 = alloca %"class.std::shared_ptr", align 8 %call = tail call noundef nonnull align 8 dereferenceable(336) ptr @_ZN6spdlog7details8registry8instanceEv() %call1 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZN6spdlog7details8registry8tp_mutexEv(ptr noundef nonnull align 8 dereferenceable(336) %call) - %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_.exit, label %if.then.i.i @@ -4087,7 +4087,7 @@ if.end8.sink.split.i.i.i.i151: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160 _ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160: ; preds = %_ZNSt10shared_ptrIN6spdlog5sinks11stderr_sinkINS0_7details13console_mutexEEEED2Ev.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i138, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i148, %if.end8.sink.split.i.i.i.i151 - %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 ret void lpad11: ; preds = %invoke.cont9 @@ -4114,7 +4114,7 @@ ehcleanup16: ; preds = %_ZNSt15__allocated_ ehcleanup17: ; preds = %ehcleanup16, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %ehcleanup16 ], [ %29, %lpad ] - %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 resume { ptr, i32 } %.pn.pn.pn } @@ -4157,7 +4157,7 @@ entry: %agg.tmp13 = alloca %"class.std::shared_ptr", align 8 %call = tail call noundef nonnull align 8 dereferenceable(336) ptr @_ZN6spdlog7details8registry8instanceEv() %call1 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZN6spdlog7details8registry8tp_mutexEv(ptr noundef nonnull align 8 dereferenceable(336) %call) - %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i = tail call noundef i32 @pthread_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 %tobool.not.i.i = icmp eq i32 %call1.i.i.i.i, 0 br i1 %tobool.not.i.i, label %_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_.exit, label %if.then.i.i @@ -4680,7 +4680,7 @@ if.end8.sink.split.i.i.i.i151: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160 _ZNSt10shared_ptrIN6spdlog7details11thread_poolEED2Ev.exit160: ; preds = %_ZNSt10shared_ptrIN6spdlog5sinks11stderr_sinkINS0_7details17console_nullmutexEEEED2Ev.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i138, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i148, %if.end8.sink.split.i.i.i.i151 - %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i161 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 ret void lpad11: ; preds = %invoke.cont9 @@ -4707,7 +4707,7 @@ ehcleanup16: ; preds = %_ZNSt15__allocated_ ehcleanup17: ; preds = %ehcleanup16, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %ehcleanup16 ], [ %29, %lpad ] - %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %call1) #17 + %call1.i.i.i.i162 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %call1) #17 resume { ptr, i32 } %.pn.pn.pn } @@ -6707,7 +6707,7 @@ if.then.i.i.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt8weak_ptrIN6spdlog7details11thread_poolEED2Ev.exit.i.i.i _ZNSt8weak_ptrIN6spdlog7details11thread_poolEED2Ev.exit.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %entry - tail call void @_ZN6spdlog6loggerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %_M_impl.i) #17 + tail call void @_ZN6spdlog6loggerD2Ev(ptr noundef nonnull align 8 dereferenceable(248) %_M_impl.i) #17 %_M_refcount.i.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 232 %5 = load ptr, ptr %_M_refcount.i.i.i.i.i.i, align 8 %cmp.not.i.i.i.i.i.i.i = icmp eq ptr %5, null @@ -7033,7 +7033,7 @@ _ZN6spdlog7details10backtracerD2Ev.exit: ; preds = %invoke.cont.i.i.i, if.then.i.i: ; preds = %_ZN6spdlog7details10backtracerD2Ev.exit %custom_err_handler_ = getelementptr inbounds i8, ptr %this, i64 72 - %call.i.i = invoke noundef zeroext i1 %4(ptr noundef nonnull align 8 dereferenceable(16) %custom_err_handler_, ptr noundef nonnull align 8 dereferenceable(16) %custom_err_handler_, i32 noundef 3) + %call.i.i = invoke noundef zeroext i1 %4(ptr noundef nonnull align 8 dereferenceable(32) %custom_err_handler_, ptr noundef nonnull align 8 dereferenceable(32) %custom_err_handler_, i32 noundef 3) to label %_ZNSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEED2Ev.exit unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then.i.i diff --git a/bench/syn/optimized/4pem7cta6fyqelao.ll b/bench/syn/optimized/4pem7cta6fyqelao.ll index e8a57d81cb7..3200f5bd736 100644 --- a/bench/syn/optimized/4pem7cta6fyqelao.ll +++ b/bench/syn/optimized/4pem7cta6fyqelao.ll @@ -257,7 +257,7 @@ define hidden void @"_ZN4core3ptr69drop_in_place$LT$$LP$proc_macro2..Ident$C$syn 5: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !19 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %0) %6 = getelementptr inbounds i8, ptr %2, i64 8 %7 = load i64, ptr %6, align 8, !range !17, !noalias !19, !noundef !4 %.not.i.i.i.i.i.i.i = icmp eq i64 %7, 0 @@ -291,7 +291,7 @@ define hidden void @"_ZN4core3ptr97drop_in_place$LT$core..option..Option$LT$$LP$ 4: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !31 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %0) %5 = getelementptr inbounds i8, ptr %2, i64 8 %6 = load i64, ptr %5, align 8, !range !17, !noalias !31, !noundef !4 %.not.i.i.i.i.i.i.i.i = icmp eq i64 %6, 0 @@ -1066,7 +1066,7 @@ _ZN3syn6buffer6Cursor11ignore_none17h8ff9d6e421d536b3E.llvm.1271834235494842624. 28: ; preds = %17 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.01.i.i), !noalias !170 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hebbb1fc2363025c1E"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %.sroa.01.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18), !noalias !155 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hebbb1fc2363025c1E"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %.sroa.01.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %18), !noalias !155 %29 = getelementptr inbounds i8, ptr %.sroa.03.1.i, i64 32 %30 = load i8, ptr %29, align 8, !range !165, !alias.scope !152, !noalias !155, !noundef !4 %.sroa.07.0.copyload8.i = load i64, ptr %.sroa.01.i.i, align 8, !noalias !171 @@ -1183,7 +1183,7 @@ _ZN3syn6buffer6Cursor11ignore_none17h8ff9d6e421d536b3E.llvm.1271834235494842624. 60: ; preds = %58 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !179 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %5) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %5) %61 = getelementptr inbounds i8, ptr %3, i64 8 %62 = load i64, ptr %61, align 8, !range !17, !noalias !179, !noundef !4 %.not.i.i.i.i.i.i.i = icmp eq i64 %62, 0 @@ -1364,7 +1364,7 @@ _ZN3syn6buffer6Cursor11ignore_none17h8ff9d6e421d536b3E.llvm.1271834235494842624. 27: ; preds = %16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.01.i.i), !noalias !216 - call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hebbb1fc2363025c1E"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %.sroa.01.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17), !noalias !203 + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hebbb1fc2363025c1E"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %.sroa.01.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %17), !noalias !203 %28 = getelementptr inbounds i8, ptr %.sroa.03.1.i, i64 32 %29 = load i8, ptr %28, align 8, !range !165, !alias.scope !200, !noalias !203, !noundef !4 %.sroa.07.0.copyload8.i = load i64, ptr %.sroa.01.i.i, align 8, !noalias !217 @@ -1423,7 +1423,7 @@ _ZN3syn6buffer6Cursor5ident17he943c8405b28ecffE.exit: ; preds = %30 35: ; preds = %_ZN3syn6buffer6Cursor5ident17he943c8405b28ecffE.exit call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !218 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %4) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %4) %36 = getelementptr inbounds i8, ptr %3, i64 8 %37 = load i64, ptr %36, align 8, !range !17, !noalias !218, !noundef !4 %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %37, 0 @@ -1549,7 +1549,7 @@ define hidden noundef zeroext i1 @"_ZN61_$LT$syn..lifetime..Lifetime$u20$as$u20$ 6: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !250 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %4) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %4) %7 = getelementptr inbounds i8, ptr %3, i64 8 %8 = load i64, ptr %7, align 8, !range !17, !noalias !250, !noundef !4 %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %8, 0 @@ -1581,12 +1581,12 @@ define hidden noundef zeroext i1 @"_ZN61_$LT$syn..lifetime..Lifetime$u20$as$u20$ 20: ; preds = %14 %21 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %15) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #16 to label %30 unwind label %28 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %14 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !277 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %15) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %15) %22 = getelementptr inbounds i8, ptr %2, i64 8 %23 = load i64, ptr %22, align 8, !range !17, !noalias !277, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %23, 0 @@ -1656,7 +1656,7 @@ default.unreachable: ; preds = %8 14: ; preds = %12 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !290 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %7) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd25df77e33a469b4E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7) %15 = getelementptr inbounds i8, ptr %3, i64 8 %16 = load i64, ptr %15, align 8, !range !17, !noalias !290, !noundef !4 %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %16, 0 @@ -1763,12 +1763,12 @@ common.resume.i: ; preds = %53, %42, %33 53: ; preds = %48 %54 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %7) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) #16 to label %common.resume.i unwind label %61 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %48 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !329 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %7) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7) %55 = getelementptr inbounds i8, ptr %2, i64 8 %56 = load i64, ptr %55, align 8, !range !17, !noalias !329, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %56, 0 @@ -1825,12 +1825,12 @@ define hidden noundef zeroext i1 @"_ZN54_$LT$syn..lit..LitStr$u20$as$u20$syn..to 13: ; preds = %8 %14 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %23 unwind label %21 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !347 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %15 = getelementptr inbounds i8, ptr %2, i64 8 %16 = load i64, ptr %15, align 8, !range !17, !noalias !347, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %16, 0 @@ -1890,12 +1890,12 @@ define hidden noundef zeroext i1 @"_ZN58_$LT$syn..lit..LitByteStr$u20$as$u20$syn 13: ; preds = %8 %14 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %23 unwind label %21 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !365 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %15 = getelementptr inbounds i8, ptr %2, i64 8 %16 = load i64, ptr %15, align 8, !range !17, !noalias !365, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %16, 0 @@ -1955,12 +1955,12 @@ define hidden noundef zeroext i1 @"_ZN55_$LT$syn..lit..LitByte$u20$as$u20$syn..t 13: ; preds = %8 %14 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %23 unwind label %21 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !383 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %15 = getelementptr inbounds i8, ptr %2, i64 8 %16 = load i64, ptr %15, align 8, !range !17, !noalias !383, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %16, 0 @@ -2020,12 +2020,12 @@ define hidden noundef zeroext i1 @"_ZN55_$LT$syn..lit..LitChar$u20$as$u20$syn..t 13: ; preds = %8 %14 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %23 unwind label %21 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !401 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %15 = getelementptr inbounds i8, ptr %2, i64 8 %16 = load i64, ptr %15, align 8, !range !17, !noalias !401, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %16, 0 @@ -2110,12 +2110,12 @@ common.resume.i: ; preds = %20, %9 20: ; preds = %15 %21 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %common.resume.i unwind label %28 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %15 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !426 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %22 = getelementptr inbounds i8, ptr %2, i64 8 %23 = load i64, ptr %22, align 8, !range !17, !noalias !426, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %23, 0 @@ -2197,12 +2197,12 @@ common.resume.i: ; preds = %20, %9 20: ; preds = %15 %21 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %common.resume.i unwind label %28 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %15 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !451 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %22 = getelementptr inbounds i8, ptr %2, i64 8 %23 = load i64, ptr %22, align 8, !range !17, !noalias !451, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %23, 0 @@ -2254,12 +2254,12 @@ define hidden noundef zeroext i1 @"_ZN55_$LT$syn..lit..LitBool$u20$as$u20$syn..t 11: ; preds = %6 %12 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #16 to label %21 unwind label %19 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %6 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !469 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) %13 = getelementptr inbounds i8, ptr %2, i64 8 %14 = load i64, ptr %13, align 8, !range !17, !noalias !469, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %14, 0 @@ -2319,13 +2319,13 @@ define hidden noundef zeroext i1 @"_ZN56_$LT$proc_macro2..Group$u20$as$u20$syn.. 15: ; preds = %7 %16 = getelementptr inbounds i8, ptr %3, i64 16 - invoke void @"_ZN76_$LT$proc_macro2..fallback..TokenStream$u20$as$u20$core..ops..drop..Drop$GT$4drop17hef4acf17d67245f5E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16) + invoke void @"_ZN76_$LT$proc_macro2..fallback..TokenStream$u20$as$u20$core..ops..drop..Drop$GT$4drop17hef4acf17d67245f5E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %16) to label %"_ZN4core3ptr49drop_in_place$LT$proc_macro2..fallback..Group$GT$17hca4771ee8045cbacE.llvm.8351105841907204142.exit.i.i.i" unwind label %17 17: ; preds = %15 %18 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN68_$LT$alloc..rc..Rc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7f0dc3313744229eE.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16) + invoke void @"_ZN68_$LT$alloc..rc..Rc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7f0dc3313744229eE.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %16) to label %common.resume.i unwind label %19 19: ; preds = %17 @@ -2339,7 +2339,7 @@ common.resume.i: ; preds = %26, %17 resume { ptr, i32 } %common.resume.op.i "_ZN4core3ptr49drop_in_place$LT$proc_macro2..fallback..Group$GT$17hca4771ee8045cbacE.llvm.8351105841907204142.exit.i.i.i": ; preds = %15 - call void @"_ZN68_$LT$alloc..rc..Rc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7f0dc3313744229eE.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16) + call void @"_ZN68_$LT$alloc..rc..Rc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7f0dc3313744229eE.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %16) br label %"_ZN4core3ptr87drop_in_place$LT$core..result..Result$LT$proc_macro2..Group$C$syn..error..Error$GT$$GT$17h1dc655dc8883a721E.exit" 21: ; preds = %1 @@ -2355,12 +2355,12 @@ common.resume.i: ; preds = %26, %17 26: ; preds = %21 %27 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) #16 + invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..raw_vec..RawVec$LT$syn..error..ErrorMessage$GT$$GT$17h26dafba9cfff09d4E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #16 to label %common.resume.i unwind label %34 "_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd046910a857dba84E.llvm.8351105841907204142.exit.i.i.i": ; preds = %21 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !500 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %6) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h2b4238230dae1785E.llvm.8351105841907204142"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %6) %28 = getelementptr inbounds i8, ptr %2, i64 8 %29 = load i64, ptr %28, align 8, !range !17, !noalias !500, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %29, 0 diff --git a/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll b/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll index 1282655981e..f1d0a6e0aa4 100644 --- a/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll +++ b/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll @@ -476,7 +476,7 @@ _ZN3std9panicking11panic_count13count_is_zero17h66cf19443d869469E.llvm.424840704 br i1 %26, label %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4248407042397360440.exit.i.i.i.i, label %27 27: ; preds = %_ZN3std9panicking11panic_count13count_is_zero17h66cf19443d869469E.llvm.4248407042397360440.exit.i.i.i.i.i - tail call void @_ZN4core4sync6atomic12atomic_store17h12537da9afd97bdeE.llvm.4248407042397360440(ptr noundef nonnull %20, i8 noundef 1, i8 noundef 0), !noalias !58 + tail call void @_ZN4core4sync6atomic12atomic_store17h12537da9afd97bdeE.llvm.4248407042397360440(ptr noundef nonnull align 1 %20, i8 noundef 1, i8 noundef 0), !noalias !58 br label %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4248407042397360440.exit.i.i.i.i _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4248407042397360440.exit.i.i.i.i: ; preds = %27, %_ZN3std9panicking11panic_count13count_is_zero17h66cf19443d869469E.llvm.4248407042397360440.exit.i.i.i.i.i, %22, %18 @@ -528,7 +528,7 @@ define internal fastcc void @"_ZN4core3ptr75drop_in_place$LT$core..option..Optio 6: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !80 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h316187016974866fE.llvm.4248407042397360440"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h316187016974866fE.llvm.4248407042397360440"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %0) %7 = getelementptr inbounds i8, ptr %2, i64 8 %8 = load i64, ptr %7, align 8, !range !79, !noalias !80, !noundef !4 %.not.i.i.i.i.i = icmp eq i64 %8, 0 @@ -1683,7 +1683,7 @@ _ZN5alloc11collections5btree4node12slice_insert17he04a6bfe9be25271E.exit.i.i.i: br i1 %158, label %159, label %160 159: ; preds = %146 - invoke void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef %157, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.34a29c52120135f2975fa669c61e2cbe.47) #35 + invoke void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef range(i64 1, 65537) %157, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.34a29c52120135f2975fa669c61e2cbe.47) #35 to label %.noexc10.i.i.i unwind label %144, !noalias !318 .noexc10.i.i.i: ; preds = %159 @@ -2033,7 +2033,7 @@ common.resume.i: ; preds = %207, %168, %56 "_ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h15dc1643d703280dE.exit.i.i": ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h5c474651b0589b61E.exit.i.i.i.i" %58 = getelementptr inbounds i8, ptr %38, i64 12 %59 = getelementptr inbounds i8, ptr %47, i64 %50 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %58, ptr nonnull readonly align 1 %59, i64 %45, i1 false), !alias.scope !385, !noalias !377 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %58, ptr nonnull readonly align 1 %59, i64 range(i64 0, 65536) %45, i1 false), !alias.scope !385, !noalias !377 %60 = trunc nuw nsw i64 %.0.i.i to i16 store i16 %60, ptr %20, align 2, !noalias !384 %.sroa.06.0.i.i = select i1 %switch.i.i, ptr %4, ptr %38 @@ -2220,7 +2220,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h66dd253e5f3b216eE.exit.i.i.i: 142: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h5c474651b0589b61E.exit.i.i.i46.i" %143 = getelementptr inbounds i8, ptr %120, i64 12 %144 = getelementptr inbounds i8, ptr %129, i64 %132 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %143, ptr nonnull readonly align 1 %144, i64 %127, i1 false), !alias.scope !420, !noalias !412 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %143, ptr nonnull readonly align 1 %144, i64 range(i64 0, 65536) %127, i1 false), !alias.scope !420, !noalias !412 %145 = trunc nuw nsw i64 %.0.i44.i to i16 store i16 %145, ptr %85, align 2, !noalias !419 %146 = load i16, ptr %123, align 2, !noalias !412, !noundef !4 @@ -2234,7 +2234,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h66dd253e5f3b216eE.exit.i.i.i: br i1 %153, label %154, label %155 154: ; preds = %142 - invoke void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef %152, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.34a29c52120135f2975fa669c61e2cbe.47) #35 + invoke void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef range(i64 1, 65537) %152, i64 noundef 12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.34a29c52120135f2975fa669c61e2cbe.47) #35 to label %.noexc10.i.i.i unwind label %140, !noalias !412 .noexc10.i.i.i: ; preds = %154 @@ -4100,7 +4100,7 @@ define hidden void @"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core. 10: ; preds = %3 %11 = sub i64 8, %8 - %.0.sroa.speculated.i = tail call noundef i64 @llvm.umin.i64(i64 %2, i64 %11) + %.0.sroa.speculated.i = tail call noundef i64 @llvm.umin.i64(i64 %2, i64 range(i64 9, 8) %11) %12 = icmp ugt i64 %.0.sroa.speculated.i, 3 br i1 %12, label %16, label %13 @@ -4501,7 +4501,7 @@ define hidden void @"_ZN74_$LT$rustls_pki_types..server_name..IpAddr$u20$as$u20$ 10: ; preds = %9, %8 %.sink = phi i64 [ 16, %9 ], [ 4, %8 ] %11 = getelementptr inbounds i8, ptr %0, i64 1 - call void @"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core..hash..Hasher$GT$5write17h7925d4ba07e1b311E.llvm.15737726635708573862"(ptr noalias noundef nonnull align 8 dereferenceable(72) %1, ptr noalias noundef nonnull readonly align 1 %11, i64 noundef %.sink) + call void @"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core..hash..Hasher$GT$5write17h7925d4ba07e1b311E.llvm.15737726635708573862"(ptr noalias noundef nonnull align 8 dereferenceable(72) %1, ptr noalias noundef nonnull readonly align 1 dereferenceable(4) %11, i64 noundef %.sink) ret void } @@ -4689,7 +4689,7 @@ define hidden void @"_ZN78_$LT$rustls_pki_types..server_name..ServerName$u20$as$ "_ZN74_$LT$rustls_pki_types..server_name..IpAddr$u20$as$u20$core..hash..Hash$GT$4hash17hc53b6bac66253a24E.llvm.13587593001660552149.exit": ; preds = %56, %57 %.sink.i = phi i64 [ 16, %57 ], [ 4, %56 ] %58 = getelementptr inbounds i8, ptr %0, i64 2 - call void @"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core..hash..Hasher$GT$5write17h7925d4ba07e1b311E.llvm.15737726635708573862"(ptr noalias noundef nonnull align 8 dereferenceable(72) %1, ptr noalias noundef nonnull readonly align 1 %58, i64 noundef %.sink.i) + call void @"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core..hash..Hasher$GT$5write17h7925d4ba07e1b311E.llvm.15737726635708573862"(ptr noalias noundef nonnull align 8 dereferenceable(72) %1, ptr noalias noundef nonnull readonly align 1 dereferenceable(4) %58, i64 noundef %.sink.i) br label %"_ZN80_$LT$rustls_pki_types..server_name..DnsNameInner$u20$as$u20$core..hash..Hash$GT$4hash17hdd36404d733a0b26E.llvm.13587593001660552149.exit" "_ZN80_$LT$rustls_pki_types..server_name..DnsNameInner$u20$as$u20$core..hash..Hash$GT$4hash17hdd36404d733a0b26E.llvm.13587593001660552149.exit": ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he0b58399accd0681E.exit.thread.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he0b58399accd0681E.exit.i.i.i", %10, %"_ZN74_$LT$rustls_pki_types..server_name..IpAddr$u20$as$u20$core..hash..Hash$GT$4hash17hc53b6bac66253a24E.llvm.13587593001660552149.exit" @@ -5106,7 +5106,7 @@ define hidden void @"_ZN118_$LT$rustls..msgs..message..outbound..PrefixedPayload br i1 %12, label %13, label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17hd1df5eb6d4c95839E.exit" 13: ; preds = %3 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h22b2e9a2ef379034E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %9, i64 noundef %7) + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h22b2e9a2ef379034E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %9, i64 noundef %7) %.pre.i = load i64, ptr %8, align 8, !alias.scope !699 br label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17hd1df5eb6d4c95839E.exit" @@ -5132,7 +5132,7 @@ define hidden void @"_ZN118_$LT$rustls..msgs..message..outbound..PrefixedPayload br i1 %8, label %9, label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17hd1df5eb6d4c95839E.exit" 9: ; preds = %3 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h22b2e9a2ef379034E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %5, i64 noundef %2) + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h22b2e9a2ef379034E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %5, i64 noundef %2) %.pre.i = load i64, ptr %4, align 8, !alias.scope !705 br label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17hd1df5eb6d4c95839E.exit" @@ -5443,7 +5443,7 @@ define void @_ZN6rustls12key_log_file10KeyLogFile3new17h4b4393e81e62403eE(ptr no 16: ; preds = %33, %17 %.pn.i = phi { ptr, i32 } [ %18, %17 ], [ %34, %33 ] - invoke fastcc void @"_ZN4core3ptr75drop_in_place$LT$core..option..Option$LT$std..ffi..os_str..OsString$GT$$GT$17h59668705a5f139f5E"(ptr noalias noundef align 8 dereferenceable(24) %10) #38 + invoke fastcc void @"_ZN4core3ptr75drop_in_place$LT$core..option..Option$LT$std..ffi..os_str..OsString$GT$$GT$17h59668705a5f139f5E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10) #38 to label %57 unwind label %55, !noalias !728 17: ; preds = %38, %35, %13 @@ -5473,7 +5473,7 @@ _ZN3std2fs11OpenOptions4open17hd0dee411088ddb9eE.exit.i: ; preds = %13 26: ; preds = %23 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !741 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h316187016974866fE.llvm.4248407042397360440"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %10), !noalias !728 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h316187016974866fE.llvm.4248407042397360440"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %10), !noalias !728 %27 = getelementptr inbounds i8, ptr %3, i64 8 %28 = load i64, ptr %27, align 8, !range !79, !noalias !741, !noundef !4 %.not.i.i.i.i.i.i29.i = icmp eq i64 %28, 0 @@ -5643,7 +5643,7 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit: ; preds "_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new17hd59ad3c4f0264d21E.exit": ; preds = %_ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit, %45 %.0.i.i.i = phi i8 [ %48, %45 ], [ 0, %_ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.exit ] %49 = getelementptr inbounds i8, ptr %0, i64 4 - %50 = tail call noundef i8 @_ZN4core4sync6atomic11atomic_load17hd8cdf95090b4eaf2E.llvm.18170614798475879452(ptr noundef nonnull %49, i8 noundef 0), !noalias !773 + %50 = tail call noundef i8 @_ZN4core4sync6atomic11atomic_load17hd8cdf95090b4eaf2E.llvm.18170614798475879452(ptr noundef nonnull align 1 %49, i8 noundef 0), !noalias !773 %.not = icmp eq i8 %50, 0 br i1 %.not, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h38d1448cbf6ab764E.exit", label %51 diff --git a/bench/velox/optimized/LambdaExpr.cpp.ll b/bench/velox/optimized/LambdaExpr.cpp.ll index 221b7cf4ed8..36a59a81e59 100644 --- a/bench/velox/optimized/LambdaExpr.cpp.ll +++ b/bench/velox/optimized/LambdaExpr.cpp.ll @@ -926,11 +926,7 @@ if.end: ; preds = %if.then, %entry %call4 = tail call noundef i32 %2(ptr noundef nonnull align 8 dereferenceable(120) %1) store i64 0, ptr %values, align 8 %cmp.not.i.i.i.i = icmp eq i32 %call4, 0 - br i1 %cmp.not.i.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN8facebook5velox10BaseVectorEESaIS4_EEC2EmRKS5_.exit.thread.i, label %for.body.preheader.i.i.i.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN8facebook5velox10BaseVectorEESaIS4_EEC2EmRKS5_.exit.thread.i: ; preds = %if.end - store i64 0, ptr %values, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i.i, label %invoke.cont, label %for.body.preheader.i.i.i.i.i for.body.preheader.i.i.i.i.i: ; preds = %if.end %conv = zext i32 %call4 to i64 @@ -942,9 +938,9 @@ for.body.preheader.i.i.i.i.i: ; preds = %if.end %scevgep.i.i.i.i.i = getelementptr i8, ptr %call5.i.i.i.i2.i.i23, i64 %mul.i.i.i.i.i.i br label %invoke.cont -invoke.cont: ; preds = %for.body.preheader.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN8facebook5velox10BaseVectorEESaIS4_EEC2EmRKS5_.exit.thread.i - %add.ptr.i.i.sink.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN8facebook5velox10BaseVectorEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN8facebook5velox10BaseVectorEESaIS4_EEC2EmRKS5_.exit.thread.i ], [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ] +invoke.cont: ; preds = %if.end, %for.body.preheader.i.i.i.i.i + %add.ptr.i.i.sink.i = phi ptr [ %add.ptr.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %if.end ] + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i, %for.body.preheader.i.i.i.i.i ], [ null, %if.end ] %_M_finish.i.i7.i = getelementptr inbounds i8, ptr %values, i64 8 %3 = getelementptr inbounds i8, ptr %values, i64 16 store ptr %add.ptr.i.i.sink.i, ptr %3, align 8 @@ -2187,7 +2183,7 @@ if.else: ; preds = %entry %19 = load ptr, ptr %row_.i, align 8 %type_.i = getelementptr inbounds i8, ptr %19, i64 8 %20 = load ptr, ptr %type_.i, align 8 - %21 = tail call ptr @__dynamic_cast(ptr nonnull %20, ptr nonnull @_ZTIN8facebook5velox4TypeE, ptr nonnull @_ZTIN8facebook5velox7RowTypeE, i64 0) #32 + %21 = tail call ptr @__dynamic_cast(ptr nonnull align 8 dereferenceable(17) %20, ptr nonnull @_ZTIN8facebook5velox4TypeE, ptr nonnull @_ZTIN8facebook5velox7RowTypeE, i64 0) #32 %22 = icmp eq ptr %21, null br i1 %22, label %dynamic_cast.bad_cast.i, label %_ZNK8facebook5velox4Type2asILNS0_8TypeKindE32EEERKNS0_10TypeTraitsIXT_EE8ImplTypeEv.exit @@ -3119,7 +3115,7 @@ if.then.i: ; preds = %for.end %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %19 to i64 %sub.ptr.sub.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i %sub.ptr.div.i.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i.i, 3 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1, i8 0, i64 24, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(38) %1, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i.i.i.i.i = icmp eq ptr %18, %19 br i1 %cmp.not.i.i.i.i.i.i.i.i, label %invoke.cont.i.i.i.i.i, label %cond.true.i.i.i.i.i.i.i.i @@ -4522,7 +4518,7 @@ _ZNSt12_Vector_baseIN8facebook5velox17SelectivityVectorESaIS2_EE11_M_allocateEm. %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %3 to i64 %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %4 to i64 %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %add.ptr, i8 0, i64 24, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(38) %add.ptr, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i.i.i.i = icmp eq ptr %3, %4 br i1 %cmp.not.i.i.i.i.i.i.i, label %invoke.cont.i.i.i.i.thread, label %cond.true.i.i.i.i.i.i.i @@ -4585,7 +4581,7 @@ for.body.i.i.i: ; preds = %invoke.cont, %for.b %_M_end_of_storage4.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i, i64 16 %7 = load ptr, ptr %_M_end_of_storage4.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !38, !noalias !35 store ptr %7, ptr %_M_end_of_storage.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !35, !noalias !38 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__first.addr.06.i.i.i, i8 0, i64 24, i1 false), !alias.scope !38, !noalias !35 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(38) %__first.addr.06.i.i.i, i8 0, i64 24, i1 false), !alias.scope !38, !noalias !35 %size_.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.07.i.i.i, i64 24 %size_3.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i, i64 24 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(14) %size_.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(14) %size_3.i.i.i.i.i.i.i, i64 14, i1 false), !alias.scope !40 @@ -4615,7 +4611,7 @@ for.body.i.i.i20: ; preds = %_ZNSt6vectorIN8face %_M_end_of_storage4.i.i.i.i.i.i.i.i.i.i.i26 = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i22, i64 16 %10 = load ptr, ptr %_M_end_of_storage4.i.i.i.i.i.i.i.i.i.i.i26, align 8, !alias.scope !45, !noalias !42 store ptr %10, ptr %_M_end_of_storage.i.i.i.i.i.i.i.i.i.i.i25, align 8, !alias.scope !42, !noalias !45 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__first.addr.06.i.i.i22, i8 0, i64 24, i1 false), !alias.scope !45, !noalias !42 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(38) %__first.addr.06.i.i.i22, i8 0, i64 24, i1 false), !alias.scope !45, !noalias !42 %size_.i.i.i.i.i.i.i27 = getelementptr inbounds i8, ptr %__cur.07.i.i.i21, i64 24 %size_3.i.i.i.i.i.i.i28 = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i22, i64 24 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(14) %size_.i.i.i.i.i.i.i27, ptr noundef nonnull align 8 dereferenceable(14) %size_3.i.i.i.i.i.i.i28, i64 14, i1 false), !alias.scope !47 @@ -11662,7 +11658,7 @@ _ZN5folly3f146detail8F14ChunkIjE6setTagEmm.exit: ; preds = %if.end24 %arrayidx.i.i = getelementptr inbounds %"struct.std::pair", ptr %32, i64 %idxprom.i.i %33 = load i64, ptr %args1, align 8 %34 = inttoptr i64 %33 to ptr - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %arrayidx.i.i, ptr noundef nonnull align 8 dereferenceable(32) %34) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx.i.i, ptr noundef nonnull align 8 dereferenceable(32) %34) to label %_ZN5folly3f146detail8F14TableINS1_21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEEEE13insertAtBlankIJRKSt21piecewise_construct_tSt5tupleIJRKS9_EESI_IJEEEEEvNS1_11F14ItemIterIPNS1_8F14ChunkIjEEEESt4pairImmEDpOT_.exit unwind label %lpad.i lpad.i: ; preds = %_ZN5folly3f146detail8F14ChunkIjE6setTagEmm.exit @@ -11876,11 +11872,11 @@ for.body.i.i: ; preds = %_ZN5folly6detail18r %src.addr.011.i.i = phi ptr [ %incdec.ptr.i.i, %for.body.i.i ], [ %1, %_ZN5folly6detail18rawOverAlignedImplISaIhELm16ELb1EEEvRKT_mRPv.exit.i.i ] %dst.addr.010.i.i = phi ptr [ %incdec.ptr4.i.i, %for.body.i.i ], [ %add.ptr.i, %_ZN5folly6detail18rawOverAlignedImplISaIhELm16ELb1EEEvRKT_mRPv.exit.i.i ] %second.i.i.i = getelementptr inbounds i8, ptr %src.addr.011.i.i, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %dst.addr.010.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i) #32 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %dst.addr.010.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i) #32 %second.i.i.i.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i, i64 32 %2 = load i32, ptr %second.i.i.i, align 4 store i32 %2, ptr %second.i.i.i.i.i, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i) #32 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %src.addr.011.i.i) #32 %inc.i.i = add nuw i64 %i.012.i.i, 1 %incdec.ptr.i.i = getelementptr inbounds i8, ptr %src.addr.011.i.i, i64 40 %incdec.ptr4.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i, i64 40 @@ -11896,7 +11892,7 @@ _ZN5folly3f146detail21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_ for.body.i: ; preds = %_ZN5folly3f146detail21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEE12beforeRehashEmmmmRPh.exit, %for.body.i %i.06.i = phi i64 [ %inc.i, %for.body.i ], [ 0, %_ZN5folly3f146detail21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEE12beforeRehashEmmmmRPh.exit ] %arrayidx.i = getelementptr inbounds %"struct.folly::f14::detail::F14Chunk", ptr %call5.i.i2.i.i7.i, i64 %i.06.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %arrayidx.i, i8 0, i64 16, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %arrayidx.i, i8 0, i64 16, i1 false) %inc.i = add nuw i64 %i.06.i, 1 %exitcond.not.i = icmp eq i64 %inc.i, %newChunkCount br i1 %exitcond.not.i, label %_ZN5folly3f146detail8F14TableINS1_21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEEEE16initializeChunksEPhmm.exit, label %for.body.i, !llvm.loop !131 @@ -12242,11 +12238,11 @@ for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, % %cmp2.i.i.i.i = icmp ne ptr %dst.addr.010.i.i.i.i, null call void @llvm.assume(i1 %cmp2.i.i.i.i) %second.i.i.i.i.i112 = getelementptr inbounds i8, ptr %src.addr.011.i.i.i.i, i64 32 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %dst.addr.010.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i.i) #32 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %dst.addr.010.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i.i) #32 %second.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i.i.i, i64 32 %54 = load i32, ptr %second.i.i.i.i.i112, align 4 store i32 %54, ptr %second.i.i.i.i.i.i.i, align 8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i.i) #32 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %src.addr.011.i.i.i.i) #32 %inc.i.i.i.i = add nuw i64 %i.012.i.i.i.i, 1 %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %src.addr.011.i.i.i.i, i64 40 %incdec.ptr4.i.i.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i.i.i, i64 40 @@ -12379,11 +12375,11 @@ for.body.i.i.i: ; preds = %for.body.i.i.i, %if %cmp2.i.i.i = icmp ne ptr %dst.addr.010.i.i.i, null tail call void @llvm.assume(i1 %cmp2.i.i.i) %second.i.i.i.i = getelementptr inbounds i8, ptr %src.addr.011.i.i.i, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %dst.addr.010.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i) #32 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %dst.addr.010.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i) #32 %second.i.i.i.i.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i.i, i64 32 %28 = load i32, ptr %second.i.i.i.i, align 4 store i32 %28, ptr %second.i.i.i.i.i.i, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %src.addr.011.i.i.i) #32 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %src.addr.011.i.i.i) #32 %inc.i.i.i = add nuw i64 %i.012.i.i.i, 1 %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %src.addr.011.i.i.i, i64 40 %incdec.ptr4.i.i.i = getelementptr inbounds i8, ptr %dst.addr.010.i.i.i, i64 40 @@ -12494,7 +12490,7 @@ entry: call void @_ZN5folly3f146detail8F14TableINS1_21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEEEE13eraseIterIntoIZNS1_11F14BasicMapISC_E18tableEraseIterIntoIRZNS1_16F14VectorMapImplIS9_iNS_23HeterogeneousAccessHashIS9_vEENS_26HeterogeneousAccessEqualToIS9_vEESaISt4pairIKS9_iEESB_E5eraseENS1_23VectorContainerIteratorIPSP_EEEUlOS9_OiE_EEvNS1_11F14ItemIterIPNS1_8F14ChunkIjEEEEOT_EUlOSP_E_EEvS13_S15_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr nonnull %underlying.coerce0, i64 %underlying.coerce1, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp.i) %idxprom = zext i32 %1 to i64 %arrayidx = getelementptr inbounds %"struct.std::pair", ptr %0, i64 %idxprom - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %arrayidx) #32 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx) #32 %sizeAndPackedBegin_.i.i = getelementptr inbounds i8, ptr %this, i64 20 %2 = load i32, ptr %sizeAndPackedBegin_.i.i, align 4 %conv.i21 = zext i32 %2 to i64 @@ -12576,11 +12572,11 @@ _ZNK5folly3f146detail8F14TableINS1_21VectorContainerPolicyINSt7__cxx1112basic_st call void @llvm.assume(i1 %cmp11) %arrayidx13 = getelementptr inbounds %"struct.std::pair", ptr %0, i64 %conv.i21 %second.i.i = getelementptr inbounds i8, ptr %arrayidx13, i64 32 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %arrayidx, ptr noundef nonnull align 8 dereferenceable(32) %arrayidx13) #32 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx, ptr noundef nonnull align 8 dereferenceable(32) %arrayidx13) #32 %second.i.i.i.i = getelementptr inbounds i8, ptr %arrayidx, i64 32 %14 = load i32, ptr %second.i.i, align 4 store i32 %14, ptr %second.i.i.i.i, align 8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %arrayidx13) #32 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx13) #32 br label %if.end if.end: ; preds = %_ZNK5folly3f146detail8F14TableINS1_21VectorContainerPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEivvvSt17integral_constantIbLb1EEEEE8findImplINS1_26VectorContainerIndexSearchEEENS1_11F14ItemIterIPNS1_8F14ChunkIjEEEESt4pairImmERKT_NSD_8PrefetchE.exit, %entry diff --git a/bench/wolfssl/optimized/internal.c.ll b/bench/wolfssl/optimized/internal.c.ll index 6f52a02d221..eb86cf2c764 100644 --- a/bench/wolfssl/optimized/internal.c.ll +++ b/bench/wolfssl/optimized/internal.c.ll @@ -1110,25 +1110,106 @@ if.end7: ; preds = %AddSuiteHashSigAlgo } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define void @InitSuitesHashSigAlgo(ptr noundef %suites, i32 noundef %haveECDSAsig, i32 noundef %haveRSAsig, i32 noundef %haveFalconSig, i32 noundef %haveDilithiumSig, i32 noundef %haveAnon, i32 noundef %tls1_2, i32 noundef %keySz) local_unnamed_addr #2 { +define void @InitSuitesHashSigAlgo(ptr nocapture noundef writeonly %suites, i32 noundef %haveECDSAsig, i32 noundef %haveRSAsig, i32 noundef %haveFalconSig, i32 noundef %haveDilithiumSig, i32 noundef %haveAnon, i32 noundef %tls1_2, i32 noundef %keySz) local_unnamed_addr #2 { entry: %hashSigAlgo = getelementptr inbounds i8, ptr %suites, i64 304 - %hashSigAlgoSz = getelementptr inbounds i8, ptr %suites, i64 2 - %tobool.not.i = icmp ne i32 %haveECDSAsig, 0 - %spec.select.i = zext i1 %tobool.not.i to i32 + %tobool.not.i.not = icmp eq i32 %haveECDSAsig, 0 %tobool1.not.i = icmp eq i32 %haveRSAsig, 0 - %or3.i = or disjoint i32 %spec.select.i, 2 - %have.1.i = select i1 %tobool1.not.i, i32 %spec.select.i, i32 %or3.i - %tobool5.not.i = icmp eq i32 %haveFalconSig, 0 - %or7.i = or disjoint i32 %have.1.i, 8 - %have.2.i = select i1 %tobool5.not.i, i32 %have.1.i, i32 %or7.i - %tobool9.not.i = icmp eq i32 %haveDilithiumSig, 0 - %or11.i = or disjoint i32 %have.2.i, 16 - %have.3.i = select i1 %tobool9.not.i, i32 %have.2.i, i32 %or11.i - %tobool13.not.i = icmp eq i32 %haveAnon, 0 - %or15.i = or i32 %have.3.i, 32 - %have.4.i = select i1 %tobool13.not.i, i32 %have.3.i, i32 %or15.i - tail call void @InitSuitesHashSigAlgo_ex2(ptr noundef nonnull %hashSigAlgo, i32 noundef %have.4.i, i32 noundef %tls1_2, i32 poison, ptr noundef nonnull %hashSigAlgoSz) + br i1 %tobool.not.i.not, label %if.end.i, label %if.then.i + +if.then.i: ; preds = %entry + store i8 6, ptr %hashSigAlgo, align 1 + %arrayidx39.i.i = getelementptr inbounds i8, ptr %suites, i64 305 + store i8 3, ptr %arrayidx39.i.i, align 1 + %arrayidx35.i27.i = getelementptr inbounds i8, ptr %suites, i64 306 + store i8 5, ptr %arrayidx35.i27.i, align 1 + %arrayidx39.i29.i = getelementptr inbounds i8, ptr %suites, i64 307 + store i8 3, ptr %arrayidx39.i29.i, align 1 + %arrayidx35.i36.i = getelementptr inbounds i8, ptr %suites, i64 308 + store i8 4, ptr %arrayidx35.i36.i, align 1 + %arrayidx39.i38.i = getelementptr inbounds i8, ptr %suites, i64 309 + store i8 3, ptr %arrayidx39.i38.i, align 1 + %arrayidx35.i45.i = getelementptr inbounds i8, ptr %suites, i64 310 + store i8 2, ptr %arrayidx35.i45.i, align 1 + %arrayidx39.i47.i = getelementptr inbounds i8, ptr %suites, i64 311 + store i8 3, ptr %arrayidx39.i47.i, align 1 + br label %if.end.i + +if.end.i: ; preds = %if.then.i, %entry + %idx.0.i = phi i16 [ 0, %entry ], [ 8, %if.then.i ] + br i1 %tobool1.not.i, label %InitSuitesHashSigAlgo_ex2.exit, label %if.then3.i + +if.then3.i: ; preds = %if.end.i + %tobool4.not.i = icmp eq i32 %tls1_2, 0 + br i1 %tobool4.not.i, label %if.end6.i, label %if.then5.i + +if.then5.i: ; preds = %if.then3.i + %idxprom.i.i = zext nneg i16 %idx.0.i to i64 + %arrayidx.i.i = getelementptr inbounds i8, ptr %hashSigAlgo, i64 %idxprom.i.i + store i8 8, ptr %arrayidx.i.i, align 1 + %arrayidx8.i.i = getelementptr inbounds i8, ptr %arrayidx.i.i, i64 1 + store i8 6, ptr %arrayidx8.i.i, align 1 + %add10.i.i = or disjoint i16 %idx.0.i, 2 + %idxprom16.i.i = zext nneg i16 %add10.i.i to i64 + %arrayidx17.i.i = getelementptr inbounds i8, ptr %hashSigAlgo, i64 %idxprom16.i.i + store i8 8, ptr %arrayidx17.i.i, align 1 + %arrayidx24.i.i = getelementptr inbounds i8, ptr %arrayidx17.i.i, i64 1 + store i8 11, ptr %arrayidx24.i.i, align 1 + %storemerge.i53.i = or disjoint i16 %idx.0.i, 4 + %idxprom.i57.i = zext nneg i16 %storemerge.i53.i to i64 + %arrayidx.i58.i = getelementptr inbounds i8, ptr %hashSigAlgo, i64 %idxprom.i57.i + store i8 8, ptr %arrayidx.i58.i, align 1 + %arrayidx8.i60.i = getelementptr inbounds i8, ptr %arrayidx.i58.i, i64 1 + store i8 5, ptr %arrayidx8.i60.i, align 1 + %add10.i61.i = or disjoint i16 %idx.0.i, 6 + %idxprom16.i62.i = zext nneg i16 %add10.i61.i to i64 + %arrayidx17.i63.i = getelementptr inbounds i8, ptr %hashSigAlgo, i64 %idxprom16.i62.i + store i8 8, ptr %arrayidx17.i63.i, align 1 + %arrayidx24.i65.i = getelementptr inbounds i8, ptr %arrayidx17.i63.i, i64 1 + store i8 10, ptr %arrayidx24.i65.i, align 1 + %arrayidx.i74.i = getelementptr inbounds i8, ptr %arrayidx.i.i, i64 8 + store i8 8, ptr %arrayidx.i74.i, align 1 + %arrayidx8.i76.i = getelementptr inbounds i8, ptr %arrayidx.i.i, i64 9 + store i8 4, ptr %arrayidx8.i76.i, align 1 + %arrayidx17.i79.i = getelementptr inbounds i8, ptr %arrayidx.i.i, i64 10 + store i8 8, ptr %arrayidx17.i79.i, align 1 + %arrayidx24.i81.i = getelementptr inbounds i8, ptr %arrayidx.i.i, i64 11 + store i8 9, ptr %arrayidx24.i81.i, align 1 + %storemerge.i83.i = add nuw nsw i16 %idx.0.i, 12 + br label %if.end6.i + +if.end6.i: ; preds = %if.then5.i, %if.then3.i + %idx.2.i = phi i16 [ %idx.0.i, %if.then3.i ], [ %storemerge.i83.i, %if.then5.i ] + %idxprom34.i89.i = zext nneg i16 %idx.2.i to i64 + %arrayidx35.i90.i = getelementptr inbounds i8, ptr %hashSigAlgo, i64 %idxprom34.i89.i + store i8 6, ptr %arrayidx35.i90.i, align 1 + %arrayidx39.i92.i = getelementptr inbounds i8, ptr %arrayidx35.i90.i, i64 1 + store i8 1, ptr %arrayidx39.i92.i, align 1 + %arrayidx35.i99.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 2 + store i8 5, ptr %arrayidx35.i99.i, align 1 + %arrayidx39.i101.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 3 + store i8 1, ptr %arrayidx39.i101.i, align 1 + %arrayidx35.i108.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 4 + store i8 4, ptr %arrayidx35.i108.i, align 1 + %arrayidx39.i110.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 5 + store i8 1, ptr %arrayidx39.i110.i, align 1 + %arrayidx35.i117.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 6 + store i8 3, ptr %arrayidx35.i117.i, align 1 + %arrayidx39.i119.i = getelementptr i8, ptr %arrayidx35.i90.i, i64 7 + store i8 1, ptr %arrayidx39.i119.i, align 1 + %0 = zext nneg i16 %idx.2.i to i64 + %1 = getelementptr i8, ptr %hashSigAlgo, i64 %0 + %arrayidx35.i126.i = getelementptr i8, ptr %1, i64 8 + store i8 2, ptr %arrayidx35.i126.i, align 1 + %arrayidx39.i128.i = getelementptr i8, ptr %1, i64 9 + store i8 1, ptr %arrayidx39.i128.i, align 1 + %storemerge.i130.i = add nuw nsw i16 %idx.2.i, 10 + br label %InitSuitesHashSigAlgo_ex2.exit + +InitSuitesHashSigAlgo_ex2.exit: ; preds = %if.end.i, %if.end6.i + %idx.1.i = phi i16 [ %idx.0.i, %if.end.i ], [ %storemerge.i130.i, %if.end6.i ] + %hashSigAlgoSz = getelementptr inbounds i8, ptr %suites, i64 2 + store i16 %idx.1.i, ptr %hashSigAlgoSz, align 2 ret void } @@ -2349,12 +2430,12 @@ entry: if.then.i: ; preds = %entry %8 = lshr i16 %2, 10 %bf.cast = and i16 %8, 1 - tail call void @InitSuites(ptr noundef %0, i16 %7, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext %bf.cast, i16 noundef zeroext %bf.cast6, i16 noundef zeroext %bf.cast11, i16 zeroext poison, i16 noundef zeroext %bf.cast16, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i32 noundef 0) + tail call void @InitSuites(ptr noundef %0, i16 %7, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast, i16 noundef zeroext range(i16 0, 2) %bf.cast6, i16 noundef zeroext range(i16 0, 2) %bf.cast11, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast16, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext poison, i16 zeroext poison, i32 noundef 0) br label %InitSuites_EitherSide.exit if.else.i: ; preds = %entry %conv30 = zext i8 %6 to i32 - tail call void @InitSuites(ptr noundef %0, i16 %7, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext 1, i16 noundef zeroext %bf.cast6, i16 noundef zeroext %bf.cast11, i16 zeroext poison, i16 noundef zeroext %bf.cast16, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i32 noundef %conv30) + tail call void @InitSuites(ptr noundef %0, i16 %7, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext 1, i16 noundef zeroext range(i16 0, 2) %bf.cast6, i16 noundef zeroext range(i16 0, 2) %bf.cast11, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast16, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext poison, i16 zeroext poison, i32 noundef range(i32 0, 256) %conv30) br label %InitSuites_EitherSide.exit InitSuites_EitherSide.exit: ; preds = %if.then.i, %if.else.i @@ -2397,11 +2478,11 @@ if.then.i: ; preds = %if.then2 %bf.lshr = lshr i64 %bf.load, 27 %7 = trunc i64 %bf.lshr to i16 %bf.cast = and i16 %7, 1 - tail call void @InitSuites(ptr noundef nonnull %0, i16 %6, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext %bf.cast, i16 noundef zeroext %bf.cast9, i16 noundef zeroext %bf.cast14, i16 zeroext poison, i16 noundef zeroext %bf.cast19, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i32 noundef 0) + tail call void @InitSuites(ptr noundef nonnull %0, i16 %6, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast, i16 noundef zeroext range(i16 0, 2) %bf.cast9, i16 noundef zeroext range(i16 0, 2) %bf.cast14, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast19, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext poison, i32 noundef 0) br label %if.end41 if.else.i: ; preds = %if.then2 - tail call void @InitSuites(ptr noundef nonnull %0, i16 %6, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext 1, i16 noundef zeroext %bf.cast9, i16 noundef zeroext %bf.cast14, i16 zeroext poison, i16 noundef zeroext %bf.cast19, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i16 zeroext poison, i32 noundef %bf.cast39) + tail call void @InitSuites(ptr noundef nonnull %0, i16 %6, i32 poison, i16 noundef zeroext 1, i16 zeroext poison, i16 noundef zeroext 1, i16 noundef zeroext range(i16 0, 2) %bf.cast9, i16 noundef zeroext range(i16 0, 2) %bf.cast14, i16 zeroext poison, i16 noundef zeroext range(i16 0, 2) %bf.cast19, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext range(i16 0, 2) poison, i16 zeroext poison, i32 noundef range(i32 0, 256) %bf.cast39) br label %if.end41 if.end41: ; preds = %if.else.i, %if.then.i, %if.end @@ -7416,7 +7497,7 @@ if.end15.i: ; preds = %lor.lhs.false2.i %54 = load ptr, ptr %ssl, align 16 %cm.i = getelementptr inbounds i8, ptr %54, i64 144 %55 = load ptr, ptr %cm.i, align 8 - %call.i = call i32 @ParseCertRelative(ptr noundef nonnull %53, i32 noundef 38, i32 noundef %cond, ptr noundef %55) #26 + %call.i = call i32 @ParseCertRelative(ptr noundef nonnull %53, i32 noundef 38, i32 noundef range(i32 0, 2) %cond, ptr noundef %55) #26 switch i32 %call.i, label %ProcessPeerCertParse.exit [ i32 -150, label %if.then22.i i32 -151, label %if.then22.i @@ -7647,7 +7728,7 @@ if.end15.i247: ; preds = %lor.lhs.false2.i236 %94 = load ptr, ptr %ssl, align 16 %cm.i248 = getelementptr inbounds i8, ptr %94, i64 144 %95 = load ptr, ptr %cm.i248, align 8 - %call.i249 = call i32 @ParseCertRelative(ptr noundef nonnull %93, i32 noundef 0, i32 noundef %cond596, ptr noundef %95) #26 + %call.i249 = call i32 @ParseCertRelative(ptr noundef nonnull %93, i32 noundef 0, i32 noundef range(i32 0, 2) %cond596, ptr noundef %95) #26 switch i32 %call.i249, label %do.end667 [ i32 -150, label %if.then22.i250 i32 -151, label %if.then22.i250 @@ -13948,7 +14029,7 @@ MaskPadding.exit: ; preds = %for.body.i, %entry %and.i = call i32 @llvm.smax.i32(i32 %sub2.i, i32 0) %and8.i = call i32 @llvm.smax.i32(i32 %sub6.i, i32 0) %sub9.i = add nsw i32 %conv, -1 - %12 = call range(i32 0, 9) i32 @llvm.ctpop.i32(i32 %conv) + %12 = call range(i32 0, 9) i32 @llvm.ctpop.i32(i32 range(i32 0, 256) %conv) %cmp.i = icmp ult i32 %12, 2 br i1 %cmp.i, label %if.then.i, label %if.else.i @@ -14741,7 +14822,7 @@ if.end.i331: ; preds = %if.then127 %add.ptr = getelementptr inbounds i8, ptr %37, i64 %idx.ext %42 = load ptr, ptr %hmac.i, align 8 %sub.i = sub nuw nsw i32 %conv134, %conv.i - %call.i332 = call i32 %42(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i, ptr noundef %add.ptr, i32 noundef %sub.i, i32 noundef -1, i32 noundef %conv137, i32 noundef 1, i32 noundef 1) #26 + %call.i332 = call i32 %42(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i, ptr noundef %add.ptr, i32 noundef %sub.i, i32 noundef -1, i32 noundef range(i32 0, 256) %conv137, i32 noundef 1, i32 noundef 1) #26 %idx.ext.i333 = zext i16 %39 to i64 %add.ptr.i334 = getelementptr inbounds i8, ptr %add.ptr, i64 %idx.ext.i333 %idx.ext3.i = zext i8 %41 to i64 @@ -15113,7 +15194,7 @@ if.end.i394: ; preds = %if.then4.i391, %if. if.then17.i: ; preds = %if.end.i394 %sub.i398 = sub nsw i32 %conv364, %ivExtra.0.i - %call.i399 = call i32 @TimingPadVerify(ptr noundef nonnull %ssl, ptr noundef nonnull %add.ptr362, i32 noundef %conv10.i, i32 noundef %conv.i383, i32 noundef %sub.i398, i32 noundef %conv367) + %call.i399 = call i32 @TimingPadVerify(ptr noundef nonnull %ssl, ptr noundef nonnull %add.ptr362, i32 noundef %conv10.i, i32 noundef %conv.i383, i32 noundef %sub.i398, i32 noundef range(i32 0, 256) %conv367) %cmp18.not.i = icmp eq i32 %call.i399, 0 br i1 %cmp18.not.i, label %if.end83thread-pre-split.i, label %VerifyMac.exit.thread @@ -15125,7 +15206,7 @@ if.else.i400: ; preds = %if.end.i394 %106 = load ptr, ptr %hmac.i, align 8 %107 = xor i32 %spec.select.i401, -1 %sub33.i = add nsw i32 %sub22.i, %107 - %call34.i = call i32 %106(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i381, ptr noundef nonnull %add.ptr362, i32 noundef %sub33.i, i32 noundef %spec.select.i401, i32 noundef %conv367, i32 noundef 1, i32 noundef 1) #26 + %call34.i = call i32 %106(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i381, ptr noundef nonnull %add.ptr362, i32 noundef %sub33.i, i32 noundef %spec.select.i401, i32 noundef range(i32 0, 256) %conv367, i32 noundef 1, i32 noundef 1) #26 %idx.ext38.i = zext i8 %100 to i64 %idx.neg39.i = sub nsw i64 0, %idx.ext38.i %add.ptr40.i = getelementptr inbounds i8, ptr %add.ptr.i396, i64 %idx.neg39.i @@ -15164,7 +15245,7 @@ ConstantCompare.exit.i407: ; preds = %ConstantCompare.exi if.then62.i: ; preds = %if.then354 %111 = load ptr, ptr %hmac.i, align 8 %sub65.i = sub nsw i32 %conv364, %conv.i383 - %call66.i = call i32 %111(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i381, ptr noundef %add.ptr362, i32 noundef %sub65.i, i32 noundef -1, i32 noundef %conv367, i32 noundef 1, i32 noundef 1) #26 + %call66.i = call i32 %111(ptr noundef nonnull %ssl, ptr noundef nonnull %verify.i381, ptr noundef %add.ptr362, i32 noundef %sub65.i, i32 noundef -1, i32 noundef range(i32 0, 256) %conv367, i32 noundef 1, i32 noundef 1) #26 %idx.ext68.i = zext i16 %.pre619 to i64 %add.ptr69.i = getelementptr inbounds i8, ptr %add.ptr362, i64 %idx.ext68.i %idx.ext70.i = zext i8 %100 to i64 @@ -16272,7 +16353,7 @@ retry.outer.i: ; preds = %do.body, %land.lhs. retry.i: ; preds = %if.then3.i, %retry.outer.i %8 = load ptr, ptr %CBIORecv.i, align 16 %9 = load ptr, ptr %IOCB_ReadCtx.i, align 16 - %call.i = tail call i32 %8(ptr noundef nonnull %ssl, ptr noundef %add.ptr44, i32 noundef %inSz.0, ptr noundef %9) #26 + %call.i = tail call i32 %8(ptr noundef nonnull %ssl, ptr noundef %add.ptr44, i32 noundef range(i32 -2147483647, -2147483648) %inSz.0, ptr noundef %9) #26 %cmp2.i = icmp slt i32 %call.i, 0 br i1 %cmp2.i, label %if.then3.i, label %if.end53 diff --git a/bench/yaml-cpp/optimized/memory.cpp.ll b/bench/yaml-cpp/optimized/memory.cpp.ll index 4c890acc386..6a7aba26029 100644 --- a/bench/yaml-cpp/optimized/memory.cpp.ll +++ b/bench/yaml-cpp/optimized/memory.cpp.ll @@ -13,6 +13,8 @@ $_ZNSt10shared_ptrIN4YAML6detail4nodeEED2Ev = comdat any $__clang_call_terminate = comdat any +$_ZN4YAML6detail8node_refC2Ev = comdat any + $_ZN4YAML6detail9node_dataD2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN4YAML6detail9node_dataELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any @@ -25,8 +27,6 @@ $_ZNSt15_Sp_counted_ptrIPN4YAML6detail9node_dataELN9__gnu_cxx12_Lock_policyE2EE1 $_ZNSt15_Sp_counted_ptrIPN4YAML6detail9node_dataELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info = comdat any -$_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail8node_refEEET_ = comdat any - $_ZN4YAML6detail8node_refD2Ev = comdat any $_ZNSt15_Sp_counted_ptrIPN4YAML6detail8node_refELN9__gnu_cxx12_Lock_policyE2EED2Ev = comdat any @@ -392,35 +392,35 @@ declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #1 define linkonce_odr void @_ZN4YAML6detail4nodeC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %this) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %call = tail call noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #11 - %call.i1 = invoke noalias noundef nonnull dereferenceable(176) ptr @_Znwm(i64 noundef 176) #11 - to label %call.i.noexc unwind label %lpad - -call.i.noexc: ; preds = %entry - invoke void @_ZN4YAML6detail9node_dataC1Ev(ptr noundef nonnull align 8 dereferenceable(176) %call.i1) - to label %invoke.cont.i unwind label %lpad.i + invoke void @_ZN4YAML6detail8node_refC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %call) + to label %invoke.cont unwind label %lpad -invoke.cont.i: ; preds = %call.i.noexc - store ptr %call.i1, ptr %call, align 8 - %_M_refcount.i.i.i = getelementptr inbounds i8, ptr %call, i64 8 - store ptr null, ptr %_M_refcount.i.i.i, align 8 +invoke.cont: ; preds = %entry + store ptr %call, ptr %this, align 8 + %_M_refcount.i.i = getelementptr inbounds i8, ptr %this, i64 8 + store ptr null, ptr %_M_refcount.i.i, align 8 %call.i = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #11 - to label %invoke.cont unwind label %lpad.i2 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail8node_refEEET_.exit unwind label %lpad.i -lpad.i2: ; preds = %invoke.cont.i +lpad.i: ; preds = %invoke.cont %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 %2 = tail call ptr @__cxa_begin_catch(ptr %1) #10 - tail call void @_ZN4YAML6detail9node_dataD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %call.i1) #10 - tail call void @_ZdlPv(ptr noundef nonnull %call.i1) #12 + tail call void @_ZN4YAML6detail8node_refD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %call) #10 + tail call void @_ZdlPv(ptr noundef nonnull %call) #12 invoke void @__cxa_rethrow() #13 to label %unreachable.i unwind label %lpad3.i -lpad3.i: ; preds = %lpad.i2 +lpad3.i: ; preds = %lpad.i %3 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %lpad.body unwind label %terminate.lpad.i + to label %common.resume unwind label %terminate.lpad.i + +common.resume: ; preds = %lpad3.i, %lpad + %common.resume.op = phi { ptr, i32 } [ %7, %lpad ], [ %3, %lpad3.i ] + resume { ptr, i32 } %common.resume.op terminate.lpad.i: ; preds = %lpad3.i %4 = landingpad { ptr, i32 } @@ -429,47 +429,34 @@ terminate.lpad.i: ; preds = %lpad3.i tail call void @__clang_call_terminate(ptr %5) #14 unreachable -unreachable.i: ; preds = %lpad.i2 +unreachable.i: ; preds = %lpad.i unreachable -lpad.i: ; preds = %call.i.noexc - %6 = landingpad { ptr, i32 } - cleanup - tail call void @_ZdlPv(ptr noundef nonnull %call.i1) #12 - br label %lpad.body - -invoke.cont: ; preds = %invoke.cont.i +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail8node_refEEET_.exit: ; preds = %invoke.cont %_M_use_count.i.i.i = getelementptr inbounds i8, ptr %call.i, i64 8 store i32 1, ptr %_M_use_count.i.i.i, align 8 %_M_weak_count.i.i.i = getelementptr inbounds i8, ptr %call.i, i64 12 store i32 1, ptr %_M_weak_count.i.i.i, align 4 - store ptr getelementptr inbounds (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN4YAML6detail9node_dataELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %call.i, align 8 + store ptr getelementptr inbounds (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN4YAML6detail8node_refELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %call.i, align 8 %_M_ptr.i.i = getelementptr inbounds i8, ptr %call.i, i64 16 - store ptr %call.i1, ptr %_M_ptr.i.i, align 8 - store ptr %call.i, ptr %_M_refcount.i.i.i, align 8 - store ptr %call, ptr %this, align 8 - %_M_refcount.i.i = getelementptr inbounds i8, ptr %this, i64 8 - tail call void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail8node_refEEET_(ptr noundef nonnull align 8 dereferenceable(8) %_M_refcount.i.i, ptr noundef nonnull %call) + store ptr %call, ptr %_M_ptr.i.i, align 8 + store ptr %call.i, ptr %_M_refcount.i.i, align 8 %m_dependencies = getelementptr inbounds i8, ptr %this, i64 16 - %7 = getelementptr inbounds i8, ptr %this, i64 24 + %6 = getelementptr inbounds i8, ptr %this, i64 24 %_M_left.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 40 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_dependencies, i8 0, i64 24, i1 false) - store ptr %7, ptr %_M_left.i.i.i.i.i, align 8 + store ptr %6, ptr %_M_left.i.i.i.i.i, align 8 %_M_right.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 48 - store ptr %7, ptr %_M_right.i.i.i.i.i, align 8 + store ptr %6, ptr %_M_right.i.i.i.i.i, align 8 %_M_node_count.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 56 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %_M_node_count.i.i.i.i.i, i8 0, i64 16, i1 false) ret void lpad: ; preds = %entry - %8 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } cleanup - br label %lpad.body - -lpad.body: ; preds = %lpad, %lpad3.i, %lpad.i - %eh.lpad-body = phi { ptr, i32 } [ %6, %lpad.i ], [ %8, %lpad ], [ %3, %lpad3.i ] tail call void @_ZdlPv(ptr noundef nonnull %call) #12 - resume { ptr, i32 } %eh.lpad-body + br label %common.resume } declare i32 @__gxx_personality_v0(...) @@ -569,6 +556,68 @@ declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr ; Function Attrs: cold nofree noreturn declare void @_ZSt9terminatev() local_unnamed_addr #5 +; Function Attrs: mustprogress uwtable +define linkonce_odr void @_ZN4YAML6detail8node_refC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { +entry: + %call = tail call noalias noundef nonnull dereferenceable(176) ptr @_Znwm(i64 noundef 176) #11 + invoke void @_ZN4YAML6detail9node_dataC1Ev(ptr noundef nonnull align 8 dereferenceable(176) %call) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry + store ptr %call, ptr %this, align 8 + %_M_refcount.i.i = getelementptr inbounds i8, ptr %this, i64 8 + store ptr null, ptr %_M_refcount.i.i, align 8 + %call.i = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #11 + to label %_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail9node_dataEEET_.exit unwind label %lpad.i + +lpad.i: ; preds = %invoke.cont + %0 = landingpad { ptr, i32 } + catch ptr null + %1 = extractvalue { ptr, i32 } %0, 0 + %2 = tail call ptr @__cxa_begin_catch(ptr %1) #10 + tail call void @_ZN4YAML6detail9node_dataD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %call) #10 + tail call void @_ZdlPv(ptr noundef nonnull %call) #12 + invoke void @__cxa_rethrow() #13 + to label %unreachable.i unwind label %lpad3.i + +lpad3.i: ; preds = %lpad.i + %3 = landingpad { ptr, i32 } + cleanup + invoke void @__cxa_end_catch() + to label %common.resume unwind label %terminate.lpad.i + +common.resume: ; preds = %lpad3.i, %lpad + %common.resume.op = phi { ptr, i32 } [ %6, %lpad ], [ %3, %lpad3.i ] + resume { ptr, i32 } %common.resume.op + +terminate.lpad.i: ; preds = %lpad3.i + %4 = landingpad { ptr, i32 } + catch ptr null + %5 = extractvalue { ptr, i32 } %4, 0 + tail call void @__clang_call_terminate(ptr %5) #14 + unreachable + +unreachable.i: ; preds = %lpad.i + unreachable + +_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail9node_dataEEET_.exit: ; preds = %invoke.cont + %_M_use_count.i.i.i = getelementptr inbounds i8, ptr %call.i, i64 8 + store i32 1, ptr %_M_use_count.i.i.i, align 8 + %_M_weak_count.i.i.i = getelementptr inbounds i8, ptr %call.i, i64 12 + store i32 1, ptr %_M_weak_count.i.i.i, align 4 + store ptr getelementptr inbounds (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN4YAML6detail9node_dataELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %call.i, align 8 + %_M_ptr.i.i = getelementptr inbounds i8, ptr %call.i, i64 16 + store ptr %call, ptr %_M_ptr.i.i, align 8 + store ptr %call.i, ptr %_M_refcount.i.i, align 8 + ret void + +lpad: ; preds = %entry + %6 = landingpad { ptr, i32 } + cleanup + tail call void @_ZdlPv(ptr noundef nonnull %call) #12 + br label %common.resume +} + ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 @@ -585,7 +634,7 @@ entry: while.body.i.i.i: ; preds = %entry, %while.body.i.i.i %__cur.05.i.i.i = phi ptr [ %1, %while.body.i.i.i ], [ %0, %entry ] %1 = load ptr, ptr %__cur.05.i.i.i, align 8 - tail call void @_ZdlPv(ptr noundef %__cur.05.i.i.i) #12 + tail call void @_ZdlPv(ptr noundef nonnull %__cur.05.i.i.i) #12 %cmp.not.i.i.i = icmp eq ptr %1, %m_undefinedPairs br i1 %cmp.not.i.i.i, label %_ZNSt7__cxx114listISt4pairIPN4YAML6detail4nodeES5_ESaIS6_EED2Ev.exit, label %while.body.i.i.i, !llvm.loop !4 @@ -651,7 +700,7 @@ delete.notnull: ; preds = %entry while.body.i.i.i.i: ; preds = %delete.notnull, %while.body.i.i.i.i %__cur.05.i.i.i.i = phi ptr [ %2, %while.body.i.i.i.i ], [ %1, %delete.notnull ] %2 = load ptr, ptr %__cur.05.i.i.i.i, align 8 - tail call void @_ZdlPv(ptr noundef %__cur.05.i.i.i.i) #12 + tail call void @_ZdlPv(ptr noundef nonnull %__cur.05.i.i.i.i) #12 %cmp.not.i.i.i.i = icmp eq ptr %2, %m_undefinedPairs.i br i1 %cmp.not.i.i.i.i, label %_ZNSt7__cxx114listISt4pairIPN4YAML6detail4nodeES5_ESaIS6_EED2Ev.exit.i, label %while.body.i.i.i.i, !llvm.loop !4 @@ -703,61 +752,6 @@ entry: ; Function Attrs: nounwind declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #8 -; Function Attrs: mustprogress uwtable -define linkonce_odr void @_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IPN4YAML6detail8node_refEEET_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { -entry: - store ptr null, ptr %this, align 8 - %call = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #11 - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %_M_use_count.i.i = getelementptr inbounds i8, ptr %call, i64 8 - store i32 1, ptr %_M_use_count.i.i, align 8 - %_M_weak_count.i.i = getelementptr inbounds i8, ptr %call, i64 12 - store i32 1, ptr %_M_weak_count.i.i, align 4 - store ptr getelementptr inbounds (i8, ptr @_ZTVSt15_Sp_counted_ptrIPN4YAML6detail8node_refELN9__gnu_cxx12_Lock_policyE2EE, i64 16), ptr %call, align 8 - %_M_ptr.i = getelementptr inbounds i8, ptr %call, i64 16 - store ptr %__p, ptr %_M_ptr.i, align 8 - store ptr %call, ptr %this, align 8 - ret void - -lpad: ; preds = %entry - %0 = landingpad { ptr, i32 } - catch ptr null - %1 = extractvalue { ptr, i32 } %0, 0 - %2 = tail call ptr @__cxa_begin_catch(ptr %1) #10 - %isnull = icmp eq ptr %__p, null - br i1 %isnull, label %delete.end, label %delete.notnull - -delete.notnull: ; preds = %lpad - tail call void @_ZN4YAML6detail8node_refD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__p) #10 - tail call void @_ZdlPv(ptr noundef nonnull %__p) #12 - br label %delete.end - -delete.end: ; preds = %delete.notnull, %lpad - invoke void @__cxa_rethrow() #13 - to label %unreachable unwind label %lpad3 - -lpad3: ; preds = %delete.end - %3 = landingpad { ptr, i32 } - cleanup - invoke void @__cxa_end_catch() - to label %eh.resume unwind label %terminate.lpad - -eh.resume: ; preds = %lpad3 - resume { ptr, i32 } %3 - -terminate.lpad: ; preds = %lpad3 - %4 = landingpad { ptr, i32 } - catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - tail call void @__clang_call_terminate(ptr %5) #14 - unreachable - -unreachable: ; preds = %delete.end - unreachable -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZN4YAML6detail8node_refD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { entry: