<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-ast-substitutions.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>2023-08-04T22:47:39+00:00</updated>
<entry>
<title>Redesign `DeclRef` and systematic `Val` deduplication (#3049)</title>
<updated>2023-08-04T22:47:39+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-08-04T22:47:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a2d90fb275962da84611160f8ddd74d934a68dbd'/>
<id>urn:sha1:a2d90fb275962da84611160f8ddd74d934a68dbd</id>
<content type='text'>
* Redesign DeclRef + Deduplicate Val.

* Update project files

* Fix warning.

* Fix.

* Fix.

* Remove `Val::_equalsImplOverride`.

* Rmove `Val::_getHashCodeOverride`.

* Remove `semanticVisitor` param from `resolve`.

* Cleanups.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Simplify Lookup and improve compiler performance. (#2996)</title>
<updated>2023-07-18T15:08:11+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-07-18T15:08:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4cb3eeb832b5fb29a61f2934b3daa5e42a3d6cde'/>
<id>urn:sha1:4cb3eeb832b5fb29a61f2934b3daa5e42a3d6cde</id>
<content type='text'>
* Simplify lookup.

* Various bug fixes.

* Report type dictionary size in perf benchmark.

* Remove type duplication.

* increase initial dict size.

* Bug fix.

* Fix bugs.

* Fixup.

* Revert type legalization looping.

* Fix specialization pass.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Clean up type checking of higher order expressions. (#2519)</title>
<updated>2022-11-16T20:17:49+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2022-11-16T20:17:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=801aa3b44254341018a1acbe754f2ce3b0900e2a'/>
<id>urn:sha1:801aa3b44254341018a1acbe754f2ce3b0900e2a</id>
<content type='text'>
* Clean up type checking of higher order expressions.

* Replace `goto` with `break` to pacify clang.

* Fix.

* Fixes.

* Fix more tests.

* Fix lowerWitnessTable parameter error.

* Exclude attributes from ast printing.

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Deduplicate AST type nodes and cache lookup operations. (#2397)</title>
<updated>2022-09-13T20:11:48+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2022-09-13T20:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f216b77752b9e4aea52882b2110ceb1cc64a2171'/>
<id>urn:sha1:f216b77752b9e4aea52882b2110ceb1cc64a2171</id>
<content type='text'>
* wip: dedup AST type nodes and cache lookup.

* Fix.

* Remove profiling.

* Fixes.

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Remove GlobalGenericParamSubstitution (#1684)</title>
<updated>2021-02-02T23:45:19+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2021-02-02T23:45:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a1d543d9b1bf3b2bcd813a498d2d3e24de67106d'/>
<id>urn:sha1:a1d543d9b1bf3b2bcd813a498d2d3e24de67106d</id>
<content type='text'>
The `GlobalGenericParamSubsitution` class used to be used to represent the mapping of global-scope generic parameters to their concrete arguments, so that we could make use of those concrete arguments for things like layout. That representation caused a lot of pain for other parts of the compiler, though, because everything that dealt with `Substitution`s needed to account for the possibility of global-generic-param subsitutions even if they logically could not occur in most parts of the compiler.

We have since moved to a model where the values for global-scope generic parameters are stored in a single explicit global structure that is used by both layout computation and IR lowering. There is no actual code that construct `GlobalGenericParamSubstitution`s from scratch any more, so all of the support code for them was actually unused.

This change removes all the unused code, and shows that the tests still pass without it (even the tests that use global-scope generic parameters).</content>
</entry>
<entry>
<title>Single pass C++ extraction (#1583)</title>
<updated>2020-10-22T12:46:12+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-10-22T12:46:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=10e1bae34733f1cdb5abc001666b1aafa1c1f406'/>
<id>urn:sha1:10e1bae34733f1cdb5abc001666b1aafa1c1f406</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Added CharUtil.
Added TypeSet to extractor.
First pass at being able to specify all headers for multiple output headers.

* Fix includes for new C++ extractor convension.
Update premake5 to use new extractor mechanisms.

* Small improvements around StringUtil.

* Split out NameConventionUtil.

* Use a 'convert' to convert between convention types.

* Fix output of build message for C++ extractor.
Improve NameConventionUtil interface.

* Improve comments.

* Fix warning on gcc.

* Fix clang warning.

* Fix some typos in NameConventionUtil.

* Small fix to premake5.lua

* Fix generated includes.

* Remove m_reflectType as no longer applicable with TypeSet.

* Fix .gitignore for slang-generated-* files.
Added getConvention to determine convention from slice.
Add versions of split and convert that infer the from convention

* Fix typo in spliting camel.

* LineWhitespace -&gt; HorizontalWhitespace

* Improve CharUtil comments.</content>
</entry>
<entry>
<title>ASTNodes use MemoryArena (#1376)</title>
<updated>2020-06-05T22:20:09+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-06-05T22:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=43c146794aab638924d2ab838d10f8af2ebf02a7'/>
<id>urn:sha1:43c146794aab638924d2ab838d10f8af2ebf02a7</id>
<content type='text'>
* Add a ASTBuilder to a Module
Only construct on valid ASTBuilder (was being called on nullptr on occassion)

* Add nodes to ASTBuilder.

* Compiles with RefPtr removed from AST node types.

* Initialize all AST node pointer variables in headers to nullptr;

* Initialize AST node variables as nullptr.
Make ASTBuilder keep a ref on node types.
Make SyntaxParseCallback returns a NodeBase

* Don't release canonicalType on dtor (managed by ASTBuilder).

* Give ASTBuilders a name and id, to help in debugging.
For now destroy the session TypeCache, to stop it holding things released when the compile request destroys ASTBuilders.

* Moved the TypeCheckingCache over to Linkage from Session.

* NodeBase no longer derived from RefObject.

* Only add/dtor nodes that need destruction.
First pass compile on linux.</content>
</entry>
<entry>
<title>Devirtualize AST types (#1368)</title>
<updated>2020-06-03T21:22:48+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-06-03T21:22:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1b8731c809761c4e2dbec81dcee207f8a4621903'/>
<id>urn:sha1:1b8731c809761c4e2dbec81dcee207f8a4621903</id>
<content type='text'>
* Make getSup work with more general non-virtual 'virtual' mechanism.

* WIP: Non virtual AST types.

* Project change.

* Type doesn't implement equalsImpl

* Fix macro invocation
Make Overridden functions public to make simply accessible by base types.

* Use SLANG_UNEXPECTED.

* GetScalarType -&gt; getScalarType
Use SLANG_UNEXPECTED instead on ASSERT in NamedExpressionType and TypeType</content>
</entry>
</feed>
