[all-commits] [llvm/llvm-project] 617ba8: [GlobalOpt] Preserve Address Space when recreating...
Evgenii Podkorytov via All-commits
all-commits at lists.llvm.org
Wed Dec 10 06:11:01 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 617ba837eecf39a65ef4183c36892f8bf58a74cc
https://github.com/llvm/llvm-project/commit/617ba837eecf39a65ef4183c36892f8bf58a74cc
Author: Evgenii Podkorytov <epodkorytov at nvidia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/test/Transforms/GlobalOpt/global-opt-addrspace.ll
Log Message:
-----------
[GlobalOpt] Preserve Address Space when recreating GV (#171211)
Fix for GlobalOpt pass: preserve Address Space when recreating GV
This fix prevents dropping `addrspace(1)` in the following code snippet
(see modified LIT-test) for `@llvm.compiler.used`:
Before global-opt
```
@_ZM2C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@_ZL1C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
After global-opt
```
@_ZM2C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@_ZL1C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@llvm.compiler.used = appending global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
With proposed fix `@llvm.compiler.used` will be re-created with
preserving original `addrspace(1)` as:
```
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list