<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/tools, branch main</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>[clang][NFC] Inline Frontend/FrontendDiagnostic.h -&gt; Basic/DiagnosticFrontend.h (#162883)</title>
<updated>2025-11-21T03:39:49+00:00</updated>
<author>
<name>Jordan Rupprecht</name>
<email>rupprecht@google.com</email>
</author>
<published>2025-11-21T03:39:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3d3307ecd8bdd6d9af0d82245c5fc50e4d624a7a'/>
<id>3d3307ecd8bdd6d9af0d82245c5fc50e4d624a7a</id>
<content type='text'>
d076608d58d1ec55016eb747a995511e3a3f72aa moved some deps around to avoid
cycles and left clang/Frontend/FrontendDiagnostic.h as a shim that
simply includes clang/Basic/DiagnosticFrontend.h. This PR inlines it so
that nothing in tree still includes clang/Frontend/FrontendDiagnostic.h.

Doing this will help prevent future layering issues. See #162865.

Frontend already depends on Basic, so no new deps need to be added
anywhere except for places that do strict dep checking.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
d076608d58d1ec55016eb747a995511e3a3f72aa moved some deps around to avoid
cycles and left clang/Frontend/FrontendDiagnostic.h as a shim that
simply includes clang/Basic/DiagnosticFrontend.h. This PR inlines it so
that nothing in tree still includes clang/Frontend/FrontendDiagnostic.h.

Doing this will help prevent future layering issues. See #162865.

Frontend already depends on Basic, so no new deps need to be added
anywhere except for places that do strict dep checking.</pre>
</div>
</content>
</entry>
<entry>
<title>[ClangLinkerWrapper] Refactor target ID sanitization for Windows file… (#168744)</title>
<updated>2025-11-20T01:22:22+00:00</updated>
<author>
<name>Yaxun (Sam) Liu</name>
<email>yaxun.liu@amd.com</email>
</author>
<published>2025-11-20T01:22:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9696949c3295c495e7337f4b1da9639610a15aa'/>
<id>f9696949c3295c495e7337f4b1da9639610a15aa</id>
<content type='text'>
… names

Fix non-RDC mode HIP compilation for the new driver on Windows due to
invalid temporary file names when offload arch is a target ID containing
':', which is invalid in file names on Windows.

Refactor the existing handling of ':' in file names on Windows from
clang driver into a shared function sanitizeTargetIDInFileName in
clang/Basic/TargetID.h. This function replaces ':' with '@' on Windows
only, preserving the original behavior.

Update both clang/lib/Driver/Driver.cpp and
clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp to use this
shared function, ensuring consistent handling across both tools.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
… names

Fix non-RDC mode HIP compilation for the new driver on Windows due to
invalid temporary file names when offload arch is a target ID containing
':', which is invalid in file names on Windows.

Refactor the existing handling of ':' in file names on Windows from
clang driver into a shared function sanitizeTargetIDInFileName in
clang/Basic/TargetID.h. This function replaces ':' with '@' on Windows
only, preserving the original behavior.

Update both clang/lib/Driver/Driver.cpp and
clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp to use this
shared function, ensuring consistent handling across both tools.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][clang-linker-wrapper] Use the correct triple for clang-offload-bundler and AMD SPIR-V. (#168521)</title>
<updated>2025-11-18T15:48:04+00:00</updated>
<author>
<name>Manuel Carrasco</name>
<email>Manuel.Carrasco@amd.com</email>
</author>
<published>2025-11-18T15:48:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=61c2cc9462d4cf4a1925975e34eed7122463ef16'/>
<id>61c2cc9462d4cf4a1925975e34eed7122463ef16</id>
<content type='text'>
`clang-linker-wrapper` was incorrectly calling `clang-offload-bundler`
for AMD SPIR-V. This resulted in a binary that couldn't be executed if
built using the new driver.

The runtime couldn't recognise the triple triggering this error at
execution time:

```
No compatible code objects found for: gfx90a:sramecc+:xnack-,
```

With this PR, this is solved:

```
Creating ISA for: gfx90a:sramecc+:xnack- from spirv
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`clang-linker-wrapper` was incorrectly calling `clang-offload-bundler`
for AMD SPIR-V. This resulted in a binary that couldn't be executed if
built using the new driver.

The runtime couldn't recognise the triple triggering this error at
execution time:

```
No compatible code objects found for: gfx90a:sramecc+:xnack-,
```

With this PR, this is solved:

```
Creating ISA for: gfx90a:sramecc+:xnack- from spirv
```</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream the initial BlockAddressOp implementation (#168151)</title>
<updated>2025-11-17T18:01:04+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-11-17T18:01:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=05bd742ad790f207f5c94c4bf327d3e87b8819dc'/>
<id>05bd742ad790f207f5c94c4bf327d3e87b8819dc</id>
<content type='text'>
This PR adds initial support for codegen of `blockAddressOp`. This is
emitted when using the GNU extension labels as values. The operation is
used together with `indirectBrOp`, which will be implemented in a future
PR. Lowering will be added in a later PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds initial support for codegen of `blockAddressOp`. This is
emitted when using the GNU extension labels as values. The operation is
used together with `indirectBrOp`, which will be implemented in a future
PR. Lowering will be added in a later PR.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang-format]: Fix JSON casing (#168156)</title>
<updated>2025-11-16T16:01:06+00:00</updated>
<author>
<name>Anton Kesy</name>
<email>antonkesy@gmail.com</email>
</author>
<published>2025-11-16T16:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e8cc0c3eb82789c9d2a22e094a941be180e9ab4b'/>
<id>e8cc0c3eb82789c9d2a22e094a941be180e9ab4b</id>
<content type='text'>
This commit aligns the user clang-format output to always show JSON, not Json.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit aligns the user clang-format output to always show JSON, not Json.</pre>
</div>
</content>
</entry>
<entry>
<title>HIP non-RDC: enable new offload driver on Windows via linker wrapper (#167918)</title>
<updated>2025-11-15T13:44:32+00:00</updated>
<author>
<name>Yaxun (Sam) Liu</name>
<email>yaxun.liu@amd.com</email>
</author>
<published>2025-11-15T13:44:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ea66d269a79d1c8186962fbe7ca8f84d84d61870'/>
<id>ea66d269a79d1c8186962fbe7ca8f84d84d61870</id>
<content type='text'>
Use clang linker wrapper to device-link and embed HIP fat binary
directly. Match CUDA non-RDC flow in new driver by producing .hipfb like
.fatbin.

Previously, llvm offload binary is used to package the device IR's and
embed them in the host object file, then clang linker wrapper is used
with each host object file to extract device IR's, perform device
linking, bundle code objects into a fat binary, wrap it in a host object
file, then merge it with the original host object by the host linker
with '-r' option. However, the host linker in MSVC toolchain does not
support '-r' option.

The new approach still package the device IR's with llvm offload binary,
but instead of embed it in a host object, it is passed to clang linker
wrapper directly, where device IR's are extracted and linked, fat binary
is generated, then embeded in the host object directly. Compared with
the old offload driver, this approach can parallelize the device linking
for different GPU's by using the parallelization feature of clang linker
wrapper.

Fixes: SWDEV-565994</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use clang linker wrapper to device-link and embed HIP fat binary
directly. Match CUDA non-RDC flow in new driver by producing .hipfb like
.fatbin.

Previously, llvm offload binary is used to package the device IR's and
embed them in the host object file, then clang linker wrapper is used
with each host object file to extract device IR's, perform device
linking, bundle code objects into a fat binary, wrap it in a host object
file, then merge it with the original host object by the host linker
with '-r' option. However, the host linker in MSVC toolchain does not
support '-r' option.

The new approach still package the device IR's with llvm offload binary,
but instead of embed it in a host object, it is passed to clang linker
wrapper directly, where device IR's are extracted and linked, fat binary
is generated, then embeded in the host object directly. Compared with
the old offload driver, this approach can parallelize the device linking
for different GPU's by using the parallelization feature of clang linker
wrapper.

Fixes: SWDEV-565994</pre>
</div>
</content>
</entry>
<entry>
<title>[offload-arch] Fix amdgpu-arch crash on Windows with ROCm 7.1 (#167695)</title>
<updated>2025-11-14T00:03:21+00:00</updated>
<author>
<name>Yaxun (Sam) Liu</name>
<email>yaxun.liu@amd.com</email>
</author>
<published>2025-11-14T00:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f93fcde52b99fa664385ac1c95e9e98f02459b49'/>
<id>f93fcde52b99fa664385ac1c95e9e98f02459b49</id>
<content type='text'>
The tool was crashing on Windows with ROCm 7.1 due to two issues: misuse
of hipDeviceGet which should not be used (it worked before by accident
but was undefined behavior), and ABI incompatibility from
hipDeviceProp_t struct layout changes between HIP versions where the
gcnArchName offset changed from 396 to 1160 bytes.

The fix removes hipDeviceGet and queries properties directly by device
index. It defines separate struct layouts for R0600 (HIP 6.x+) and R0000
(legacy) to handle the different memory layouts correctly.

An automatic API fallback mechanism tries R0600, then R0000, then the
unversioned API until one succeeds, ensuring compatibility across
different HIP runtime versions. A new --hip-api-version option allows
manually selecting the API version when needed.

Additional improvements include enhanced error handling with
hipGetErrorString, verbose logging throughout the detection process, and
runtime version detection using hipRuntimeGetVersion when available. The
versioned API functions provide stable ABI across HIP versions.

Fixes: SWDEV-564272</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The tool was crashing on Windows with ROCm 7.1 due to two issues: misuse
of hipDeviceGet which should not be used (it worked before by accident
but was undefined behavior), and ABI incompatibility from
hipDeviceProp_t struct layout changes between HIP versions where the
gcnArchName offset changed from 396 to 1160 bytes.

The fix removes hipDeviceGet and queries properties directly by device
index. It defines separate struct layouts for R0600 (HIP 6.x+) and R0000
(legacy) to handle the different memory layouts correctly.

An automatic API fallback mechanism tries R0600, then R0000, then the
unversioned API until one succeeds, ensuring compatibility across
different HIP runtime versions. A new --hip-api-version option allows
manually selecting the API version when needed.

Additional improvements include enhanced error handling with
hipGetErrorString, verbose logging throughout the detection process, and
runtime version detection using hipRuntimeGetVersion when available. The
versioned API functions provide stable ABI across HIP versions.

Fixes: SWDEV-564272</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167374)</title>
<updated>2025-11-10T20:24:39+00:00</updated>
<author>
<name>Naveen Seth Hanig</name>
<email>naveen.hanig@outlook.com</email>
</author>
<published>2025-11-10T20:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f63d33da0a517a9a7096e0e67defb50c5995dd41'/>
<id>f63d33da0a517a9a7096e0e67defb50c5995dd41</id>
<content type='text'>
This relands #167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
https://github.com/llvm/llvm-project/pull/163659#discussion_r2511546964

No additional changes have been made in this reland.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This relands #167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
https://github.com/llvm/llvm-project/pull/163659#discussion_r2511546964

No additional changes have been made in this reland.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167348)</title>
<updated>2025-11-10T17:27:20+00:00</updated>
<author>
<name>Naveen Seth Hanig</name>
<email>naveen.hanig@outlook.com</email>
</author>
<published>2025-11-10T17:27:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6bad2d139bd08c657620bb152113f9e957c582c5'/>
<id>6bad2d139bd08c657620bb152113f9e957c582c5</id>
<content type='text'>
Reverts #163659 due to missing one reference clang/Driver/Options.h in 
clang/include/clang/Driver/Driver.h.

See https://github.com/llvm/llvm-project/pull/163659#issuecomment-3512979187</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts #163659 due to missing one reference clang/Driver/Options.h in 
clang/include/clang/Driver/Driver.h.

See https://github.com/llvm/llvm-project/pull/163659#issuecomment-3512979187</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang][AMDGPU] Fix early exit when finding hip dlls AMDGPUArchByHIP.cpp (#166238)</title>
<updated>2025-11-10T17:02:54+00:00</updated>
<author>
<name>harkgill-amd</name>
<email>harkirat.gill@amd.com</email>
</author>
<published>2025-11-10T17:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5a1acf71976322b728157b050a12a97e74bda941'/>
<id>5a1acf71976322b728157b050a12a97e74bda941</id>
<content type='text'>
To find the greatest versioned `amdhip64_n.dll`, We iterate through
`SearchPaths` and the files within each path.

The `if (!DLLNames.empty())` check will return true if the first
`SearchPath` contains a dll - this will result in the break statement
executing and all other SearchPaths being skipped, potentially missing
out on a greater versioned dll.

Removing the check and break allows for all `SearchPaths` to get checked
and `DLLNames` to cover the complete set of dlls presents.

Also, the current `compareVersions` function was not removing the .dll
portion of the VerStr resulting in incorrect comparisons between VtA and
VtB. Updated the function to handle the case - test ouput is as follows
(ignore SearchPath and DLLName logging).

```
offload-arch.exe
SearchPath: C:\Users\rocm\harry\llvm-project\build\Debug\bin
SearchPath: C:\Windows\system32
SearchPath: C:\Windows
SearchPath: C:\Windows\system32
SearchPath: C:\Windows
SearchPath: C:\Windows\System32\Wbem
SearchPath: C:\Windows\System32\WindowsPowerShell\v1.0\
SearchPath: C:\Windows\System32\OpenSSH\
SearchPath: C:\Program Files\Git\cmd
SearchPath: C:\Program Files\CMake\bin
SearchPath: C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
SearchPath: C:\Users\rocm\harry\.venv\Lib\site-packages\_rocm_sdk_core\bin
SearchPath: C:\Users\rocm\AppData\Local\Microsoft\WindowsApps
SearchPath:
DLLName: C:/Windows/system32/amdhip64_6.dll
DLLName: C:/Windows/system32/amdhip64_7.dll
DLLName: C:/Windows/system32/amdhip64_6.dll
DLLName: C:/Windows/system32/amdhip64_7.dll
DLLName: C:/Users/rocm/harry/.venv/Lib/site-packages/_rocm_sdk_core/bin/amdhip64_7.dll
HIP Library Path: C:\Windows\system32\amdhip64_7.dll
gfx1151</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To find the greatest versioned `amdhip64_n.dll`, We iterate through
`SearchPaths` and the files within each path.

The `if (!DLLNames.empty())` check will return true if the first
`SearchPath` contains a dll - this will result in the break statement
executing and all other SearchPaths being skipped, potentially missing
out on a greater versioned dll.

Removing the check and break allows for all `SearchPaths` to get checked
and `DLLNames` to cover the complete set of dlls presents.

Also, the current `compareVersions` function was not removing the .dll
portion of the VerStr resulting in incorrect comparisons between VtA and
VtB. Updated the function to handle the case - test ouput is as follows
(ignore SearchPath and DLLName logging).

```
offload-arch.exe
SearchPath: C:\Users\rocm\harry\llvm-project\build\Debug\bin
SearchPath: C:\Windows\system32
SearchPath: C:\Windows
SearchPath: C:\Windows\system32
SearchPath: C:\Windows
SearchPath: C:\Windows\System32\Wbem
SearchPath: C:\Windows\System32\WindowsPowerShell\v1.0\
SearchPath: C:\Windows\System32\OpenSSH\
SearchPath: C:\Program Files\Git\cmd
SearchPath: C:\Program Files\CMake\bin
SearchPath: C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
SearchPath: C:\Users\rocm\harry\.venv\Lib\site-packages\_rocm_sdk_core\bin
SearchPath: C:\Users\rocm\AppData\Local\Microsoft\WindowsApps
SearchPath:
DLLName: C:/Windows/system32/amdhip64_6.dll
DLLName: C:/Windows/system32/amdhip64_7.dll
DLLName: C:/Windows/system32/amdhip64_6.dll
DLLName: C:/Windows/system32/amdhip64_7.dll
DLLName: C:/Users/rocm/harry/.venv/Lib/site-packages/_rocm_sdk_core/bin/amdhip64_7.dll
HIP Library Path: C:\Windows\system32\amdhip64_7.dll
gfx1151</pre>
</div>
</content>
</entry>
</feed>
