[llvm-branch-commits] [clang] [CIR] Add static_local attribute to GlobalOp and GetGlobalOp (PR #179826)
Bruno Cardoso Lopes via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Feb 10 18:11:28 PST 2026
================
@@ -2433,19 +2439,26 @@ def CIR_GetGlobalOp : CIR_Op<"get_global", [
Addresses of thread local globals can only be retrieved if this operation
is marked `thread_local`, which indicates the address isn't constant.
+ The `static_local` attribute indicates that this global is a function-local
+ static variable that requires guarded initialization (e.g., C++ static
+ local variables with non-constant initializers).
+
Example:
```mlir
%x = cir.get_global @gv : !cir.ptr<i32>
...
%y = cir.get_global thread_local @tls_gv : !cir.ptr<i32>
+ ...
+ %w = cir.get_global static_local @func_static : !cir.ptr<i32>
```
}];
- let arguments = (ins FlatSymbolRefAttr:$name, UnitAttr:$tls);
+ let arguments = (ins FlatSymbolRefAttr:$name, UnitAttr:$tls, UnitAttr:$static_local);
----------------
bcardosolopes wrote:
done!
https://github.com/llvm/llvm-project/pull/179826
More information about the llvm-branch-commits
mailing list