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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Support noinline attribute to prevent automatic inlining
        </td>
    </tr>

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

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

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

<pre>
    #89282 will result in inlining all non-entry functions. That isn't quite right as functions with the `noinline` attribute shouldn't be. 

### Deliverables

Fully document how `noinline` should work in the context of passed resources and different qualifiers including the notoriously buggy `globallycoherent` and `precise` qualifiers. There is a chance that these will depend on further outside specification of how these qualifiers are expected to work. 

Support for `noinline` in HLSL and the resulting functions remaining as separate calls in the output DXIL or SPIR-V. 

### Acceptance Criteria

A large swath of tests that verify that an assortment of user functions with different parameters, return values, semantics and other qualifiers correctly retain those features when they are called independently. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0lFGP6jYQhX-NeRktCiYsyUMethehXmkfqm5V9dVxJol7jZ07M4bNv6-c7Ba6UiUEiHjGc75zGMPshoDYqMMv6nDamCRjpGaKN239j00bu7lRel_VutJwc94DIScv4AK44F1wYQDjPYQYnjAIzdCnYMXFwFv4YzQCjoPSR4GfyQkCuWEUMHw_BjcnI8iIoJ6LEJeuqJ4LMCLk2iQIPMbku7VNi1tQxUkVLx_ver--4ITeXZFM65EfT5yT9zN00aYLBoEx3r7etPaHW6QfWViexcYg-C4Qe5gMM3ZZeExkkcGEDjrX90i5389kvOsdEoML1qcuI8ktQpRILib2M7RpGOZ87eBja7yfbRyX8kVo6PKjidA6Xga698wQkRAcgwE7mmARJGOVERlXSzqcMHQQA_SJZESCmIRdh8ATWtc7azLprCWLXysfxjaEgO8TWsEOJC4c_gv5LU1TJIE-0ld2LsCvr2-vi4ises1HZnB3mPBiPqLCwDgZMoJgjff8yTsmmZLA6a_vrxAJ3n77_vvTn__n9Iu1OMnC4hs5QXLm8eALeEMDAt-MjFm1IAuv2K5Irp_X7yaAYY4kSy5iD4mRvgbzbnQe-4KCxEp_A0JJFOBqfMLlB8aLCeLsmo-4-PAA2UYitOLnXGkW1ZERejSSCBluIy4k5sWOzAY7cGH1FoP4eQubrtl39b42G2x2x92-qmtd7jZjg7uyb3e7oj7auqx2ZVkdra0Kg11R9eZQb1yjC10Wpd7v6uKod9u-O-hjfWzLZ9y3-7ZUZZFN8lvvr5dtpGHjmBM2VV0VzxtvWvS8LAmtA95geai0zjuDmlzz1KaBVVl4x8L3LuLEL9slh0QdTvAZpc8MPfzNJcJEeM2sTZJ4MeLsv1tmk8g3o8jEav-i9Fnp8-BkTO3WxovS53zjx8fTRPFvtKL0eZmTlT4vOv4JAAD__1y_sME">