andres@salamanca:~$ gh pr list --author me --merged
Open-source pull requests
llvm-project · 66
Upstreaming ClangIR (CIR), Clang's MLIR-based IR, through public code review since March 2025.
C++20 coroutines
27 of 27End-to-end coroutine support in ClangIR: emitting the coroutine body and promise, cir.await with ready/suspend/resume branches, co_yield and co_return, structured control flow for suspend points, FlattenCFG for coroutine ops, and dedicated cir.coro.* intrinsic ops with LLVM lowering.
- #236293Pass the promise address to cir.coro.intrinsic.id
- #234817Replace coroutine unit attrs on FuncOp with a CoroutineKind enum attr
- #229947Add round trip tests for coroutine intrinsicsNFC
- #228310Add cir.coro.suspend intrinsic
- #222210Add cir.coro.intrinsic.resume/destroy/done Ops
- #221343Use declarative llvmOp lowering for coroutine intrinsicsNFC
- #221124Add cir.coro.intrinsic.promise Op
- #220466Add support for coroutine allocation failure
- #215709Add lowering for coroutine intrinsics and token none
- #214125Add token.none and fix coro.end signature
- #213191Add structured control flow for coroutine suspend points
- #211699Change previous coroutine builtins to have their own coro intrinsic ops
- #211152Reorganize coroutine testsNFC
- #211143Remove unused LLVM lowering for cir.awaitNFC
- #203802Implement FlattenCFG for coroutine AwaitOp, CoroBodyOp, and CoReturnOp
- #189281Add coroutine cleanup handling and update co_return semantics
- #178821Add OGCG tests for coroutinesNFC
- #176598Upstream coroutine builtin coro_end
- #173174Upstream support co_return of values from co_await
- #173162Upstream support for coroutine co_yield expression
- #171755Partially upstream coroutine co_return support
- #169864Upstream Emit the resume branch for cir.await op
- #168814Emit ready and suspend branches for cir.await
- #168133Upstream CIR await op
- #166683Emit promise declaration in coroutine
- #164180Emit CIR builtins: coroAlloc, coroBegin, and coroSize
- #161616Initial support for emitting coroutine body
Control flow
14 of 14if and switch statements (all case kinds, FlattenCFG with SwitchFlatOp, case simplification, lowering to LLVM), goto and labels with the GotoSolver pass, and GNU labels-as-values / indirect goto.
- #178106Add lowering for BlockAddressOp, IndirectBrOp and LabelOp
- #169967Upstream support for cir.indirectbr
- #168151Upstream the initial BlockAddressOp implementation
- #163280Fix error in cir.label when using cir.br in entry block
- #154596Upstream GotoSolver pass
- #153701Upstream GotoOp
- #152802Upstream LabelOp
- #140649Implement switch case simplify
- #140457Remove the empty verifier in cir.ifOp
- #140425Upstream support for lowering cir.switch to LLVM
- #139154Upstream support for FlattenCFG switch and SwitchFlatOp
- #138003Upstream support for switch statements case kinds
- #137106Upstream initial support for switch statements
- #134333Add if statement support
C/C++ bit-fields
19 of 19Bit-field record layout and access: get_bitfield / set_bitfield ops, unary and binary operations, volatile bit-fields, unions, big-endian offsets, AAPCS, and -ffine-grained-bitfield-accesses.
- #156085Add support for discrete bit-field
- #154398Fix access to bitfields inside a union
- #151875Implemented get/set for volatile bitfields
- #151741Fix outdated bitfield iteration logic in accumulateFields
- #151252Add ComputeVolatileBitfields Implementation
- #150687Add support for -ffine-grained-bitfield-accesses
- #149676Add support for binary operations on bitfield members
- #148999Fix alignment when lowering set/get bitfield operations
- #148083Add support for unary operations on bitfield members
- #147828Add example for get_bitfield with volatile qualifierNFC
- #147628Add test for parsing bitfield_info attribute
- #147609Upstream new SetBitfieldOp for handling C and C++ struct bitfields
- #145971Upstream get_bitfield operation to load bit-field members from structs
- #145560Fix NYI AAPCS bit-fields by skipping unsupported case
- #145414Upstream computeVolatileBitfieldsNFC
- #145096Add support for bitfields in unions
- #145067Add bitfield offset calculation for big-endian targets
- #145058Add support for DumpRecordLayouts
- #142041Add initial support for bitfields in structs
Dialect & infrastructure
6 of 6Op assembly formats, TableGen-driven lowering, data layout support and build/test infrastructure.
- #198962Add custom assembly format for alloca op to fix flag parsing
- #176664Add custom constructor declaration to CIR lowering TableGen
- #165060Update TypeCache file to use MLIR-style camel caseNFC
- #146608Add mlir-translate to CMake
- #142241Add DLTI dialect support to module attributes
- #142218Update CHECK pattern to use regex for new def of RVNFC
beman/execution · 2
C++26 std::execution (P2300).