[CIR] Handle CK_UserDefinedConversion and related casts in emitCastLValue (#193611)
`emitCastLValue` was hitting an NYI error for
`CK_UserDefinedConversion`, `CK_ConstructorConversion`,
`CK_CPointerToObjCPointerCast`, `CK_BlockPointerToObjCPointerCast`, and
`CK_LValueToRValue`. Classic codegen handles all of these as a
pass-through to the sub-expression (`CGExpr.cpp:6197`), and CIR should
do the same.
Made with [Cursor](https://cursor.com)
[lld][WebAssembly] Always initialize fixed `__tls_base` in single threaded mode (#193563)
Without this fix `__tls_base` can remain set to zero which leads
`__builtin_thread_pointer` to return NULL, which is should not.
See https://github.com/emscripten-core/emscripten/pull/26747
[AMDGPU] Add `.amdgpu.info` section for per-function metadata
AMDGPU object linking requires the linker to propagate resource usage
(registers, stack, LDS) across translation units. To support this, the compiler
must emit per-function metadata and call graph edges in the relocatable object
so the linker can compute whole-program resource requirements.
This PR introduces a `.amdgpu.info` ELF section using a tagged, length-prefixed
binary format: each entry is encoded as:
```
[kind: u8] [len: u8] [payload: <len> bytes]
```
A function scope is opened by an `INFO_FUNC` entry (containing a symbol
reference), followed by per-function attributes (register counts, flags, private
segment size) and relational edges (direct calls, LDS uses, indirect call
signatures). String data such as function type signatures is stored in a
companion `.amdgpu.strtab` section.
[4 lines not shown]
Fix metadirective lowering for spliced DO loop symbols
spliceAssociatedDoEval moves the associated DO eval into the
metadirective's eval tree, but the parse tree is unchanged. Code that
walks the parse tree (DSP symbol collection, genTargetOp implicit
capture) misses loop body symbols entirely.
Teach DataSharingProcessor and genTargetOp to also walk nested evals
when processing a metadirective. Fix test CHECK patterns for delayed
privatization on wsloop and function signatures with arguments.
[AMDGPU] Add `.amdgpu.info` section for per-function metadata
AMDGPU object linking requires the linker to propagate resource usage
(registers, stack, LDS) across translation units. To support this, the compiler
must emit per-function metadata and call graph edges in the relocatable object
so the linker can compute whole-program resource requirements.
This PR introduces a `.amdgpu.info` ELF section using a tagged, length-prefixed
binary format: each entry is encoded as:
```
[kind: u8] [len: u8] [payload: <len> bytes]
```
A function scope is opened by an `INFO_FUNC` entry (containing a symbol
reference), followed by per-function attributes (register counts, flags, private
segment size) and relational edges (direct calls, LDS uses, indirect call
signatures). String data such as function type signatures is stored in a
companion `.amdgpu.strtab` section.
[4 lines not shown]
[NFC][AMDGPU] Remove `amdgpu-link-time-lds` module flag (#193806)
We could just use `AMDGPUTargetMachine::EnableObjectLinking` to control.
Don't really need this, which is from a previous design where we wanted
to let different components to decide whether we want to use object
linking independently, but that would not really work.
Fix metadirective lowering for spliced DO loop symbols
spliceAssociatedDoEval moves the associated DO eval into the
metadirective's eval tree, but the parse tree is unchanged. Code that
walks the parse tree (DSP symbol collection, genTargetOp implicit
capture) misses loop body symbols entirely.
Teach DataSharingProcessor and genTargetOp to also walk nested evals
when processing a metadirective. Fix test CHECK patterns for delayed
privatization on wsloop and function signatures with arguments.
[flang][OpenMP] Support lowering of metadirective (part 1)
This patch implements OpenMP 5.0 metadirective (static selection among
when clauses), nothing from OpenMP 5.1, and otherwise from OpenMP 5.2.
When all context selectors can be evaluated statically (vendor,
device kind, ISA, construct traits, constant user conditions),
the best-matching variant is selected during flang lowering by taking
advantage of llvm context selector infrastructure.
Dynamic (run-time) user conditions will be handled by a follow-up patch.
This patch is part of the feature work for #188820.
Assisted with Copilot and GPT 5.4.
[lldb] Speculative fix for crash in Function::GetCallEdges() (#193636)
Replace the unprotected union+bool lazy resolution in DirectCallEdge
with `std::call_once`/`std::once_flag`.
Multiple threads can call `GetCallee` on the same edge concurrently and
the old code had no synchronization on the union discriminator or its
contents. This could lead to a corrupted pointer that would explain the
crash we're observing sporadically.
rdar://175006028
[CIR] Add restrict→noalias on non-builtin pointer params (#191483)
Map `restrict`-qualified pointer parameters to `noalias`, skipping
builtins (e.g. `printf`) where OGCG doesn't apply it. OGCG only adds
`noalias` from `restrict` through its calling-convention lowering path,
which builtins bypass, so the `!fd->getBuiltinID()` guard keeps CIR in
line.
`constructFunctionArgumentAttributes` now takes `targetDecl` so it can
look up `ParmVarDecl` qualifiers.
Updated `asm-label-inline-builtins.c` checks to reflect the new
`noalias` on the non-builtin `__vfprintf_chkieee128` call. New test:
`restrict-noalias.c` (CIR / LLVM / OGCG).
Made with [Cursor](https://cursor.com)
[lldb/test] Fix TestDataFormatterObjCNSBundle.py following 8212cab4128d (NFC) (#193816)
This removes a spurious space introduced by 8212cab4128d.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
news/eilmeldung: import package
eilmeldung is a TUI RSS reader based on the awesome news-flash library.
- fast in every aspect: non-blocking terminal user interface, (neo)vim-inspired
keybindings, instant start-up and no clutter
- stands on the shoulder of giants: based on the news-flash library, eilmeldung
supports many RSS providers, is efficient and reliable
- powerful and yet easy to use out-of-the-box: sane defaults which work for
most, and yet configurable to meet anyone's requirements, from keybindings to
colors, from displayed content to RSS provider
- read news like a pro: filter and search news with an easy-to-learn powerful
query language, activate zen mode to focus on the article content and nothing
else
eilmeldung is German for breaking news
[scudo] Adjust PROT_MTE page count for secondary allocator (#192202)
Secondary allocator currently mmaps 4 pages as PROT_MTE in case MTE is
enabled in the allocator for Aarch64.
Since only the headers are tagged, this is unnecessary, two pages are
sufficient in worst case scenario.
news/bulletty: add package
bulletty is a TUI feed reader and aggregator (RSS and Atom).
Read your subscriptions directly in your terminal. It downloads the entries for
offline reading so all the data is local and yours: your subscriptions,
highlights, comments, etc. All in a universal format: Markdown. Back up and
sync your data directory your own way.
[AMDGPU] Implement amdgpu.dot op (#193371)
Adds `amdgpu` wrapper for rocdl dot ops.
Assisted by: Claude
---------
Signed-off-by: Eric Feng <Eric.Feng at amd.com>
[CIR] Allow multi-block ctor regions on GlobalOp (#193596)
C++14 variable templates with non-constexpr constructors (e.g., `static
const Foo<N> x{}` where `Foo()` is not constexpr) crash CIR codegen
with:
```
'cir.global' op region #0 ('ctorRegion') failed to verify
constraint: region with at most 1 blocks
```
The problem is that `GlobalOp`'s `ctorRegion` is declared as
`MaxSizedRegion<1>`, but when exceptions are enabled, `emitAggExpr` can
create additional blocks in the ctor region for EH cleanup scaffolding
(unreachable/trap terminators). These extra blocks are dead code —
`LoweringPrepare` already discards them when it moves the ctor region
into `__cxx_global_var_init`.
This patch relaxes the constraint to `AnyRegion` and replaces the
[3 lines not shown]
[clang][lit] Don't substitute cir-opt if it's not enabled (#193665)
Suppresses note like:
```
llvm-lit: llvm-project/llvm/utils/lit/lit/llvm/subst.py:130: note: Did not find cir-opt in ...
```
Fix metadirective lowering for spliced DO loop symbols
spliceAssociatedDoEval moves the associated DO eval into the
metadirective's eval tree, but the parse tree is unchanged. Code that
walks the parse tree (DSP symbol collection, genTargetOp implicit
capture) misses loop body symbols entirely.
Teach DataSharingProcessor and genTargetOp to also walk nested evals
when processing a metadirective. Fix test CHECK patterns for delayed
privatization on wsloop and function signatures with arguments.