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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX][DXIL] Extend existing Module pass to collect shader flags per-function
        </td>
    </tr>

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

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

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

<pre>
    Current implementation of `ComputedShaderFlags::computeFlags(Module &M)` collects a single shader flags mask for the entire module.

Change the implementation to collect shader module masks per-function of the module. 

AC:
1. Implement a map of function to the shader flags mask representing various properties
2. Update existing tests to verify the change.

This change is not expected to include analyzing for any new shader flags other than ensuring the existing `Flags.DX11_1_DoubleExtensions` (viz., `m_bDoubleExtensions` in `dxc`) continues to be set correctly.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsk81u6zYQhZ-G2gwiUJQlywstXLsGLtC7agtkF1DiSGJKkQKHcuw8fUHabpLebPRDznycc4YjifRoEVtW_caqYybXMDnfdpP0Ur3J12vWOXVtD6v3aAPoeTE4ow0yaGfBDcBqfnDzsgZUf05SoT8ZORIr96zc97eN24pofjq1GgQm6p9M7FjNoXfGYB8IJJC2o0GgxIAhpsAs6R8YnIcwIaAN2iPMCZIzfmR8f3seJmlHTEH_qy-4xxEP8C09kQkW9E_DavuHlki48-HzAftD1JM-ixx-PM4ACbNcYuJ_kOAS5FcVHhePFDXYEc7Sa7cSLN4t6INGusFFDn8vSgYEvGhKoQEpUMSe0evhmuh90vvFgr8mTfd10ATWBcDLgn1AFZO17c2qEKSV5voeudFVaa9g8e1rtS5MGA2XFtDS6lMR06eKWM1TQ_Pjc1G8FC9Ht3YGf78EtKSdpdhXJpqzfs-ZOMTw-aX7LkjbuKkuPas5EzvoXXRnxSS3QyAM0DvvsQ_melebqbZUu3InM2yLrWiqbcOLXTa1ghc1dnWz45tqUGIo1VDWSmyKpuTDdltluhVcbApe8KIuy7LJed2XlagRRVOJQW7ZhuMstcmNOc-582OmiVZsi6Jo6m1mZIeG0pgIEV1Lu0yIODW-jUlP3ToS23CjKdAHJuhg0nwdddTyzKpj_Hn-8QerjpA8UR_23odkkUTfXN9bjz7f22z1pp1CWNLMiRMTp1GHae3y3s1MnGIZ99fT4t0r9oGJUyqemDjd1Z1b8W8AAAD__0BNWmo">