An HLSL function has internal linkage by default unless it is: 1. shader entry point function 2. marked with the `export` keyword (https://github.com/llvm/llvm-project/issues/92812) 3. patch constant function (not implemented yet) This PR adds a link-time pass `DXILFinalizeLinkage` that updates the linkage of functions to make sure only shader entry points and exported functions are visible from the module (have _program linkage_). All other functions will be updated to have internal linkage. Related spec update: microsoft/hlsl-specs#295 Fixes #llvm/llvm-project#92071
1.9 KiB
1.9 KiB