[clang] [llvm] [LICM] Sink unused l-invariant loads in preheader. (PR #157559)
Vigneshwar Jayakumar via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 25 08:49:40 PDT 2025
VigneshwarJ wrote:
> ```llvm
> ; RUN: opt -S -passes="loop-mssa(loop-simplifycfg,licm<no-allowspeculation>,loop-rotate,simple-loop-unswitch)" < %s
>
> target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
> target triple = "x86_64-pc-linux-gnu"
>
> define void @_ZN4ncnnL8rnn_int8ERKNS_3MatERS0_iS2_PKfS2_S2_S5_S3_RKNS_6OptionE.omp_outlined(ptr %0) {
> %2 = alloca i32, align 4
> call void @llvm.lifetime.start.p0(ptr %2)
> br label %3
>
> 3: ; preds = %5, %1
> %4 = load i32, ptr null, align 4
> br label %.preheader
>
> .preheader: ; preds = %7, %3
> %.049 = phi i32 [ %8, %7 ], [ 0, %3 ]
> br i1 false, label %7, label %5
>
> 5: ; preds = %.preheader
> %6 = load ptr, ptr %0, align 8
> store float 0.000000e+00, ptr %6, align 4
> br label %3
>
> 7: ; preds = %.preheader
> %8 = add i32 0, 0
> br label %.preheader
> }
>
> ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
> declare void @llvm.lifetime.start.p0(ptr captures(none)) #0
>
> attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
> ```
I dont see this crash.
https://github.com/llvm/llvm-project/pull/157559
More information about the llvm-commits
mailing list