<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54134>54134</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LLVM-15 - LLVM ERROR: LICM requires MemorySSA (loop-mssa)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          rabeidas
      </td>
    </tr>
</table>

<pre>
    Please find below a simple example to trigger the problem, followed by running commands and stack dump.

**test.c**
```
extern int A[1024];
extern int INIT;
extern int DIV;
extern int SUM;

void foo() {

  int s = INIT;

  for( int i = 4; i < 1024; i++ ) {
    int tmp = A[i - 3] * A[123] / DIV;
    A[i] = tmp;
    s += tmp;
  }

  SUM = s;
}
```

**$ clang-15 -emit-llvm -S -Os test.c -fno-vectorize
$ opt-15 -load-pass-plugin ./libCgrameKernels.so -passes='loop(loop-flatten),licm' -disable-output test.ll**
LLVM ERROR: LICM requires MemorySSA (loop-mssa)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt-15 -load-pass-plugin ./libCgrameKernels.so -passes=loop(loop-flatten),licm -disable-output test.ll
 #0 0x00007f981ffeebe1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe61be1)
 #1 0x00007f981ffec93e llvm::sys::RunSignalHandlers() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe5f93e)
 #2 0x00007f981ffef10b (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe6210b)
 #3 0x00007f981f16e3c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
 #4 0x00007f981ec6118b raise /build/glibc-eX1tMB/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f981ec40859 abort /build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007f981ff2a297 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xd9d297)
 #7 0x00007f981ff2a0b6 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xd9d0b6)
 #8 0x00007f9820e18bfc llvm::LICMPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1c8bbfc)
 #9 0x00007f9822b92f4d (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x3a05f4d)
#10 0x00007f9820e6359e llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1cd659e)
#11 0x00007f9822b928bd (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x3a058bd)
#12 0x00007f982015dfce llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xfd0fce)
#13 0x00007f9821dacb0d (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x2c1fb0d)
#14 0x00007f9820161ee1 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xfd4ee1)
#15 0x00007f9821dac92d (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x2c1f92d)
#16 0x00007f982015cbee llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xfcfbee)
#17 0x000055f386bc2cbc llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) (/usr/lib/llvm-15/bin/opt+0x24cbc)
#18 0x000055f386bd63ac main (/usr/lib/llvm-15/bin/opt+0x383ac)
#19 0x00007f981ec420b3 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#20 0x000055f386bbc43e _start (/usr/lib/llvm-15/bin/opt+0x1e43e)
Aborted (core dumped)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNV1lz4ygQ_jXyCyWXhA7LD35wrtrUxDupOJPaNxcCZLMrCy2gTLK_fhvkCyeZSSZ-GJdLB3183V_TCErJnie3NSeao0o0DJW8lt8RQVqs25oj_kTc3UhklFguuUJmxVGrZFnzdYDPUSVrsOBg-YxU1zSiWSIq12vSMI3ggrQh9B_EunU7DKKLIJpurtj-DddmSPvnzXgebf7ulT8ZrhokGoOmQXYWRzgNsosgOXshvv7z-v618Yvrh9eG599mu-H--igFg3RkgIsAj1Ew8qTIWWkUJBc-1FZcSQWWTks4rRRU3OM5cmHbtwCfwR95_hHqfZt16-xsngKFKIFEQXPaJ443r1deQtbW6TshGIMTTwgBA-QLQTC68KMHOpy93ue1U_Ercli-AKeI1qRZhnGGQr4WJqzrxzUK5yj8qlFfXRRWjQwfOTVSif_41j5FsjXOrpaEhS3ROmzrbikaNIQ0a1GeLxVZ8y9QMV7roZbIKXEI8SLAo1rKFgi3t7CqiTG8AVphStaCwswcoZAJTWCahrIzbWf6aOr6cLLd3DzM0OXd3de7IJmim-vzGVL8304ortGMr6V6ns-naIuy1ppYCGd6e3M5nV8i3ZWQNTRM2S3BtpXK2GZZGdNCnIB0Bf-lMKuuHEJb2MSAoM0thD76G3iBV6F1B5lBeW3PiIbWHeOu16gieoVKaCKjCOWbJprvusqiuKEIRONbJS1riKhlt-aNsUF8hugfsvwmxf2kCnASoegpgt-oGhdxVXFe8hg5BiDqZKqfdf9wq6ADXE73NkmLuFNS5PtCaqM4Ad5yu-aArusg26hXnVZ9FltS4wyeSgFxXg2He5EobbVBCgkOY-iK6InnMcSzK6kNOD4KmI4T_lrAd10zF8uG1H9AvWqu9HbV-HRMWQWQXkz4KKYqjspTJI_BjweUeEBxzhMaocUCugFaly9gaveovdOnIl_kaViLpnsKl03XC1qzgkoxixM5nDgDLx5MegjDaR7HRYkUEfANssF3oma2acAZDflfsZmd7V7xMIHor7SjfpsjFIXx1jZP14infuDRRQORwd25hq9MMs1iuMT7SDI_kjQqsjEipXSZvi8Sw3o2nJUDKSzIaA-S--XDBI9Hny8fGzPw4_E6OgaKyvwkQODHAyoOgHDEoXwVPWgSu47ewgKyad-u8dr5xq0oro_3g1Mo57MWekYaApsM-GYeGxxq2xFYLBpGFNta3nHd1bDcgefk8oX_n1j4urezby0jsFNwohP0dEyLEijyOBwfcojLMa5S9nmkhEQZONoh2RUt8quVJ9n4cEmDpqFGyOZeWpJs3aaMtNDwr5dvq_6hEu6MNqU5Cacsh0S8TONjTovyRJyCIw8Je5zGGavoIaeWxR_y8CvMIcveb12TikUV9Uty-EnBMSO0jE5QEkzjChx5SKlfkjzm3lZjJllX83u5TfunE703-BClG5NTEprygw2KTTM7JnSMT0QoOPKQ8qM5Tkv-njm-5e3DpL09v3-LUtAK8vcI2n5vs6xKirykmJaHn0HIwnJ0K1oOOxF_TzuH03SzvOOVn9Ebid7Dbp6bGaEr52f6mvRGlIqo5-umktdwZH-pJWX91e3Sr0T9ipNPid9IZ6oUebajh5XZ69riHKrDMWVhAKh_6-G-iIb9SOuBK1EJrrZ6pZX89P6e-QA4fWukUFav7oVfd5YnhKI1gfPU-70mBRh5XsdHe1EclQlsvu1mc6ENUWaxgXjXvpTqbjun-0cndH7cJjVJsb3u4HHkJ1XSFA4-PfAH0op5enB4mdo9MXfLE4UDhDuu8v0iM2CThI2TMRkYYWo-2fQcCtEvncsHnaonv37wztI4SQerScaLIokITaoMPio4T9OsJKOMY8JYhike1KSEY_IkyIB03PDvyLmA5yC7GIgJjjCOkggONXGBR8MsYmWUFFHBaBYzXgRpxKGQ9dDGMZRqOVATF1LZLTUIa6GN3gthAYGzDucODvyTzqykmiiIQTCiBw574mL_H2W7xnY">