<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVNtuozAQ_Rp4sTYCQy594CFtlP2AfkDlyxCcOHZkD2m7X79jYElTtdKuFhmjmTlzO9gjvX5vno1TwF6BaaOZ88gwCHVi2AFrhSKxE5jMZ3PokHXiCiyezOUCmilhLYsGITIRY38mlQahmXEsWxWqA3Xa-7C19omAzwlH6hRLKGU0OCT1O7kEQ0HJ5HwA1YcICUZBFAQU9KUUvUDjXVxkxS4rtlvH4E2cL5bc-KZDvMSs2mZ8T-vgtfQWFz4cSPpFr3-7qmMUP9uMPyTYEGLaV8W0BlGDsiIAu3riIqsLeEMIjlIkzw9uGlrjgJkygagtfKHCXxxQxk1S8qUiDzb3w7L14-jJ6CFzUISqdiODYxiCjt4YepjzJbwMbAxKXhl_YlZIsEnGO6kdPXBucc7Fv801VXrDB8A5GR_V7V3Aj4By4mS9-4ocl7gTX6YsEzt3nMw9_nuLU0UDbV8UnCr9e64H0Pe__0O-VtgInwm4P07jnuum0g_Vg8hFj50PzVF7CC2d7bwPtvl0eg12vVwofybB2uufz49L8EdQRMfe0FWjm8T3y2qzqfOuAV6vi1LXta5LuVlVXAgp16sVr_iSS1nlA3-xyZaPGefm4mnPlrv8_3ObhhecVrkq10VV8AWoZVnodSs2StVFKxOJZ2HsIsVJVzIPzRBS9odIRmsixpuRpog5OICp1JmoqWA0aAfbFjEY2aMPpGY7P8ytaY7cLt0r9eN7ZNb7k3EHRnMs_d3b1MqHdpqhl98_W33w>53884</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Attributor] Do not derive norecurse without looking at all call sites
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            ipo
      </td>
    </tr>

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

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

<pre>
    Since we did not track the fact that we might have skipped call sites assumed dead in `checkForAllCallSites` we accidentally derive `norecurse` in certain situations.
An example (https://godbolt.org/z/oxvcjsaGf):

```
declare void @extern()

define i1 @test_rec_neg(i1 %c) norecurse {
    %rc1 = call i1 @rec(i1 true)
    br i1 %rc1, label %t, label %f
t:
    %rc2 = call i1 @rec(i1 %c)
    ret i1 %rc2
f:
    ret i1 %rc1
}

define internal i1 @rec(i1 %c1) {
    br i1 %c1, label %t, label %f
t:
    ret i1 true
f:
    %r = call i1 @rec(i1 true)
    call void @extern()
    ret i1 false
}
```


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVFFuozAQPQ38WBuBCQn54CNtlD1AD1AZewhuHDuyh7Td0-8YWJJUqdSNHKMZv5k38_DQOPVZv2grgb0DU1ox65ChF_LIsAPWCklmJzAen_ShQ9aJC7Bw1OczKCaFMSxohMBECP2JXAqEYtqyZJXJDuRx7_zWmGcCvkQcuWMuIaVWYJHcnxTiNSWlI-s8yN4HiDBKIsGjoCdR9AK1s2GRZLsk224tgw9xOhsK41WHeA5JsU34ntbBqcYZXDh_IOsP_d3HRb4F8btN-CbChhTTvsqmNZgKpBEe2MWRFskygw8Eb4kiRt6EKWi1BabzCKK28JUKf7VAjFV08lJSBJv7Ycn6aYxk9KNjLwlV7EYFxzQEHaPR9zDzRXzj2ZiUohL-zIxowEQb76x2jMC5xZmLf8s1VXrFe8CZjI_u9i7hLSCfNFnvHoljo3biIWUe1bnTZO7x_1ucKhpke1BwrPTnWg-g71__DV8rTICvAtxfp3FPVV2oTbERKWo0UCfl0xbR66ZH55Nyx3ZumLtpDq6X5l1j53pkxrmjtgdGcxiru05d2ntTf7n9FNM3C-lOZBhz-ff4dfbuDSTJudc0qjSJfF8WVbVMu1ou20rmmSzK5UaAyMt8o9qq4nylyqLYNOmgf4iFJ5zrs6Od6k51zTNOK1_l66zI-AJkmWdq3YpKymXWNlHCk9BmESuIA5n6eiim6Q-BDo0OGK6H9A3RBwswEb0pB76lT8BEJ3qSw9ezOx0aqYcu_gI4YWjA">