<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/CodeGen/CGHLSLRuntime.cpp, branch users/chapuni/cov/single/condop</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[HLSL][SPIR-V] implement SV_GroupID semantic lowering (#121521)</title>
<updated>2025-01-04T22:02:39+00:00</updated>
<author>
<name>Zhengxing li</name>
<email>zhengxingli@microsoft.com</email>
</author>
<published>2025-01-04T22:02:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7a761100960c0c9e2b2fa8a9ee233b137270bd73'/>
<id>7a761100960c0c9e2b2fa8a9ee233b137270bd73</id>
<content type='text'>
The HLSL SV_GroupID semantic attribute is lowered into
@llvm.spv.group.id intrinsic in LLVM IR for SPIR-V target.

In the SPIR-V backend, this is now translated to a `WorkgroupId` builtin
variable.

Fixes #118700 which's a follow-up work to #70120</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The HLSL SV_GroupID semantic attribute is lowered into
@llvm.spv.group.id intrinsic in LLVM IR for SPIR-V target.

In the SPIR-V backend, this is now translated to a `WorkgroupId` builtin
variable.

Fixes #118700 which's a follow-up work to #70120</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Fix call convention mismatch for ctor/dtor (#118651)</title>
<updated>2024-12-17T12:26:03+00:00</updated>
<author>
<name>Nathan Gauër</name>
<email>brioche@google.com</email>
</author>
<published>2024-12-17T12:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=52b07d971c89ab8fbcc497f22c43931b488256ea'/>
<id>52b07d971c89ab8fbcc497f22c43931b488256ea</id>
<content type='text'>
Before this patch, there was a calling-convention mismatch between the
constructors and the actual call emitted for the entrypoint wrapper.

Such mismatch causes the InstCombine pass to replace this call with an
`unreachable`, breaking the whole function.

Signed-off-by: Nathan Gauër &lt;brioche@google.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before this patch, there was a calling-convention mismatch between the
constructors and the actual call emitted for the entrypoint wrapper.

Such mismatch causes the InstCombine pass to replace this call with an
`unreachable`, breaking the whole function.

Signed-off-by: Nathan Gauër &lt;brioche@google.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Implement SV_GroupThreadId semantic (#117781)</title>
<updated>2024-12-10T21:18:49+00:00</updated>
<author>
<name>Zhengxing li</name>
<email>zhengxingli@microsoft.com</email>
</author>
<published>2024-12-10T21:18:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=951a284fdff43f9b3aa2d2dbb2d01bbce3ab0673'/>
<id>951a284fdff43f9b3aa2d2dbb2d01bbce3ab0673</id>
<content type='text'>
Support HLSL SV_GroupThreadId attribute.

For `directx` target, translate it into `dx.thread.id.in.group` in clang
codeGen and lower `dx.thread.id.in.group` to `dx.op.threadIdInGroup` in
LLVM DirectX backend.

For `spir-v` target, translate it into `spv.thread.id.in.group` in clang
codeGen and lower `spv.thread.id.in.group` to a `LocalInvocationId`
builtin variable in LLVM SPIR-V backend.

Fixes: #70122</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support HLSL SV_GroupThreadId attribute.

For `directx` target, translate it into `dx.thread.id.in.group` in clang
codeGen and lower `dx.thread.id.in.group` to `dx.op.threadIdInGroup` in
LLVM DirectX backend.

For `spir-v` target, translate it into `spv.thread.id.in.group` in clang
codeGen and lower `spv.thread.id.in.group` to a `LocalInvocationId`
builtin variable in LLVM SPIR-V backend.

Fixes: #70122</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Implement SV_GroupID semantic (#115911)</title>
<updated>2024-11-26T18:45:31+00:00</updated>
<author>
<name>Zhengxing li</name>
<email>zhengxingli@microsoft.com</email>
</author>
<published>2024-11-26T18:45:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5fd4f32f985f83414d82a1c2c55741e363693352'/>
<id>5fd4f32f985f83414d82a1c2c55741e363693352</id>
<content type='text'>
Support SV_GroupID attribute.
Translate it into dx.group.id in clang codeGen.

Fixes: #70120</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support SV_GroupID attribute.
Translate it into dx.group.id in clang codeGen.

Fixes: #70120</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Remove old resource annotations for UAVs and SRVs (#114139)</title>
<updated>2024-10-30T21:06:42+00:00</updated>
<author>
<name>Helena Kotas</name>
<email>hekotas@microsoft.com</email>
</author>
<published>2024-10-30T21:06:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=74d8f3952c4acf6d57948983d7c5b0d0a7763c28'/>
<id>74d8f3952c4acf6d57948983d7c5b0d0a7763c28</id>
<content type='text'>
UAVs and SRVs have already been converted to use LLVM target types and
we can disable generating of the !hlsl.uavs and !hlsl.srvs! annotations.
This will enable adding tests for structured buffers with user defined
types that this old resource annotations code does not handle (it
crashes).

Part 1 of #114126</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
UAVs and SRVs have already been converted to use LLVM target types and
we can disable generating of the !hlsl.uavs and !hlsl.srvs! annotations.
This will enable adding tests for structured buffers with user defined
types that this old resource annotations code does not handle (it
crashes).

Part 1 of #114126</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL][SPIRV] Add convergence tokens to entry point wrapper (#112757)</title>
<updated>2024-10-28T17:25:04+00:00</updated>
<author>
<name>Steven Perron</name>
<email>stevenperron@google.com</email>
</author>
<published>2024-10-28T17:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=98e3075df992636fa42aafde96748d1d5c834688'/>
<id>98e3075df992636fa42aafde96748d1d5c834688</id>
<content type='text'>
Inlining currently assumes that either all function use controled
convergence or none of them do. This is why we need to have the entry
point wrapper use controled convergence.


https://github.com/llvm/llvm-project/blob/c85611e8583e6392d56075ebdfa60893b6284813/llvm/lib/Transforms/Utils/InlineFunction.cpp#L2431-L2439</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Inlining currently assumes that either all function use controled
convergence or none of them do. This is why we need to have the entry
point wrapper use controled convergence.


https://github.com/llvm/llvm-project/blob/c85611e8583e6392d56075ebdfa60893b6284813/llvm/lib/Transforms/Utils/InlineFunction.cpp#L2431-L2439</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Add handle initialization for simple resource declarations (#111207)</title>
<updated>2024-10-18T00:59:08+00:00</updated>
<author>
<name>Helena Kotas</name>
<email>hekotas@microsoft.com</email>
</author>
<published>2024-10-18T00:59:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7dbfa7b981417773d01c52b0d716d592870081bb'/>
<id>7dbfa7b981417773d01c52b0d716d592870081bb</id>
<content type='text'>
Adds `@_init_resource_bindings()` function to module initialization that
includes `handle.fromBinding` intrinsic calls for simple resource
declarations. Arrays of resources or resources inside user defined types
are not supported yet.

While this unblocks our progress on [Compile a runnable shader from
clang](https://github.com/llvm/wg-hlsl/issues/7) milestone, this is
probably not the way we would like to handle resource binding
initialization going forward. Ideally, it should be done via the
resource class constructors in order to support dynamic resource binding
or unbounded arrays if resources.

Depends on PRs #110327 and #111203.

Part 1 of #105076</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds `@_init_resource_bindings()` function to module initialization that
includes `handle.fromBinding` intrinsic calls for simple resource
declarations. Arrays of resources or resources inside user defined types
are not supported yet.

While this unblocks our progress on [Compile a runnable shader from
clang](https://github.com/llvm/wg-hlsl/issues/7) milestone, this is
probably not the way we would like to handle resource binding
initialization going forward. Ideally, it should be done via the
resource class constructors in order to support dynamic resource binding
or unbounded arrays if resources.

Depends on PRs #110327 and #111203.

Part 1 of #105076</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL][SPIRV] Fix calling convention for call in entry function. (#110542)</title>
<updated>2024-10-01T13:29:20+00:00</updated>
<author>
<name>Steven Perron</name>
<email>stevenperron@google.com</email>
</author>
<published>2024-10-01T13:29:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=be6b4f69799861dc1f175a53c9a15d3c8afd3ed2'/>
<id>be6b4f69799861dc1f175a53c9a15d3c8afd3ed2</id>
<content type='text'>
Fix the calling convention used for the call in the entry point
wrapper. No calling convention is currently set. It can easily use the
calling convention of the function that is being called.

Without this, there is a mismatch in the calling convention between the
call site and the callee. This is undefined behaviour.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the calling convention used for the call in the entry point
wrapper. No calling convention is currently set. It can easily use the
calling convention of the function that is being called.

Without this, there is a mismatch in the calling convention between the
call site and the callee. This is undefined behaviour.</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] generate hlsl.wavesize attribute (#107176)</title>
<updated>2024-09-18T03:00:13+00:00</updated>
<author>
<name>Xiang Li</name>
<email>python3kgae@outlook.com</email>
</author>
<published>2024-09-18T03:00:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0f77bdd2c9bed6db6c2b9e10e05b5e99fde13d66'/>
<id>0f77bdd2c9bed6db6c2b9e10e05b5e99fde13d66</id>
<content type='text'>
Generate function attribute hlsl.wavesize from [WaveSize].

For #70118</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generate function attribute hlsl.wavesize from [WaveSize].

For #70118</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[HLSL] set alwaysinline on HLSL functions (#106588)"</title>
<updated>2024-09-17T22:54:52+00:00</updated>
<author>
<name>Thurston Dang</name>
<email>thurston@google.com</email>
</author>
<published>2024-09-17T22:54:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b89bb7775d155fc787ab3170f3fa38449069ecb3'/>
<id>b89bb7775d155fc787ab3170f3fa38449069ecb3</id>
<content type='text'>
This reverts commit 4a63f4d301c0e044073e1b1f8f110015ec1778a1.

It was reverted because of a buildbot breakage, but the fix-forward has
landed (https://github.com/llvm/llvm-project/pull/109023).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 4a63f4d301c0e044073e1b1f8f110015ec1778a1.

It was reverted because of a buildbot breakage, but the fix-forward has
landed (https://github.com/llvm/llvm-project/pull/109023).
</pre>
</div>
</content>
</entry>
</feed>
