<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tests/bugs/texture2d-ms.hlsl.expected, branch master</title>
<subtitle>Making it easier to work with shaders</subtitle>
<id>https://git.yummers.dev/slang.git/atom?h=master</id>
<link rel='self' href='https://git.yummers.dev/slang.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/'/>
<updated>2019-10-24T19:18:34+00:00</updated>
<entry>
<title>Strip IR after front-end steps are done (#1092)</title>
<updated>2019-10-24T19:18:34+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2019-10-24T19:18:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=58ad4b1a9ca43098a071c42bd752a4a48405bf0e'/>
<id>urn:sha1:58ad4b1a9ca43098a071c42bd752a4a48405bf0e</id>
<content type='text'>
* Strip IR after front-end steps are done

The main feature of this change is to unconditonally strip out the `IRHighLevelDeclDecoration`s in an IR module once the "mandatory" IR passes in the front end have run. This ensures that later IR passes (e.g., code emission) *cannot* rely on AST-level information to get their job done.

Since I was already writing a pass to remove some instructions at the end of the front-end passes, I went ahead and also made the `-obfuscate` flag apply to the front-end IR generation by causing it to strip `IRNameHintDecoration`s while it is doing the other stripping. With this, the main identifying information left in IR modules (other than semantics and entry-point names) is mangled name strings for imported/exported symbols.

A few other things got changes along the way:

* Removed the `.expected` file for one of the tests, where that file seemingly shouldn't have been checked in at all.

* Updated the signature of the DCE pass both so that it doesn't require a back-end compile request (it wasn't using it anyway), and so that it takes some options to decide whether to keep symbols marked `[export(...)]` alive (the front-end wants to keep these, while back-end passes currently need to be able to eliminate them).

* Moved the `obfuscateCode` flag from the back-end compile request to the base class shared between front- and back-end requests, and updated the options and repro logic to set both as needed. An obvious improvement in the future would be to have the front- and back-end requests share these settings by referencing a single common object in the end-to-end case, rather than each having their own copy.

* Removed logic that was keeping layout instructions alive in DCE, even if they weren't used. This seems to have been a vestige of an intermediate step between AST and IR layout.

* fixup: add the new files
</content>
</entry>
<entry>
<title>Fix a typo in core.meta.slang which was causing an assert when (#1024)</title>
<updated>2019-08-16T15:30:48+00:00</updated>
<author>
<name>Robert Stepinski</name>
<email>rob.stepinski@gmail.com</email>
</author>
<published>2019-08-16T15:30:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c4541e83b4a57d8317932bc4277ee6a2d45bb2f6'/>
<id>urn:sha1:c4541e83b4a57d8317932bc4277ee6a2d45bb2f6</id>
<content type='text'>
compiling shaders that used texture2DMS Load() operations</content>
</entry>
</feed>
