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

    <tr>
        <th>Summary</th>
        <td>
            Move context-sensitive data out of `Environment`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:dataflow
      </td>
    </tr>

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

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

<pre>
    `Environment`s are used to track context specific to basic blocks. The context-sensitive fields, `CallStack`, `ReturnLoc` and `This PointeeLoc` are specific to a whole function context, and stable across blocks. So, they should be shared rather than copied for each new `Environment`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtkd2O0zAQhZ8mubE2yk-TNhe-gIVegYTYfYGxM4nNup7K47T07ZlUFJAWyZLH51jfHI8NTTddDPXnePGJ4gljlhMrSKhWxkllUjmBfVOWYsafWfEZrZ-93RwDLIUJZN-4Uq8OH7eeGCP77C-oZo9h4qJ9VgJ-hhBesuCk_i19x7ym-IWs1AritGmvzrP6Rl5Y-HAk0L-tQV0dBcGv0WZP8dF5o24UzmDEBpuI-U_EF9r87PCm2NEaJmUE6wQ-qQSiJzFhg529SDMlhWCdinhV76ZUlaibYTj07b7uhnLS3TR2I5TZ54D6K13-N44JMihas6L5PbFcU9Au5zMX3YeiPcpafHarqSyd5BDC5bE9nRP9QCvvPXrmFWXCx36s6750er-DfuxwPxxMPdrB2GmubYeIAN28t3UZwGBgXfQfi7a1AeIi_bZkc6CrSEX_qfS6rdu2aZq-6XddP1TtYcQeuwMO0JiDHYpdjSfwodriVJSWMul7MrMuLGbwnPmvCcx-iYj3rsKHNTtK-naS3yrvT9D3_L8A6YbbQw">