LLVM/project 4245b1dllvm/test/Transforms/LoopVectorize force-instruction-cost.ll

[LV] Add cost printing test with forced instruction costs (NFC). (#222895)

Add a test printing the cost of all recipes in the vector loop region
with -force-target-instruction-cost. Currently the flag is ignored for
VPDerivedIVRecipe and VPScalarIVStepsRecipe.
DeltaFile
+77-0llvm/test/Transforms/LoopVectorize/force-instruction-cost.ll
+77-01 files

LLVM/project 9df4e9blibsycl/include/sycl/__impl usm_functions.hpp, libsycl/src usm_functions.cpp

[libsycl] USM Aligned allocation functions (#213468)

Adds the `aligned_*` versions of the USM functions, specifically for the
`device` `host` `shared` and free standing `aligned_alloc`.

Most of the overloads delegate between each other, but they slowly end
up being mapped to `aligned` version of API.

Adds more LIT tests in `alloc_functions.cpp` to cover the aligned
version.
Adds unittests for USM in `usm/alloc.cpp` 

Assisted by AI for documentation, validation of logic in overloads and
alignment specifications from latest SYCL-Docs and unit tests
DeltaFile
+324-30libsycl/include/sycl/__impl/usm_functions.hpp
+247-0libsycl/unittests/usm/alloc.cpp
+92-18libsycl/src/usm_functions.cpp
+93-0libsycl/test/usm/alloc_functions.cpp
+35-0libsycl/unittests/mock/helpers.cpp
+13-0libsycl/unittests/mock/mock.cpp
+804-484 files not shown
+814-5110 files

LLVM/project 246194fllvm/lib/Target/AArch64 AArch64TargetMachine.h AArch64TargetMachine.cpp

[AArch64] Cache repeated subtarget queries (NFC) (#222637)

The existing SubtargetMap caches subtargets using a key built from a subset of
relevant function attributes. Add a single-entry cache keyed by the full
function attribute set to avoid rebuilding that key for repeated queries. This
covers both repeated queries for the same function and queries for different
functions with identical attributes.

Improves CTMark geomean -0.10% on aarch64-O3 and -0.17 on aarch64-O0-g.

https://llvm-compile-time-tracker.com/compare.php?from=87d9c3c24ff5941ac08799850a6549b561c98a81&to=544bb3d9ac28bc1a28248f6b03bcd95fa85b20e0&stat=instructions:u

Assisted-by: codex
DeltaFile
+13-2llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+3-0llvm/lib/Target/AArch64/AArch64TargetMachine.h
+16-22 files

LLVM/project bf5e92dclang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, llvm/include/llvm/ABI FunctionInfo.h

[ABI] Add CanBeFlattened to ArgInfo for Direct struct coerces
DeltaFile
+43-0llvm/unittests/ABI/FunctionInfoTest.cpp
+12-2llvm/include/llvm/ABI/FunctionInfo.h
+7-4clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+1-0llvm/utils/gn/secondary/llvm/unittests/ABI/BUILD.gn
+1-0llvm/unittests/ABI/CMakeLists.txt
+64-65 files

LLVM/project a09b06fllvm/include/llvm/ABI FunctionInfo.h

default CanBeFlattened to false
DeltaFile
+1-1llvm/include/llvm/ABI/FunctionInfo.h
+1-11 files

LLVM/project 32fa990llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-local-variable-skip-type.ll debug-local-variable-retained-nodes.ll

[SPIRV] Add support for NSDI DebugLocalVariable.
DeltaFile
+76-11llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+58-0llvm/test/CodeGen/SPIRV/debug-info/debug-local-variable.ll
+43-0llvm/test/CodeGen/SPIRV/debug-info/debug-local-variable-records-and-retained.ll
+41-0llvm/test/CodeGen/SPIRV/debug-info/debug-local-variable-retained-nodes.ll
+41-0llvm/test/CodeGen/SPIRV/debug-info/debug-local-variable-dbg-value.ll
+32-0llvm/test/CodeGen/SPIRV/debug-info/debug-local-variable-skip-type.ll
+291-111 files not shown
+312-117 files

LLVM/project c61dda2llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-bf16-combines.ll

[LLVM][CodeGen][SME] Make FMA decision independent of streaming mode. (#222598)

The relevant bfloat instructions are available in streaming mode and
thus we can benefit from the same BFMLAL based lowering.
DeltaFile
+1,173-489llvm/test/CodeGen/AArch64/sve-bf16-combines.ll
+2-2llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1,175-4912 files

LLVM/project 2fa5189libsycl/include/sycl sycl.hpp, libsycl/include/sycl/__impl group_barrier.hpp

[libsycl] Add group_barrier function. (#218971)

Assisted-by: Claude Code and GitHub Copilot

---------

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+86-0libsycl/include/sycl/__impl/group_barrier.hpp
+76-0libsycl/test/basic/group_barrier.cpp
+45-0libsycl/include/sycl/__spirv/spirv_types.hpp
+38-0libsycl/test/basic/group_barrier_device_code.cpp
+1-0libsycl/include/sycl/sycl.hpp
+246-05 files

LLVM/project 3407850libc/src/__support/OSUtil/linux/syscall_wrappers tgkill.h, libc/src/__support/threads/linux thread.cpp

[libc] Implement pthread_kill (#222625)

The implementation delegates to Thread::kill, which uses tgkill to
target the thread ID.

The main complication is handling zombie threads. POSIX.1-2024 requires
that pthread_kill on a terminated (zombie) thread does not return ESRCH
because the pthread_t handle is still valid. The Linux kernel reaps
threads immediately on exit, so calling tgkill on an exited thread would
return ESRCH (or worse, target a recycled TID). To handle this:
- we check the thread's detach_state first. If it's already EXITING, we
simply return success without calling tgkill (a zombie thread cannot
handle signals anyway).
- if the thread exits concurrently and tgkill returns -ESRCH, we assume
it transitioned to a zombie and treat it as success.

I've also added a tgkill syscall wrapper and replaced one raw usage of
SYS_tgkill.


    [2 lines not shown]
DeltaFile
+170-0libc/test/integration/src/pthread/pthread_kill_test.cpp
+42-0libc/src/signal/linux/pthread_kill.cpp
+40-0libc/src/__support/threads/linux/thread.cpp
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/tgkill.h
+31-0libc/src/signal/pthread_kill.h
+26-0libc/test/integration/src/pthread/CMakeLists.txt
+343-012 files not shown
+430-318 files

LLVM/project 46348fdlibsycl/include/sycl/__impl queue.hpp, libsycl/src/detail context_impl.hpp device_image_wrapper.hpp

[libsycl] Add queue constructors with context. (#221763)

Assisted-by: Claude Code.

---------

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Co-authored-by: Sergey Semenov <sergey.semenov at intel.com>
DeltaFile
+207-0libsycl/unittests/program_manager/program_cache.cpp
+67-0libsycl/include/sycl/__impl/queue.hpp
+49-16libsycl/src/detail/program_manager.cpp
+46-0libsycl/src/detail/context_impl.cpp
+23-17libsycl/src/detail/device_image_wrapper.hpp
+38-0libsycl/src/detail/context_impl.hpp
+430-3310 files not shown
+519-8816 files

LLVM/project 18ea5b0llvm/test/CodeGen/X86 combine-shl.ll

[X86] combine-shl.ll - regenerate asm comments (#222729)

Reduces diff in upcoming patch
DeltaFile
+14-14llvm/test/CodeGen/X86/combine-shl.ll
+14-141 files

LLVM/project 41c11falibcxx/test/std/utilities/variant/variant.relops three_way.pass.cpp

[libc++][test] Remove non-functional `constexpr` in three-way comparison test for `variant` (#222837)

When we are just testing SFINAE and do not provide definitions for these
comparison operators, or make them deleted, it is unhelpful to mark them
`constexpr`.

If the implementation uses `std::compare_three_way`, which uses deduced
return type in its `operator()`, in the `operator<=>` for `variant`,
more things in the function body would be instantiated and detected. As
a result, the `-Wundefined-inline` warning or something similar could be
raised. Currently, MSVC STL is doing so.
DeltaFile
+6-6libcxx/test/std/utilities/variant/variant.relops/three_way.pass.cpp
+6-61 files

LLVM/project d7f2a9dlldb/source/Plugins/ObjectContainer/Universal-Mach-O ObjectContainerUniversalMachO.cpp, lldb/unittests/ObjectContainer CMakeLists.txt ObjectContainerUniversalMachOTest.cpp

[lldb] Validate universal Mach-O slice bounds before parsing (#221493)

Opening a corrupt universal (fat) Mach-O file can crash lldb. A fat-arch
header entry's (offset, size) pair is untrusted, and `GetObjectFile()`
passes it straight to `ObjectFile::FindPlugin()` with no check against
the
container's own size.

A slice whose offset is 0 points back at the start of the same fat
header,
so `GetObjectFile()` recurses into itself until the stack is exhausted:

```
$ ./ObjectContainerTests --gtest_filter=GetObjectFileSelfReferentialSlice
    #230 ObjectContainerUniversalMachO::GetObjectFile(FileSpec const*) ObjectContainerUniversalMachO.cpp:188
    #231 CreateObjectFromContainer(...) ObjectFile.cpp:43
    #232 lldb_private::ObjectFile::FindPlugin(...) ObjectFile.cpp:146
    #233 ObjectContainerUniversalMachO::GetObjectFile(FileSpec const*) ObjectContainerUniversalMachO.cpp:188
    (repeats until the stack is exhausted)

    [22 lines not shown]
DeltaFile
+97-1lldb/unittests/ObjectContainer/ObjectContainerUniversalMachOTest.cpp
+15-5lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
+1-0lldb/unittests/ObjectContainer/CMakeLists.txt
+113-63 files

LLVM/project 0046d7fllvm/lib/Transforms/AggressiveInstCombine AggressiveInstCombine.cpp, llvm/test/Transforms/AggressiveInstCombine negative-lower-table-based-cttz.ll

[AggressiveInstCombine] Require a definitive initializer for table folds (#222826)

tryToRecognizeTableBasedCttzOrLog2 accepted any global that isConstant()
and hasInitializer(), but isConstant() only means the value does not
change at run time -- it does not mean the initializer that is read is
the one that gets linked. An interposable (weak/linkonce) constant, or
an externally_initialized constant, can be replaced with a different
constant table at link or load time, so folding tbl[i] against the
observed initializer is unsound for those.

Assisted-by: Claude Code
DeltaFile
+17-0llvm/test/Transforms/AggressiveInstCombine/negative-lower-table-based-cttz.ll
+2-1llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+19-12 files

LLVM/project cff0d63llvm/lib/Target/AMDGPU AMDGPUISelLowering.h AMDGPUISelLowering.cpp

[AMDGPU][NFC] Refactor integer to float lowering

Factor common code out of LowerUINT_TO_FP and LowerSINT_TO_FP.
DeltaFile
+15-37llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+1-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
+16-372 files

LLVM/project f089da7llvm/lib/Target/AMDGPU AMDGPUISelLowering.h AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU cvt_f32_ubyte.ll

[AMDGPU] Optimize i64 uitofp for unsigned byte values

Use v_cvt_f32_ubyte0 when the i64 source is known to fit in an unsigned
byte.
For example:

  uitofp (and i64 %x, 255) to float

This avoids the generic i64 to f32 expansion.
DeltaFile
+305-0llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
+18-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+1-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
+324-03 files

LLVM/project 3aeaa59libcxx/include/__atomic to_gcc_order.h

[libc++][NFC] Simplify __to_gcc_order by avoiding constexprness (#220940)

We never make use of the fact that these functions are `constexpr`, so
we might as well avoid complicating them for it. Even if we need them to
be `constexpr` at some point, we likely won't require them to be
`constexpr` in C++11, which is the only language mode with the single
statement restriction that caused this to be more complicated.
DeltaFile
+33-22libcxx/include/__atomic/to_gcc_order.h
+33-221 files

LLVM/project f276d8fllvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR openmp-task-depend-loc.mlir

[OMPIRBuilder] Don't leak a foreign debug loc into the taskwait call (#222586)

A kmp_depend_info array is hoisted to the entry block of the enclosing
function. Pointing the builder into that block also adopts the location
of what is already there, which belongs to whichever construct put it
there rather than to the construct being emitted. restoreIP does not put
the location back either, since it adopts the location of the
instruction it lands on, so in createTaskwait the leak outlives the
excursion and reaches the __kmpc_omp_taskwait_deps_51 call.

Use InsertPointGuard, which restores the location along with the
insertion point.

Fixes https://github.com/llvm/llvm-project/issues/222044

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+37-0mlir/test/Target/LLVMIR/openmp-task-depend-loc.mlir
+15-14llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+52-142 files

LLVM/project c45192clibcxx/include __config, libcxx/include/__locale_dir ctype_base.h locale_base_api.h

[libc++] Make _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE part of the locale base API (#219196)

Whether libc++ has to provide a rune table is really part of the
localization of a platform. Move it there instead of `<__config>`.
DeltaFile
+6-0libcxx/include/__locale_dir/support/linux.h
+0-5libcxx/include/__config
+2-1libcxx/include/__locale_dir/ctype_base.h
+3-0libcxx/include/__locale_dir/locale_base_api.h
+1-1libcxx/src/locale.cpp
+2-0libcxx/include/__locale_dir/support/windows.h
+14-76 files not shown
+26-712 files

LLVM/project c8655a8lldb/unittests/Utility RegisterValueTest.cpp

[lldb][test] Fix RegisterValueTest.cpp compile with GCC (#222889)

Avoid some most vexing parse problems.

Fixes #220707 / 19eb8bf1a5fd01e2bca2c7112b7f393f946d67f4.
DeltaFile
+8-5lldb/unittests/Utility/RegisterValueTest.cpp
+8-51 files

LLVM/project e3ba4c8llvm/include/llvm/CodeGen FunctionLoweringInfo.h, llvm/lib/CodeGen/SelectionDAG StatepointLowering.cpp

DAG: Materialize a directly-lowered gc.relocate in its own block

Fixes machine verifier errors with -early-live-intervals.

A NoRelocate statepoint value is a directly-lowered leaf value. When its
gc.relocate is in another block, it was made available by exporting it from the
statepoint's block. For an invoke this defines the vreg after the call, which
does not dominate the use reached along the unwind edge, giving an invalid live
range (or a silent read of an undefined register without -verify-machineinstrs).

Since the leaf has no chain or operands, rematerialize it at the gc.relocate
instead of exporting it. undef already rematerializes there. A gc.relocate
value is always a pointer, so only the integer-constant and frame-index leaves
are handled.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+89-0llvm/test/CodeGen/X86/statepoint-relocate-eh.ll
+46-6llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+25-0llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
+160-63 files

LLVM/project 764a4f4bolt/lib/Passes MCF.cpp, bolt/test/AArch64 edge-weight-estimation-fixes.s

[BOLT] Fixed BOLT edge weight estimation in non-LBR mode. (#222538)

Before: When estimating edge weights within `computeEdgeWeights` in
`MCF.cpp`, if the `TotalChildrenCount` is 0, the default edge weight is
`1 / (GraphT::child_end(BB)_ - GraphT::child_begin(BB))` resulting in
integer division and incorrect distribution of estimated edge weights.

After: Correctly estimate edge weights with zero and non-zero values of
`TotalChildrenCount` by enforcing floating point division.

---------

Co-authored-by: Thrrreeee <shijinrui at bytedance.com>
DeltaFile
+61-0bolt/test/AArch64/edge-weight-estimation-fixes.s
+1-1bolt/lib/Passes/MCF.cpp
+62-12 files

LLVM/project 884f70eorc-rt/include/orc-rt-c/support Error.h WrapperFunction.h

[orc-rt] Fix C++ comments in C header. NFC. (#222887)
DeltaFile
+4-2orc-rt/include/orc-rt-c/support/WrapperFunction.h
+1-1orc-rt/include/orc-rt-c/support/Error.h
+5-32 files

LLVM/project 5d6c716llvm/test/Transforms/LoopVectorize outer_loop_contiguous.ll vplan-widen-select-instruction.ll, llvm/test/Transforms/LoopVectorize/AArch64 scalable-avoid-scalarization.ll outer_loop_prefer_scalable.ll

[VPlan] Narrow VPWidenGEPRecipe if only its first lane is used. (#221171)

Extend existing narrowing in legalizeAndOptimizeInductions, already
applied to VPReplicateRecipe and VPWidenRecipe, to VPWidenGEPRecipe as
well. This improves cases where an interleaved access's insert position
shares an address calculation with a strided access (see
RISCV/interleaved-load-masked-store.ll), which previously caused the
legacy cost model to classify the address as non-uniform.
DeltaFile
+61-0llvm/test/Transforms/LoopVectorize/RISCV/interleaved-load-masked-store.ll
+7-18llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
+4-12llvm/test/Transforms/LoopVectorize/vplan-widen-select-instruction.ll
+4-8llvm/test/Transforms/LoopVectorize/outer_loop_contiguous.ll
+1-10llvm/test/Transforms/LoopVectorize/AArch64/scalable-avoid-scalarization.ll
+2-9llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_prefer_scalable.ll
+79-5712 files not shown
+100-11118 files

LLVM/project f214b9allvm/test/CodeGen/AMDGPU amdgcn.bitcast.832bit.ll amdgcn.bitcast.896bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fpow.ll

Merge branch 'main' into users/jmmartinez/nfs_headache
DeltaFile
+57,327-55,762llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,634-6,608llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+5,576-5,657llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+4,486-4,550llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+2,884-2,534llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+4,053-1,008llvm/test/CodeGen/AMDGPU/GlobalISel/fpow.ll
+80,960-76,1192,163 files not shown
+167,456-119,7162,169 files

LLVM/project dc68250llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 operand-chains-max-reg-vf.ll

[SLP] Limit second pass to register VF in vectorizeNonVectorizableInsts. (#222755)

The second tryToVectorizeList pass in vectorizeNonVectorizableInsts
would try all roots for each possible VF between 1 and the number of
entries in the list.

This can cause super-linear compile-time, for example when there are
basic blocks with calls taking a large number of loads as arguments.

For example, running SLPVectorizer on a block with 1024 loads passed to
calls (https://llvm.godbolt.org/z/8M53G6WzW) will take a large amount of
time (timeout on godbolt, locally on Apple M1 it takes ~30s). With the
fix, it only takes 0.01s.

On large IR corpus, I did not see any difference in vectorization
decisions on AArch64.

PR: https://github.com/llvm/llvm-project/pull/222755
DeltaFile
+335-0llvm/test/Transforms/SLPVectorizer/AArch64/operand-chains-max-reg-vf.ll
+6-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+341-12 files

LLVM/project 462dbc5llvm/include/llvm InitializePasses.h, llvm/include/llvm/CodeGen Passes.h ResetMachineFunctionPass.h

[CodeGen][NPM] Port ResetMachineFunction to NPM
DeltaFile
+76-63llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
+36-0llvm/include/llvm/CodeGen/ResetMachineFunctionPass.h
+2-1llvm/include/llvm/CodeGen/Passes.h
+1-1llvm/lib/CodeGen/TargetPassConfig.cpp
+1-1llvm/include/llvm/Passes/MachinePassRegistry.def
+1-1llvm/include/llvm/InitializePasses.h
+117-672 files not shown
+119-678 files

LLVM/project d63f522flang/lib/Optimizer/Transforms LoopInvariantCodeMotion.cpp, flang/test/Transforms licm.fir

[flang] Do not hoist fir.field_index out of loops

Lowering a consumer of a !fir.field value inspects its defining operation:
for a record whose layout is known at compile time the field becomes an LLVM
GEP struct index, which must be a constant, and otherwise the `field`
attribute is read off the defining op. A field value therefore may not be a
block argument.

LICM broke that. fir.field_index is Pure and takes no operands, so it is
trivially loop-invariant and was hoisted out of the loop. Lowering emits one
inside each arm of a construct -- for example the CASEs of a SELECT CASE that
each pass a different component of the same derived type as an actual
argument -- so hoisting them left those arms as otherwise-identical blocks
differing only in that operand. Block merging then merged them and threaded
the field through a new block argument, and codegen aborted with "must be a
constant".

Leave producers of a !fir.field where they are. The arms then differ by an
operation rather than by an operand, so they are no longer merge candidates.

    [7 lines not shown]
DeltaFile
+15-0flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
+10-2flang/test/Transforms/licm.fir
+25-22 files

LLVM/project eb6fe5allvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 neon-addsub-long-reassoc.ll

[AArch64] Reassociate adds/subs of extends for [SU](ADD|SUB)L. (#222561)

We do this for expressions that can't use widening add/sub.
DeltaFile
+239-0llvm/test/CodeGen/AArch64/neon-addsub-long-reassoc.ll
+52-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+291-02 files

LLVM/project 6e25eaelibc/src/pthread pthread_attr_setschedpolicy.h CMakeLists.txt, libc/test/src/pthread pthread_attr_test.cpp

[libc] Implement pthread_attr_[gs]etschedpolicy (#222682)

This patch implements pthread_attr_setschedpolicy and
pthread_attr_getschedpolicy.

This commit only operates on the pthread_attr_t object. It does not
attempt to install the scheduling policy when creating a new thread. I'm
leaving that for a separate patch as it requires a moderately
complicated startup dance to ensure that the scheduling policy takes
effect before the startup code runs.

The validation of inputs in pthread_attr_setschedpolicy is an
interesting question. Glibc accepts only policies explicitly declared in
POSIX, while other implementations let the user pass anything, and rely
on the kernel to validate the arguments. Interestingly, even glibc does
not validate the arguments in pthread_setschedparam.

For llvm-libc, I chose not to validate the arguments either. This is
*mostly* consistent with POSIX, which says (emphasis mine):

    [11 lines not shown]
DeltaFile
+36-0libc/test/src/pthread/pthread_attr_test.cpp
+31-0libc/src/pthread/pthread_attr_getschedpolicy.cpp
+28-0libc/src/pthread/pthread_attr_setschedpolicy.cpp
+27-0libc/src/pthread/CMakeLists.txt
+27-0libc/src/pthread/pthread_attr_getschedpolicy.h
+26-0libc/src/pthread/pthread_attr_setschedpolicy.h
+175-07 files not shown
+197-013 files