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

    <tr>
        <th>Summary</th>
        <td>
            Early-cse is not idempotent
        </td>
    </tr>

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

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

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

<pre>
    Hi. I noticed `early-cse` is not idempotent. Is this behavior intended or a missed optimization?

Reproducer:
```LLVM
; Failed:
; RUN: opt < %s -passes=early-cse -S | FileCheck %s

; Success:
; RUN: opt < %s -passes='early-cse,early-cse' -S | FileCheck %s

; CHECK-LABEL: @foo(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    ret void

define void @foo() {
entry:
  %a = alloca i64
  call void @llvm.lifetime.start(i64 64, ptr %a)
  ret void
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMkk1v2zwQhH_N6rKwQZP6sA46-EtI8PrNIWmLXilxbW9LiQJJOUh_fSElSNz20AICRHK0z4yk0SHwuSeqINtCtk_0GC_OVw_0_MTnTieNMy_VHS_xHnsXuSWDkAvS3r4s2kCQC-QwSciGusFF6uMS7wPGCwds6KKv7DxyH6k3ZNB51NhxCNN6iNzxDx3Z9aBqEBsQm0cavDNjSx7UtIdcvF7H45f_p73aYq3ZknnT1RYfPz-A2kw8BLVDkFnAxaBDoABq_x4WF08IxQ5rtrS7UPt9fvLVdsI8jW1LIfwrF2Tx8R3k7mZd_M1pd3fY_bc4braH42QAqTg5B3L9i_xw-PppUpH66F8-Uv2mInqKeHVsXvmGTtzTfHADliVCsQWxuYHhlEojqD1qa12rkfN0Pm-1te8Ea6_d0vKJIne0DFH7CHLNeYp5CnKHQ_QzCGQ5D9_GKfa3vzAxlTKlKnVC1apIS5VJVZTJpSpWbbEy4qQpl1Ssc9mkqchE25js1IhSJ1xJITORi7VQK5mVy1zmRipR5qd0tU7XKaSCOs12Oad1_pxwCCNVq1TJUiVWN2TDXHIpe3rGWQUpp877ahpaNOM5TK_LIYYPTORoqTq8d-iPtiejt9UlxmEujqxB1meOl7FZtq4DWU-kt9ti8O4btRFkPfsHkPVbwGslfwYAAP__ovQNXA">