<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-ir-clone.cpp, 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>2025-07-21T16:30:24+00:00</updated>
<entry>
<title>Add utility to trace creation of problematic IRInsts to assist LLM in debugging (#7820)</title>
<updated>2025-07-21T16:30:24+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-21T16:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=368ddbb7b99dfb939d20f53c35d05b2b4758bd64'/>
<id>urn:sha1:368ddbb7b99dfb939d20f53c35d05b2b4758bd64</id>
<content type='text'>
* Initial plan

* Add SLANG_DEBUG_IR_BREAK environment variable support

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Apply code formatting to SLANG_DEBUG_IR_BREAK implementation

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Improve stack trace debugging with -rdynamic flag and backtrace_symbols

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: use PlatformUtil::getEnvironmentVariable, remove -rdynamic flag, and delete fallback branch

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: simplify env var parsing, move backtrace to PlatformUtil, use #if for SLANG_LINUX_FAMILY

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: remove unneeded include, make backtrace() more generic by removing uid parameter

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Fix and clone source tracking.

* Add python script to dump traces.

* Update instructions.

* Batch calls to addr2line

* Cleanup claude instructions.

* update claude action.

* Remove duplicated build instructions from claude.yml workflow

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* fix build error.

* Fix build errors

---------

Co-authored-by: copilot-swe-agent[bot] &lt;198982749+Copilot@users.noreply.github.com&gt;
Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;
Co-authored-by: Gangzheng Tong &lt;tonggangzheng@gmail.com&gt;</content>
</entry>
<entry>
<title>Fix SPIRV `OpSpecConstantOp` emit (#7158)</title>
<updated>2025-05-30T05:04:27+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-05-30T05:04:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=aa3e6bdbe024355b07f6a61806024b248528fe4b'/>
<id>urn:sha1:aa3e6bdbe024355b07f6a61806024b248528fe4b</id>
<content type='text'>
* Fix SPIRV specialization constant with floating-point operations

* Improve test

* WIP

* Restrict `OpSpecConstantOp` allowed operations based on SPIRV specifications

* Fix typo on floating type check

* Emit error on float to int spec cosnt int val casts</content>
</entry>
<entry>
<title>Implement spec const for generic parameter (#7121)</title>
<updated>2025-05-15T16:59:15+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-05-15T16:59:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b325474c4aba52cca7e0bcd4eae02d23ca4ab9a3'/>
<id>urn:sha1:b325474c4aba52cca7e0bcd4eae02d23ca4ab9a3</id>
<content type='text'>
Close #6840.

This PR add supports to use specialize constant in generic parameter, and that parameter can also be used as array size, e.g. following code should work:

```
struct MyStruct&lt;let N: int&gt; { float buffer[N]; }
MyStruct&lt;SpecConstVar&gt; s;
```

- Loose the restriction from Link-Time to SpecializationConstant when extract generic argument
- Tweak the logic of how we decide whether a inst is hoistable. Besides checking existing hoistable flag of each 
  IRInst, when we detect a IRInst's type is SpecConstRateType, we will treat that inst hoistable. Because IRInst in 
  global scope can be deduplicated, and every SpecConstRateType inst should be in the global scope or IRGeneric 
  scope (which will be at global scope after specialization).
- Remove the SpecConstIntVal to IRInst map in IR lowering logic, because we already have way to deduplicate the 
  global scope IR.</content>
</entry>
<entry>
<title>Fixed generic interface specialization crashes (#6601): (#6688)</title>
<updated>2025-04-03T04:17:15+00:00</updated>
<author>
<name>Ronan</name>
<email>ro.cailleau@gmail.com</email>
</author>
<published>2025-04-03T04:17:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=6b44630afe4ff180ba608142e9515abcd369775e'/>
<id>urn:sha1:6b44630afe4ff180ba608142e9515abcd369775e</id>
<content type='text'>
* Fixed generic interface specialization crashes:

- Add an export decoration to specialized generic interfaces.

* Fixed generic interface specialization crashes:

- Add an export decoration to specialized generic interfaces.
- Use getTypeNameHint(...) instead of a manual mangler.

* In cloneInstDecorationsAndChildren: specialize all linkage decorations, not just the exports.

- If a linkage decoration is already present, it is not specialized and replaced by the specialized one.
- If a specialization uses the TypeNameHint, sanitize it to be used as an identifier.
- Use the identifier name sanitizer from slang-mangle.

* Added tests/generics/generic-interface-linkage.slang

- See #6601 and #6688</content>
</entry>
<entry>
<title>Fix nullptr in generic specialization (#6066)</title>
<updated>2025-01-17T16:58:18+00:00</updated>
<author>
<name>Julius Ikkala</name>
<email>julius.ikkala@gmail.com</email>
</author>
<published>2025-01-17T16:58:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ddc4a1799a9d21084604cc2bf334d5d91cb329e3'/>
<id>urn:sha1:ddc4a1799a9d21084604cc2bf334d5d91cb329e3</id>
<content type='text'>
* Fix nullptr in generic specialization

* Fix formatting

* Revert "Fix nullptr in generic specialization" and add emitPtrLit instead

* Add type parameter to getPtrValue()

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>format</title>
<updated>2024-10-29T06:49:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-10-29T06:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21'/>
<id>urn:sha1:f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21</id>
<content type='text'>
* format

* Minor test fixes

* enable checking cpp format in ci</content>
</entry>
<entry>
<title>Report AD checkpoint contexts (#5058)</title>
<updated>2024-09-19T03:42:07+00:00</updated>
<author>
<name>venkataram-nv</name>
<email>vedavamadath@nvidia.com</email>
</author>
<published>2024-09-19T03:42:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b808aa4df50d46eaa569561f7e464c55c1c2d72a'/>
<id>urn:sha1:b808aa4df50d46eaa569561f7e464c55c1c2d72a</id>
<content type='text'>
* Transferring source locations when creating phi instructions

* Tracking for simple variables

* Deriving source locations for loop counters

* Printing checkpoint structure breakdown

* More readable output format

* Special behavior for loop counters

* Writing report to file

* Add slangc option to enable checkpoint reports

* Display types of checkpointed fields

* Message in case there are no checkpointing contexts

* Catch source locations for function calls

* Source cleanup

* Fix compilation warnings

* Remove stray dump()

* Provide the report through diagnostic notes

* Add missing path for sourceLoc during unzip pass

* Add tests for reporting intermediates

* Include more transfer cases for source locations

* Fix ordering in address elimination

* Fill in more holes with source location transfer

* Remove debugging line

* Reverting changes to diagnostic sink

* Simplify address elimination using source location RAII contexts

* Eliminating manual source loc transfers in forward transcription

* Fix local var adaptation to use RAII location setter

* Simplify primal hoisting logic for source location transfer

* Simplify unzipping with RAII location scopes

* Simplify transpose logic

* Cleaning up for rev.cpp

* Reverting spacing changes

* Fix mistake with source loc RAII instantiation

* Fix formatting issues</content>
</entry>
<entry>
<title>Support dependent generic constraints. (#4870)</title>
<updated>2024-08-21T03:51:57+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-08-21T03:51:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f9f6a28df40f418ddd0c8ff3b9cacccdb085e202'/>
<id>urn:sha1:f9f6a28df40f418ddd0c8ff3b9cacccdb085e202</id>
<content type='text'>
* Support dependent generic constraints.

* Fix warning.

* Update comment.

* Fix.

* Add a test case to verify fix of #3804.

* Address review.</content>
</entry>
<entry>
<title>Initial support for differentiating existential types (#3111)</title>
<updated>2023-08-17T18:45:13+00:00</updated>
<author>
<name>Sai Praveen Bangaru</name>
<email>31557731+saipraveenb25@users.noreply.github.com</email>
</author>
<published>2023-08-17T18:45:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=945409c4c6871c18aad24086c594cc66b5913733'/>
<id>urn:sha1:945409c4c6871c18aad24086c594cc66b5913733</id>
<content type='text'>
* Merge

* WIP: Complete auto-diff logic for existential types

* Revert "Add compiler option for generating representative hash"

This reverts commit 13b09ef4621e73844c96d64d9c111a8ed0d45aae.

* More fixes for fwd-mode AD on existential types

* Add anyValueSize inference pass

* Fix checking of `Differential.Differential==Differential`

* In-progress: infer any-value-size for existential types

* Existentials now work in forward-mode

* Overhaul handling of existential AD types. Fwd-mode works, reverse-mode requires front-end changes

* Reverse-mode now works on existentials

* Cleanup

* Remove diff rules for create existential object for now

* Revert treat-as-differentiable changes

* Fixes

* More fixes

* Cleanup

* more cleanup

* signed/unsigned

* Revert "Cleanup"

This reverts commit e4f7d71f07bb207736f90708961eeecd09a1b652.

* Cleanup (again)

* Remove public/export/keep-alive on null differential after AD pass

* Minor fix

* Update dictionary accessors

* Keep export decoration

* More fixes + Support for `kIROp_PackAnyValue`

* Merge upstream

* Update expected-failure.txt</content>
</entry>
<entry>
<title>Dictionary using lowerCamel (#2835)</title>
<updated>2023-04-25T14:43:29+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2023-04-25T14:43:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7b7c095b37e85ca3a8f55eff1c3d9643d467b8e0'/>
<id>urn:sha1:7b7c095b37e85ca3a8f55eff1c3d9643d467b8e0</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP lowerCamel Dictionary.

* WIP more lowerCamel fixes for Dictionary.

* Add/Remove/Clear

* GetValue/Contains

* Fix tabs in dictionary.
Count -&gt; getCount

* Fix fields with caps.

* Key -&gt; key
Value -&gt; value
Use m_ for members where appropriate.
Use lowerCamel in linked list.

* Some small fixes/improvements to Dictionary.

* Kick CI.</content>
</entry>
</feed>
