LLVM/project edb7c70clang/docs ReleaseNotes.md, clang/lib/Sema SemaLambda.cpp SemaTemplateInstantiate.cpp

Fix crash in class template argument deduction with lambda closure types in deduction guides
DeltaFile
+35-0clang/test/CodeGenCXX/cxx20-ctad-lambda-in-deduction-guide.cpp
+29-0clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
+8-2clang/test/AST/ByteCode/cxx2a.cpp
+10-0clang/lib/Sema/SemaTemplateInstantiate.cpp
+8-0clang/lib/Sema/SemaLambda.cpp
+7-0clang/docs/ReleaseNotes.md
+97-26 files

LLVM/project 9e3a733llvm/lib/Target/LoongArch LoongArchFloatInstrFormats.td LoongArchInstrInfo.td, llvm/lib/Target/LoongArch/MCTargetDesc LoongArchInstPrinter.h LoongArchInstPrinter.cpp

[LoongArch][MC] Add assembly syntax highlighting for LoongArch (#218946)

This PR adds color highlighting of registers and immediates in LoongArch
disassembly.

This is similar to #65853.
DeltaFile
+36-0llvm/test/MC/Disassembler/LoongArch/colored.txt
+23-2llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp
+8-0llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
+4-2llvm/lib/Target/LoongArch/LoongArchFloatInstrFormats.td
+4-0llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h
+2-0llvm/test/MC/Disassembler/LoongArch/lit.local.cfg
+77-46 files

LLVM/project 358cafellvm/lib/Target/RISCV RISCVProcessors.td, llvm/test/CodeGen/RISCV andes-45-unaligned-scalar-mem.ll

[RISCV] Andes: model fast unaligned accesses (#220756)

Mark the Andes 45 tuning profile as supporting efficient unaligned
scalar loads and stores. This lets fixed-size alignment-one copies lower
to scalar instructions instead of a memcpy call. On these in-order
cores, where performance is almost synonymous with instruction count,
this is a material win.
DeltaFile
+15-0llvm/test/CodeGen/RISCV/andes-45-unaligned-scalar-mem.ll
+2-1llvm/lib/Target/RISCV/RISCVProcessors.td
+17-12 files

LLVM/project f363dc6llvm/lib/Target/AArch64 AArch64ConditionalCompares.cpp, llvm/test/CodeGen/AArch64 cmpbr-ccmp.ll cmpbr-ccmp.mir

[AArch64] Form CCMP for CBB and CBH

AArch64ConditionalCompares forms CMP/CCMP chains to transform patterns
such as

                 Head                        Head
                 / |                         CmpBB
                /  |                         / |
               |  CmpBB        =>           /  |
               |  / |                    Tail  |
               | /  |                      |   |
              Tail  |                      |   |
                |   |                      |   |
               ... ...                    ... ...

where Head is terminated by a conditional branch and CmpBB contains
a cmp + conditional branch.

We usually try to split any fused conditional branches to be able to

    [8 lines not shown]
DeltaFile
+406-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
+232-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
+38-2llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+676-23 files

LLVM/project 4832db9llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 cmpbr-early-ifcvt.mir

[AArch64][CMPBR] Fix splitting of CBB/CBH instructions into ext + cmp

We falsely split CBB/CBH instructions by explicitly extending the
second register operand instead of the first one, leading to the
following, wrong codegen:

  cbh $wn, $wm, cc, trgt  =>  sxth $wt, $wm
                              cmp  $wn, $wt, cc, sxth

Correct is

  cbh $wn, $wm, cc, trgt  =>  sxth $wt, $wn
                              cmp  $wt, $wm, cc, sxth

since cmp with extended register extends it's second, not its first
operand.
DeltaFile
+26-22llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+16-16llvm/test/CodeGen/AArch64/cmpbr-early-ifcvt.mir
+42-382 files

LLVM/project 1dabefallvm/lib/Target/AArch64 AArch64ConditionalCompares.cpp, llvm/test/CodeGen/AArch64 cmpbr-ccmp.ll cmpbr-ccmp.mir

[AArch64] Allow forming CCMPs for CB branches

AArch64ConditionalCompares currently doesn't consider FEAT_CMPBR CB
instructions when trying to form CCMPs. This leads to a lot more
branches which is usually hurtful for performance.

The patchs adds handling CB instructions, just like we do for other
fused conditional branches such as CBZ or CBNZ.
DeltaFile
+794-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
+519-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
+81-36llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+1,394-363 files

LLVM/project ceabc54mlir/lib/Dialect/OpenACC/Transforms ACCDeclareGPUModuleInsertion.cpp

[mlir][openacc][NFC] Fix ACCDeclareGPUModuleInsertion header (#221106)
DeltaFile
+1-2mlir/lib/Dialect/OpenACC/Transforms/ACCDeclareGPUModuleInsertion.cpp
+1-21 files

LLVM/project dc8e837flang/include/flang/Optimizer/Support InternalNames.h, flang/lib/Optimizer/OpenACC/Support FIROpenACCOpsInterfaces.cpp

[mlir][openacc] Add isCompilerGenerated to GlobalVariableOpInterface (#221096)

This function is used to determine if a global is compiler generated or
coming from user variables. This is useful when determining the handling
of globals for unified memory mode.
DeltaFile
+27-0flang/unittests/Optimizer/InternalNamesTest.cpp
+20-0flang/lib/Optimizer/Support/InternalNames.cpp
+5-0flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
+4-0mlir/include/mlir/Dialect/OpenACC/OpenACCOpsInterfaces.td
+3-0flang/include/flang/Optimizer/Support/InternalNames.h
+2-0mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+61-01 files not shown
+62-07 files

LLVM/project d9dbc70llvm/lib/Target/AArch64 AArch64InstrInfo.cpp AArch64MCInstLower.cpp, llvm/test/CodeGen/AArch64 wineh-try-catch.ll wineh-try-catch-vla.ll

[AArch64] Fix missing :lo12: on the catchret address pair (#219200)

`llc -mtriple=aarch64-pc-windows-msvc` emits assembly it cannot assemble
itself.
A function with a `catchret` materialises its continuation block like
this:

```asm
"?catch$2@?0?f at 4HA":
        adrp    x0, .LBB0_1
        add     x0, x0, .LBB0_1
        ret
```

Pipe that back through `llvm-mc` and you get:

```
error: expected compatible register, symbol or integer in range [0, 4095]
        add     x0, x0, .LBB0_1

    [43 lines not shown]
DeltaFile
+4-5llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
+2-2llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+1-1llvm/test/CodeGen/AArch64/wineh-try-catch.ll
+1-1llvm/test/CodeGen/AArch64/wineh-try-catch-vla.ll
+1-1llvm/test/CodeGen/AArch64/wineh-try-catch-realign.ll
+1-1llvm/test/CodeGen/AArch64/wineh-try-catch-nobase.ll
+10-113 files not shown
+13-149 files

LLVM/project 6632578clang/unittests/AST AttrTest.cpp

[clang][OpenMP] Add explicit default libomp value to test. (#221098)

The test OMPInvariantPredicateBoundOnIntraTileLoop, in AttrTest.cpp uses
'-fopenmp' without supplying an explcit value. In some places the
default value is 'libomp', which works just fine for this test. But in
envorinments where 'libomp' is not the default value (e.g. places that
use 'libgomp' by default) the test fails. This fixes that issue by
explicitly telling the test to use 'libomp'.
DeltaFile
+1-1clang/unittests/AST/AttrTest.cpp
+1-11 files

LLVM/project fe7155cclang/test/AST ast-dump-ctad-alias.cpp

chore: fix style
DeltaFile
+12-2clang/test/AST/ast-dump-ctad-alias.cpp
+12-21 files

LLVM/project 3d8a41aclang/docs ReleaseNotes.md, clang/lib/Sema SemaTemplateDeductionGuide.cpp

Fix crash in class template argument deduction with alias templates
DeltaFile
+46-11clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+47-0clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
+8-0clang/docs/ReleaseNotes.md
+101-113 files

LLVM/project f5d0b63clang/test/CIR/CodeGenOpenACC declare-copyout.cpp declare-copy.cpp

[CIR] Fixup OpenACC + 1 OMP test from modifiers attribute changes. (#221101)
DeltaFile
+39-39clang/test/CIR/CodeGenOpenACC/declare-create.cpp
+39-39clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
+32-32clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c
+32-32clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c
+30-30clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
+30-30clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
+202-2026 files not shown
+281-28112 files

LLVM/project e97669bmlir/lib/Conversion/GPUToNVVM LowerGpuOpsToNVVMOps.cpp, mlir/lib/Conversion/GPUToROCDL LowerGpuOpsToROCDLOps.cpp

[mlir][gpu] Don't request C wrappers for private device functions (#214552)

GPU lowerings attach `llvm.emit_c_interface` to device functions
regardless of visibility. This causes private device functions to
receive external entry points and prevents such functions from being
culled by DCE.

On a real module lowered by a downstream compiler, we measured that
unconditional `llvm.emit_c_interface` inflated the generated PTX by 1.8x
by keeping unused private functions alive and by 7x for pipelines that
also give private functions internal linkage.

This change attaches `llvm.emit_c_interface` only to functions which are
not private for both the gpu->nvvm and gpu->rocdl lowerings. No behavior
change to existing unit tests, and new tests are added to witness the
new behavior for private functions.

Assisted-by: Claude Code
DeltaFile
+25-0mlir/test/Conversion/GPUToROCDL/private-func-no-c-interface.mlir
+25-0mlir/test/Conversion/GPUToNVVM/private-func-no-c-interface.mlir
+6-1mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
+6-1mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
+62-24 files

LLVM/project 6ba0802clang/lib/CodeGen CGDebugInfo.cpp, clang/test/DebugInfo/CXX limited-ctor.cpp

[DebugInfo] Ignore undefined constexpr constructors in constructor homing. (#218165)

The constructor homing optimization limits the amount of redundant debug
info generated for classes by only emitting forward declarations to
debug info in translation units that can't instantiate the class on
their own (i.e. they don't see the definitions of any constructors).

Currently, classes that have _any_ constexpr constructors are excluded
from the optimization. This is being changed to only exclude _defined_
constexpr constructors, as declared constexpr constructors are not
callable in a TU that doesn't see their definition.

Signed-off-by: Clayton Knittel <cknit1999 at gmail.com>
DeltaFile
+33-0clang/test/DebugInfo/CXX/limited-ctor.cpp
+15-5clang/lib/CodeGen/CGDebugInfo.cpp
+48-52 files

LLVM/project 20498c8llvm/test lit.cfg.py, llvm/test/ExecutionEngine/Orc throw-catch-no-frame-pointer.ll throw-catch-minimal.ll

[ORC] Add host-jit-triple lit feature, gate some JIT tests (#220929)

The JIT does not support throwing exceptions on Darwin/arm64e yet. Add
an llvm-lit feature flag, "host-jit-triple", that reports the process
triple as detected by `lli` so that we can mark exception-throwing tests
as unsupported when they would be run as arm64e. (Feature flags based on
build settings, e.g. host-triple and target-triple, don't reliably
report arm64e).

Adds a -host-jit-triple option to lli to print the value for the
feature-flag.

rdar://185482009
DeltaFile
+19-0llvm/test/lit.cfg.py
+10-0llvm/tools/lli/lli.cpp
+4-0llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
+4-0llvm/test/ExecutionEngine/Orc/throw-catch-no-frame-pointer.ll
+4-0llvm/test/ExecutionEngine/Orc/throw-catch-minimal.ll
+4-0llvm/test/ExecutionEngine/Orc/throw-catch-merged-compact-unwind.ll
+45-01 files not shown
+48-07 files

LLVM/project ae856abclang/test/CIR/CodeGenCoroutines coro-alloc.cpp, llvm/test/Transforms/LowerTypeTests cfi-jumptable-hotness-summary.ll

rebase

Created using spr 1.3.7
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+35-36llvm/test/Transforms/LowerTypeTests/cfi-jumptable-hotness-summary.ll
+344-25158 files not shown
+1,191-56264 files

LLVM/project 2f222c4clang/test/CIR/CodeGenCoroutines coro-alloc.cpp, flang/test/Semantics bug82684.f90

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+65-0flang/test/Semantics/bug82684.f90
+374-21558 files not shown
+1,183-55464 files

LLVM/project caa05fcclang/test/CIR/CodeGenCoroutines coro-alloc.cpp, flang/test/Semantics bug82684.f90

rebase

Created using spr 1.3.7
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+65-0flang/test/Semantics/bug82684.f90
+374-21558 files not shown
+1,183-55464 files

LLVM/project 68a336eclang/test/CIR/CodeGenCoroutines coro-alloc.cpp, flang/test/Semantics bug82684.f90

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+65-0flang/test/Semantics/bug82684.f90
+374-21556 files not shown
+1,154-49262 files

LLVM/project 3e88328clang/test/CIR/CodeGenCoroutines coro-alloc.cpp, flang/test/Semantics bug82684.f90

rebase

Created using spr 1.3.7
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+65-0flang/test/Semantics/bug82684.f90
+374-21556 files not shown
+1,154-49262 files

LLVM/project 7e9d354clang/test/CIR/CodeGenCoroutines coro-alloc.cpp, flang/test/Semantics bug82684.f90

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+128-0llvm/unittests/ABI/TypesTest.cpp
+60-41mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+41-41mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+65-0flang/test/Semantics/bug82684.f90
+374-21556 files not shown
+1,154-49262 files

LLVM/project f111407llvm/include/llvm/SandboxIR Context.h, llvm/lib/SandboxIR Context.cpp

Revert "Reapply "[SandboxIR] Callback registration now allows specifying order (#221008)" (#221095)

Reverts llvm/llvm-project#221017

unittest failure
DeltaFile
+0-96llvm/unittests/SandboxIR/SandboxIRTest.cpp
+16-57llvm/include/llvm/SandboxIR/Context.h
+39-33llvm/lib/SandboxIR/Context.cpp
+55-1863 files

LLVM/project 5498c18clang/lib/CIR/CodeGen CIRGenBuilder.cpp, clang/test/CIR/CodeGen global-replace-record-array.c

[CIR] Fix a problem with global view index calculation (#221066)

When a global that was declared with an incomplete array type is
replaced by a global with the completed type, the byte offset of each
global view on the old global is recomputed from its indices, and new
indices are derived from that offset. The offset computation rounded its
running total up to the ABI alignment of the record being indexed, which
incorrectly assumes that every member starts at a multiple of its
enclosing record's alignment. That does not hold for a member followed
by padding, so the offset came out too large. The recomputed view then
designated the wrong address or, when the inflated offset no longer
landed on a subelement boundary, fell back to a global offset attribute
holding the wrong offset.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+32-0clang/test/CIR/CodeGen/global-replace-record-array.c
+0-3clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
+32-32 files

LLVM/project 49c9f55clang/lib/Driver/ToolChains Flang.cpp, flang/docs Extensions.md

[flang] Warn rather than error on out-of-range constant subscripts (#220435)

A reference with an out-of-range constant subscript is now accepted with
a
warning instead of being rejected with an error, and
`-fno-out-of-bounds-subscripts`
restores the error.

A subscript value is required to be within its bounds only when the
reference is
executed (F'2023 9.5.3.1 paragraph 2), so a reference that never runs
does not
render a program nonconforming. Whether a reference is ever executed
cannot be
determined in general -- consider a procedure whose only call site is in
dead
code, or one that is never called at all -- so rejecting these outright
turns
away conforming programs. Semantics already recognized the narrow case

    [108 lines not shown]
DeltaFile
+65-0flang/test/Semantics/bug82684.f90
+30-5flang/lib/Semantics/expression.cpp
+22-0flang/test/Driver/fout-of-bounds-subscripts.f90
+12-9flang/test/Semantics/bug171844.f90
+14-6clang/lib/Driver/ToolChains/Flang.cpp
+20-0flang/docs/Extensions.md
+163-206 files not shown
+189-2212 files

LLVM/project 30c695dclang/lib/CIR/CodeGen CIRGenCoroutine.cpp, clang/test/CIR/CodeGenCoroutines coro-alloc.cpp

[CIR] Add support for coroutine allocation failure (#220466)

This PR adds support for the coroutine promise member function
`get_return_object_on_allocation_failure()`.

When a coroutine fails to allocate its frame, the default behavior is to
throw `std::bad_alloc`. If the promise type defines
`get_return_object_on_allocation_failure()`, the coroutine uses the
nothrow form of `operator new`. If the allocation returns `nullptr`,
`get_return_object_on_allocation_failure()` is called and its return
value is returned to the caller instead of throwing.

One difference from OG is that we reverse the allocation condition. OG
checks whether the allocation was successful and branches to the
initialization path when the allocation succeeds. CIR checks whether the
allocated pointer is `nullptr` and handles the allocation failure case
inside a `cir.if`.
DeltaFile
+80-0clang/test/CIR/CodeGenCoroutines/coro-alloc.cpp
+19-6clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
+99-62 files

LLVM/project 256e742clang/lib/CodeGen QualTypeMapper.cpp, clang/test/CodeGen/X86 x86_64-empty-cxx-member-abi.cpp

[LLVMABI] Align RecordType::isEmpty() with Clang's isEmptyRecord() (#218546)

[LLVMABI] Align RecordType::isEmpty() with Clang's isEmptyRecord()

While working on empty record handling for AArch64, I stumbled across a
couple of differences between the LLVM ABI library's
`RecordType::isEmpty()` and Clang's `CodeGen::isEmptyRecord()`. Testing
verified this led to observable differences in classification when using
the ABI library.

This change updates the ABI library's empty record handling to match
Clang.

Assisted-by: Cursor / various models
DeltaFile
+128-0llvm/unittests/ABI/TypesTest.cpp
+25-11llvm/lib/ABI/Types.cpp
+35-0clang/test/CodeGen/X86/x86_64-empty-cxx-member-abi.cpp
+7-6llvm/include/llvm/ABI/Types.h
+2-3clang/lib/CodeGen/QualTypeMapper.cpp
+1-0llvm/utils/gn/secondary/llvm/unittests/ABI/BUILD.gn
+198-201 files not shown
+199-207 files

LLVM/project adf79c9llvm/include/llvm/SandboxIR Context.h, llvm/lib/SandboxIR Context.cpp

Reapply "[SandboxIR] Callback registration now allows specifying order (#221008) (#221017)

This reverts commit 89082772bed1ed16c0311b12147a96c35bb063d8.
And includes the fix.
DeltaFile
+96-0llvm/unittests/SandboxIR/SandboxIRTest.cpp
+57-16llvm/include/llvm/SandboxIR/Context.h
+33-39llvm/lib/SandboxIR/Context.cpp
+186-553 files

LLVM/project 2a7e471llvm/test/Transforms/LowerTypeTests pr37625.ll export-symver.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+16-18llvm/test/Transforms/LowerTypeTests/cfi-icall-alias.ll
+3-7llvm/test/Transforms/LowerTypeTests/export-inline.ll
+3-7llvm/test/Transforms/LowerTypeTests/export-cross-dso-cfi.ll
+2-6llvm/test/Transforms/LowerTypeTests/pr37625.ll
+2-6llvm/test/Transforms/LowerTypeTests/export-symver.ll
+2-6llvm/test/Transforms/LowerTypeTests/export-rename-local.ll
+28-507 files not shown
+38-8813 files

LLVM/project 6a20989orc-rt/include/orc-rt-internal/bedrock/sys PageSize.h, orc-rt/lib/bedrock ExecutorProcessInfo.cpp

[orc-rt] Make ExecutorProcessInfo platform-generic (#220938)

ExecutorProcessInfo was part generic, part system-specific: some of its
methods were implemented directly in its own .cpp, others only existed
as out-of-line definitions in per-OS files under lib/bedrock/sys/.

Move the system-specific pieces into free functions under orc_rt::sys
(mirroring the existing support/sys/ convention), and have
ExecutorProcessInfo consume them like any other client. The class itself
is now fully generic, with no system-specific code of its own.

No functional change, except that page-size detection (previously
hardcoded to POSIX sysconf) now goes through the same per-OS split as
the rest of ExecutorProcessInfo; a Windows implementation is left for a
follow-up.
DeltaFile
+0-133orc-rt/test/unit/bedrock/ExecutorProcessInfoTest.cpp
+12-52orc-rt/lib/bedrock/ExecutorProcessInfo.cpp
+34-26orc-rt/lib/bedrock/sys/darwin/CPUFeatures.cpp
+58-0orc-rt/test/unit/bedrock/sys/TargetTripleTest.cpp
+38-0orc-rt/lib/bedrock/sys/posix/PageSize.cpp
+29-0orc-rt/include/orc-rt-internal/bedrock/sys/PageSize.h
+171-21113 files not shown
+289-26719 files