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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Collect shader flags based on module properties, target shader stage or validator version
        </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>
     Add support to collect following flags not dependent on instructions but on validator version, module properties or target shader stage
- [ ]  `m_bDisableOptimizations`
        Set if optimizations are disabled (`-O0`)
- [ ] `m_bAllResourcesBound`
 Set if command-line option `-all-resources-bound` is specified
 NOTE: To be added only if the command-line option `-all-resources-bound` of `dxc` is supported in `clang`
- [ ] `m_bUseNativeLowPrecision`
 Set if command-line option `-enable-16bit-types` is specified and Shader Model is 6.2 or later
       NOTE: If this is set, min-precision mode (`m_bUseMinPrecision`) is not set. 
- [ ] `m_bResMayNotAlias`
 Set if command-line option `-res-may-alias` is *NOT* specified AND either
 - DXIL Version > 1.7 AND function uses UAVs OR
          - DXIL Version <= 1.7 AND UAVs present globally 
        NOTE: To be added only if the command-line option `-res-may-alias` of `dxc` is supported in `clang`
- [ ] `m_UAVsAtEveryStage`
       Set if Validator Ver < 1.8, has UAVs and shader is not cs or ps.
       Set if Validator Ver > 1.8, has UAVs and shader is vs, hs, ds or ds
- [ ] `m_bCSRawAndStructuredViaShader4X`
       Set if shader uses Raw or Structured buffers, SM Major is > 4 and is a compute shader

AC:
- Decide if the command-line options `-enable-16bit-types` and `-all-resources-bound` of `dxc` need 
   to be supported in `clang`. Add support if so.
- Add tests for each of the above 6 flags.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVV9P67gT_TTuyyhR4pb-echDoCBd6QI_US7i7ScnnjRGrh15nHa7n35lJ4Vb4N5ld3kIUu0zZ47nzIwgUluDWLCLS3axnojet9YVVSuckAfxcpxUVh4LKKUE6rvOOg_eQm21xtpDY7W2B2W20GixJTDWg8QOjUTjwRpQhrzra6-sIaj6-NteaCWFtw726EhZw_gV7KzsNULnbIfOKySwDrxwW_RArZDogLzYIsvWLCsTYBeXwC7WAGye7f5frRWJSuN959VO_SkiH5tnw20Y_zboQTVgf74EwiHIAS2B8SWbZ8l9FrB89Z5s4Cq1fkCyvauRLm1v5BvRyFDb3U4YmWhlMNJZE7CJ0DpxJ2hSjVhQBNRhrRqFcgx0d_94zaYlPFqoEISUKMEafQzRfYv_lME24VT-UZ_ohlKiBBVxtRZm-yrjveAfhHfCqz1-t4f_OaxVLNpXRaMJb5vk80r5xB87pPeaQRgJm6HIt1aiDqfzlAcLaOHRnZXx9DTfwksoipHQRw8pk3Sn_IKjcCzooOFWmbPs-Spgg2UJfQqfa39AuhXHO-tLrQR9WbRDSnbimIgRFZgYL-_uHxkvf1Je3q0BlW9fNSawfv72HZ6GzgA2vYY8XcR7TW9iI0FPSPCjfCK4fzh3OHzEX7Hp-jVEBHUOKbTnVttKaH2E8xj_1nofJP8n04VMS3-9R3fcxL5_18zj-z-9zpIndEEt5OkyeKEV4xMFb40DZKx2HWdLR-lXAl7_TcA9xcP4lTGwpM-ddLV5EIfSyE0ciL1D-aTE4PrZ8y_kjTyx4A_iEMK_waHqmwZdpN7cwq14sTGlkPQspqkIRKhX13scYw0sw7e8YtPylOwaayXxN0Wm33RzIPvq-DEYBu1JrI8u-5U10rPFEx7EpqeEw4lH8gSNdYCibgNPSF5Udo8wH3ZSOpHFVK6mKzHBIl_w5XyxWPLFpC1k3oh8LjOcrqRYNrNmWi9zUU2XMufTJeYTVfCMz_Isz3mWL7JF2qxWWGdNPV9eIJdVzmYZ7oTSqdb7XWrddqKIeiwCYDabaFGhprhaOTd4gHjKOA-b1hUBlFT9ltgs04o8vYXxyuu4k9fKYe2fg4uuxp07emJYuJWg2J4f92dwxSf7M1jowwKe9E4XrfcdBUPwG8Zvtsq3fZXWdsf4Tchr_Jd0zr5g7Rm_iWqI8ZtR7r7gfwUAAP__MmSi9w">