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

    <tr>
        <th>Summary</th>
        <td>
            Incorrect handling of `CallOpInterface` in `AbstractSparseBackwardDataFlowAnalysis`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            srishti-pm
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          srishti-pm
      </td>
    </tr>
</table>

<pre>
    Currently, data in `AbstractSparseBackwardDataFlowAnalysis` is considered to flow one-to-one, in order, from the operands of an op implementing `CallOpInterface` to the arguments of the function it is calling.

This understanding of the data flow is inaccurate. The operands of such an op that forward to the function arguments are obtained using a method provided by `CallOpInterface` called `getArgOperands()`.

This means that instead of using `getOperands()` to get the mapping from operands to function arguments, we need to use `getArgOperands()` to get this mapping because not all operands necessarily forward to the function arguments and even if they do, they don't necessarily have to be in the order in which they appear in the op.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk8GOmzAQhp_GXEaJiCGBHDhkdxVpT3vovsBgD-DW2MgeEuXtKxO6Ubtt1V7AmJn5v98zxhhN74gasX8SUsZg4sBmM41CSrF_yXDmwYfmsZ-1Xt-a5zkEcmxvQj6DRkYwDsQhP7WRAyr-MmGI9ITq2xWDfkHGs_XXk0N7iyaKQw4mgvIuGk2BNLCHzvoreEcb9hvvKBU2DnzQFNK6C34EHgj8RAGdjuA7QAd-AjNOlkZybFyfIJ7R2rfp1TGFDhUlNfZLLoZ-ToFLctroZqfYeAeGFyK01rh-K_IXkZ_uz_fBRJidphAZnU4aa_Lie8E2EYxDpeaATFt4_wUzzmpYWXlAhs6HdCw_qD4gHngYCHzLaBxpmGMSRRiJB69hCv5iNGlob39wm2yQTj974lPo31YWIWshj-KQfzY4Erp4pzMuMqFO4Hfle51PRRJ-T7xYGHGaUujSpQ_rqaufvKVmXgkc3ds-R_oL6EMjMa4iLSlMac4zoLUPPUeKYsRg7O1fzthpoAs5MEs7b6B9YluXTsiKf6o44IVSuZbSYC6jmIYzfVwHo4Z7Jk4TYfiImLaZbgp9LI6YUbM7HHdFVda7MhuaqqqKuq6wrYu63Wu1y5VUqi5l1cp9UcjMNDKXRV7nVS5lviu3ut5Vh4M6dgW2x12FosxpRGO31l7GrQ99ZmKcqTmUZVVnFluycb3YozVhvdKhSeGbdu6jKHNrIsdHATZsqXl1yodAimFAp-06878ftv-8-NkcbDMwT1EUJyHPQp57w8PcbpUfhTwnkvW1mYL_SoqFPC--opDnxdr3AAAA__9PepwV">