If a member-wise assignment from a non-flattened struct to a flattened struct sees a complex R-value (not a symbol), it now creates a temporary to hold that value, to avoid repeating the R-value. This avoids, e.g, duplicating a whole function call. Also, it avoids re-using the AST node, making a new one for each member inside the member loop. The latter (re-use of AST node) was also an issue in the GetDimensions intrinsic decomposition, so this PR fixes that one too. |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| hlslGrammar.cpp | ||
| hlslGrammar.h | ||
| hlslOpMap.cpp | ||
| hlslOpMap.h | ||
| hlslParseables.cpp | ||
| hlslParseables.h | ||
| hlslParseHelper.cpp | ||
| hlslParseHelper.h | ||
| hlslScanContext.cpp | ||
| hlslScanContext.h | ||
| hlslTokens.h | ||
| hlslTokenStream.cpp | ||
| hlslTokenStream.h | ||