diff options
| author | adams381 <adams@nvidia.com> | 2025-12-09 17:11:01 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-09 15:11:01 -0800 |
| commit | 0a2e56df64c936bacc746aeb94878d66ee00dec3 (patch) | |
| tree | e103b0d056656d0b30239d2c1c52689b4e4a6de2 /lldb/scripts/Python/interface | |
| parent | 84b9e444454a06ddf01f568164e3d5c8d956707d (diff) | |
| download | llvm-0a2e56df64c936bacc746aeb94878d66ee00dec3.zip llvm-0a2e56df64c936bacc746aeb94878d66ee00dec3.tar.gz llvm-0a2e56df64c936bacc746aeb94878d66ee00dec3.tar.bz2 | |
[CIR] Add support for thread-local storage (TLS) (#168662)
This commit adds full support for thread-local storage variables in
ClangIR, including code generation, lowering to LLVM IR, and
comprehensive testing.
Changes include:
- Added CIR_TLSModel enum with 4 TLS models (GeneralDynamic,
LocalDynamic, InitialExec, LocalExec) to CIROps.td
- Extended GlobalOp with optional tls_model attribute
- Extended GetGlobalOp with thread_local unit attribute
- Added verification to ensure thread_local GetGlobalOp references
globals with tls_model set
- Implemented GetDefaultCIRTLSModel() and setTLSMode() in CIRGenModule
- Updated getAddrOfGlobalVar() to handle TLS access
- Removed MissingFeatures assertions for TLS operations
- Added lowering of GetGlobalOp with TLS to llvm.threadlocal.address
intrinsic
- Added lowering of GlobalOp with tls_model to LLVM thread_local globals
- Added comprehensive test with CIR, LLVM, and OGCG checks
Known limitations (matching incubator):
- Static local TLS variables not yet implemented
- TLS_Dynamic with wrapper functions not yet implemented
Fixes #153270
Diffstat (limited to 'lldb/scripts/Python/interface')
0 files changed, 0 insertions, 0 deletions
