diff options
| author | Tim Foley <tfoley@nvidia.com> | 2018-05-10 20:28:39 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2018-05-10 20:28:39 -0700 |
| commit | 4e07e22f5d6b62481108f620d28c24e480dfff7a (patch) | |
| tree | d8cd92fb4727955f01e945701998b4d480dca507 /source/slang/parameter-binding.cpp | |
| parent | 140e51e8f9f3b966372efef112f00aa931dd0ca5 (diff) | |
Workaround for cases where we emit illegal-but-unused types
This is a quick workaround to deal with cases where we try to emit an unreferenced IR type that contains references to pre-legalization types (which might have been removed from the IR even thought they are still referenced). The basic fix is to *not* add types to our global order of instructions to emit by default, and only add them on demand as they are referenced by other instructions.
This is not a real fix for the underlying issue, which is that type legalization is only being applied to a subset of global instructions instead of all of them. A more detailed fix for that problem will need to be devised next.
This fix also doesn't address the question of why an unreferenced `struct` type came to be present in the IR code passed to the back-end in the first place. It would be good to understand how this scenario is arising.
Diffstat (limited to 'source/slang/parameter-binding.cpp')
0 files changed, 0 insertions, 0 deletions
