LLVM/project 0f09d4bclang/test/CodeGen amdgpu-feature-builtins-invalid-use.cpp, clang/test/SemaCXX amdgpu-feature-builtins-invalid-use.cpp

clang: Move __builtin_amdgcn_processor_is diagnostic test to sema

This wasn't checking the codegen result, so move it to the right place
and use -verify instead of FileChecking stderr.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+50-0clang/test/SemaCXX/amdgpu-feature-builtins-invalid-use.cpp
+0-48clang/test/CodeGen/amdgpu-feature-builtins-invalid-use.cpp
+50-482 files

LLVM/project d77731fllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/RISCV clmul.ll clmulr.ll

Merge branch 'main' into users/spavloff/snan
DeltaFile
+31,001-87,165llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+15,519-26,130llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+12,134-24,576llvm/test/CodeGen/RISCV/clmul.ll
+16,791-15,581llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+8,309-12,701llvm/test/CodeGen/RISCV/clmulr.ll
+7,968-12,512llvm/test/CodeGen/RISCV/clmulh.ll
+91,722-178,66515,878 files not shown
+1,233,299-796,47215,884 files

LLVM/project a6e3bf8clang/lib/AST/ByteCode Interp.cpp InterpHelpers.h

[clang][bytecode] Pass AccessKinds to Check{Constant,Mutable} (#205720)

So we can pass them on do `diagnoseNonConstVariable`.

This doesn't make a difference right now but is needed for a future
commit.
DeltaFile
+11-9clang/lib/AST/ByteCode/Interp.cpp
+5-3clang/lib/AST/ByteCode/InterpHelpers.h
+2-1clang/lib/AST/ByteCode/Interp.h
+18-133 files

LLVM/project dd499f8clang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Flang.cpp

[Flang][Driver]Add support for option '-fpseudo-probe-for-profiling' in flang (#205046)

Added support for option `-fpseudo-probe-for-profiling` in flang.

- When the option `-fpseudo-probe-for-profiling` is passed, the compiler
sets the` PseudoProbeForProfiling` flag and triggers the
`SampleProfileProbePass`. This pass inserts `llvm.pseudoprobe(..)`
intrinsic calls and `!llvm.pseudo_probe_desc` metadata into the IR.
DeltaFile
+33-0flang/test/Integration/pseudo-probe-for-profiling.f90
+15-7flang/lib/Frontend/FrontendActions.cpp
+15-0flang/test/Driver/fpseudo-probe-for-profiling.f90
+5-0clang/lib/Driver/ToolChains/Flang.cpp
+5-0flang/lib/Frontend/CompilerInvocation.cpp
+1-1clang/include/clang/Options/Options.td
+74-81 files not shown
+75-87 files

LLVM/project 101b2cdflang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP declare-reduction-use-reexport-remerge.f90 declare-reduction-use-reexport-merged.f90

[flang][OpenMP] Fix declare reduction lookup for USE...ONLY imports

CheckSymbolSupportsType walked every module in the global scope to find
declare-reduction declarations. That accepted reductions from modules
that were never USE'd, or were excluded via USE...ONLY, and it still
rejected some valid imports such as a renamed operator.

Replace the global scan with FindUserReduction(), which resolves the
reduction the way name resolution resolves the operator. It checks a
directly visible reduction first, then follows the operator's USE
associations and merged-generic sources to the declaring modules,
re-deriving the source module's mangled name for renamed operators. The
search recurses through re-exporting (facade) modules and is type-aware,
so an operator that carries reductions for several types resolves to the
one supporting the requested type. A locally declared reduction is
authoritative and shadows reductions reachable through the operator.

Consolidate the duplicated GetReductionFortranId() (formerly static in
both resolve-names.cpp and mod-file.cpp) into a shared utility, fixing a

    [11 lines not shown]
DeltaFile
+131-30flang/lib/Semantics/check-omp-structure.cpp
+93-0flang/test/Semantics/OpenMP/declare-reduction-use-reexport-remerge.f90
+63-0flang/test/Semantics/OpenMP/declare-reduction-use-reexport-merged.f90
+61-0flang/test/Semantics/OpenMP/declare-reduction-use-mixed-merged.f90
+60-0flang/test/Semantics/OpenMP/declare-reduction-use-only-merged.f90
+59-0flang/test/Semantics/OpenMP/declare-reduction-use-shadow-merged.f90
+467-309 files not shown
+687-9015 files

LLVM/project f722c3fclang/include/clang/Basic DiagnosticSemaKinds.td, clang/test/SemaHIP amdgpu-feature-predicates-guard-use.hip

clang: Fix referring to __builtin_amdgcn_is_processor in diagnostic

The builtin name is really __builtin_amdgcn_processor_is.
DeltaFile
+2-2clang/test/SemaHIP/amdgpu-feature-predicates-guard-use.hip
+1-1clang/include/clang/Basic/DiagnosticSemaKinds.td
+3-32 files

LLVM/project 67349c5clang/lib/Sema SemaAMDGPU.cpp

clang/AMDGPU: Simplify cpu name checks for __builtin_amdgcn_is_processor

Instead of trying to figure out which TargetInfo to use, skip it and
directly use the source of truth from TargetParser. This avoids regressions
in future commits where isValidCPUName will be conditionally filtered.
DeltaFile
+4-8clang/lib/Sema/SemaAMDGPU.cpp
+4-81 files

LLVM/project 1ece64cclang/test/CodeGen/WebAssembly wasm-funcref-to-ptr-error.c

Fix test from #203165 when no wasm target is configured (#205722)

Fix test from #203165 when no wasm target is configured
DeltaFile
+1-0clang/test/CodeGen/WebAssembly/wasm-funcref-to-ptr-error.c
+1-01 files

LLVM/project 374df9fllvm/lib/Target/AArch64 AArch64SRLTDefineSuperRegs.cpp AArch64.h, llvm/test/CodeGen/AArch64 subreg-liveness-fix-subreg-to-reg-implicit-def.mir

[NewPM][AArch64] Port AArch64SRLTDefineSuperRegs pass to NewPassManager (#202803)

Standard port for the AArch64SRLTDefineSuperRegs pass.

Assisted by Gemini
DeltaFile
+38-17llvm/lib/Target/AArch64/AArch64SRLTDefineSuperRegs.cpp
+9-2llvm/lib/Target/AArch64/AArch64.h
+2-2llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+1-0llvm/lib/Target/AArch64/AArch64PassRegistry.def
+1-0llvm/test/CodeGen/AArch64/subreg-liveness-fix-subreg-to-reg-implicit-def.mir
+51-215 files

LLVM/project 765f0d1clang/test/CodeGen/WebAssembly wasm-funcref.c, llvm/lib/Target/WebAssembly WebAssemblyLowerRefTypesIntPtrConv.cpp WebAssemblyFastISel.cpp

[WebAssembly] Represent reference types as TargetExtType (#203165)

Originally #71540 by Paolo Matos, I picked it up and finished it.
Resolves https://github.com/llvm/llvm-project/issues/69894.

Model WebAssembly externref and funcref as target("wasm.externref") /
target("wasm.funcref") TargetExtTypes instead of pointers in
non-integral address spaces 10 and 20.

The entire WebAssemblyLowerRefTypesIntPtrConv can be removed.

This breaks the GlobalISel handling for reference types, I just disabled
GlobalISel handling for functions that use them.

I added intrinsics for `wasm.ptr.to_funcref` and `wasm.funcref.to_ptr`.
ptr.to_funcref does a table.get from the indirect function pointer
table. As a special case, 0 is converted to the null funcref rather than
doing table.get on 0. `wasm.funcref.to_ptr` is only handled when we call
it immediately, otherwise it will fail to lower. We could dynamically

    [13 lines not shown]
DeltaFile
+0-85llvm/lib/Target/WebAssembly/WebAssemblyLowerRefTypesIntPtrConv.cpp
+50-21clang/test/CodeGen/WebAssembly/wasm-funcref.c
+59-11llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
+67-0llvm/test/CodeGen/WebAssembly/ref-null-zeroinitializer.ll
+6-50llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/call-basics.ll
+32-21llvm/lib/Target/WebAssembly/GISel/WebAssemblyCallLowering.cpp
+214-18858 files not shown
+679-40564 files

LLVM/project c0e80b9clang-tools-extra/test/clang-doc class-partial-specialization.cpp, clang-tools-extra/test/clang-doc/json class-partial-specialization.cpp nested-pointer-qualifiers.cpp

[clang-doc] Test more language constructs (#205585)

We're missing several different language constructs in our tests. This
patch simply adds the basic tests and captures the output without trying
to fix or adjust any behavior, and can be considered a sort of precommit
test for future fixes to the various documentation components.
DeltaFile
+25-0clang-tools-extra/test/clang-doc/json/class-partial-specialization.cpp
+18-0clang-tools-extra/test/clang-doc/json/nested-pointer-qualifiers.cpp
+18-0clang-tools-extra/test/clang-doc/json/member-function-pointer-type.cpp
+18-0clang-tools-extra/test/clang-doc/json/function-pointer-type.cpp
+18-0clang-tools-extra/test/clang-doc/json/array-type.cpp
+13-0clang-tools-extra/test/clang-doc/class-partial-specialization.cpp
+110-09 files not shown
+165-015 files

LLVM/project 2fe6548flang/lib/Semantics expression.cpp check-cuda.cpp, flang/test/Semantics cuf30.cuf

[flang][cuda] Add NYI message for CUDA dynamic parallelism (#205628)
DeltaFile
+19-0flang/test/Semantics/cuf30.cuf
+10-2flang/lib/Semantics/expression.cpp
+4-0flang/lib/Semantics/check-cuda.cpp
+33-23 files

LLVM/project 53fb849clang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode evaluate-dtor-codegen.cpp

[clang][bytecode] Ignore indeterminate APValues (#205555)

They don't produce a value and for us, that means we just need to ignore
them and not initialize anything.
DeltaFile
+14-0clang/test/AST/ByteCode/evaluate-dtor-codegen.cpp
+9-0clang/lib/AST/ByteCode/Compiler.cpp
+23-02 files

LLVM/project f9953d4flang/lib/Parser executable-parsers.cpp, flang/test/Semantics cuf23.cuf

[flang][cuda] Accept cuf kernel do without scalar (#205705)

The base compiler accept `!$cuf kernel do()` instead of raising an
error. Update the parser to accept the same syntax.
`!$cuf kernel do()` is equivalent to `!$cuf kernel do`
DeltaFile
+5-0flang/test/Semantics/cuf23.cuf
+3-1flang/lib/Parser/executable-parsers.cpp
+8-12 files

LLVM/project 1827faeclang/test/Driver/print-enabled-extensions aarch64-hip12.c, llvm/lib/Target/AArch64 AArch64Processors.td

[AArch64] Add missing SubtargetFeature for hip12 core (#205246)

The initial patch for the hip12 core had omitted several subtarget
features:

  FeatureFP16FML, FeatureFlagM, FeaturePredRes, FeatureSB, FeatureSSBS,
  FeatureCCIDX, FeatureRandGen.
DeltaFile
+3-1llvm/lib/Target/AArch64/AArch64Processors.td
+3-0clang/test/Driver/print-enabled-extensions/aarch64-hip12.c
+6-12 files

LLVM/project bd1acfcllvm/include/llvm/Transforms/IPO SampleProfileMatcher.h, llvm/lib/Transforms/IPO SampleProfileMatcher.cpp

[SampleProfileMatcher] Sample profile duplication to avoid stale CFG profile matching conflicts (#202460)

Stale profile matching may map multiple different IR anchors into one
profile anchor because of the common function basename. One example is
`foo(int)` and `foo<bar>(float)` can both be mapped to `foo()` if
`foo()` is the only function that has a profile. And this creates
conflicting CFG matching for `foo(int)` and `foo<bar>(float)` when they
each runs stale profile matching. The CFG matching results will be
overwritten among the conflicting functions. And it will trigger the
following assertation failure:

https://github.com/llvm/llvm-project/blob/7087094b05a1bba64a99474cc501328919e11b4a/llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp#L332-L333

This patch tries to detect this conflict during the stale CG matching,
and create duplicated profiles to avoid CFG matching conflicts.
DeltaFile
+278-0llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-orphan-conflict.ll
+62-0llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
+5-0llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-orphan-conflict.prof
+2-0llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
+347-04 files

LLVM/project a218ee3lldb/include/lldb/Core ModuleSpec.h, lldb/include/lldb/Target Process.h

Fix ProcessElfCore::FindModuleUUID() so it work with symlinks. (#205235)

ProcessElfCore was reading the NT_FILE list and using that to help
FindModuleUUID to provide UUID information when loading core files. The
NT_FILE list contains resolved paths only, while the
DynamicLoaderPOSIXDYLD plug-in was using paths found in the r_debug
structure which contains a linked list of all of the shared libraries in
a process. The issue was these paths could be symlinks which would cause
ProcessELFCore::FindModuleUUID(...) to fail because the paths wouldn't
match up. This led to the ProcessELFCore often not being able to provide
UUIDs for shared libraries and cause the incorrect binaries to be loaded
from the current machine even when the shared library UUIDs don't match.

The solution was to add the ability for a ModuleSpec to contain a load
address for the shared library. This allows ProcessELFCore to uniquely
identify a library regardless of the name used in NT_FILE. We can now
correctly supply the UUID from the .gnu-build-id to any binaries which
use symlinks when linking, but have differing resolved paths to the
libraries.

    [13 lines not shown]
DeltaFile
+135-0lldb/test/API/functionalities/postmortem/elf-core/elf-dyld-nt-file-mismatch.yaml
+68-0lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+32-7lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+30-0lldb/include/lldb/Core/ModuleSpec.h
+9-8lldb/source/Core/DynamicLoader.cpp
+12-1lldb/include/lldb/Target/Process.h
+286-164 files not shown
+293-2310 files

LLVM/project 85a94e3clang/docs ReleaseNotes.rst, clang/lib/Sema TreeTransform.h

[Clang] Transform SubstNonTypeTemplateParmExpr replacements in a constant-evaluated context (#196791)

Fixes #175831.

When transforming a `SubstNonTypeTemplateParmExpr`,
`TreeTransform::TransformSubstNonTypeTemplateParmExpr` calls
`Sema::CheckTemplateArgument` so that any sema annotations (such as
implicit casts) that were stripped from the replacement are recovered.
This is done in whatever evaluation context the node happens to appear
in after substitutions.

Since the normalization of constraints, a `SubstNonTypeTemplateParmExpr`
can end up inside an unevaluated operand, so the replacement gets
rebuilt in an unevaluated context.
Entities it refers to are then not odr-used: for example, when a call
materializes a by-value function parameter of class type, the copy
constructor is never marked odr-used and its definition is never
instantiated.
The constant evaluation performed by `CheckTemplateArgument` afterwards

    [11 lines not shown]
DeltaFile
+65-3clang/test/SemaTemplate/concepts.cpp
+13-0clang/lib/Sema/TreeTransform.h
+1-1clang/docs/ReleaseNotes.rst
+79-43 files

LLVM/project 1f713c0clang/docs ReleaseNotes.rst, clang/lib/AST ExprConstant.cpp

[Clang] Fixed an assertion in constant evaluation when using a defaulted comparison operator in a union (#198830)

Fixes an assertion failure by decoupling `IsTrivialMemoryOperation` from
assignment operators.

fix #147127
DeltaFile
+13-6clang/lib/AST/ExprConstant.cpp
+12-0clang/test/SemaCXX/gh147127.cpp
+1-0clang/docs/ReleaseNotes.rst
+26-63 files

LLVM/project 05daa3dlibc/src/complex/generic cargf.cpp carg.cpp, libc/test/src/complex CArgTest.h cargf_test.cpp

[libc][complex] Add cargf and carg functions to libc complex math (#204087)

This PR adds carg and cargf function to libc complex and also add test
cases to cover some special inputs.

---------

Signed-off-by: jinge90 <ge.jin at intel.com>
DeltaFile
+107-0libc/test/src/complex/CArgTest.h
+37-0libc/test/src/complex/cargf_test.cpp
+36-0libc/test/src/complex/carg_test.cpp
+27-0libc/src/complex/generic/cargf.cpp
+27-0libc/src/complex/generic/carg.cpp
+27-0libc/src/complex/generic/CMakeLists.txt
+261-014 files not shown
+370-120 files

LLVM/project 1fadc09mlir/lib/Dialect/XeGPU/IR XeGPUDialect.cpp, mlir/test/Dialect/XeGPU propagate-layout-subgroup.mlir

[MLIR][XeGPU] Fix order remapping in layout transpose (#205212)

LayoutAttr::transposeDims and LayoutAttr::isTransposeOf mishandled the
`order` field when transposing a layout. The `order` field is
fundamentally different from the size-valued fields (sg_layout, sg_data,
inst_data, lane_layout, lane_data): its values are dimension indices
(order[0] is the fastest-varying dim), not per-position sizes. The two
require different transpose rules:
    - Size fields — reindex by position: new[i] = orig[perm[i]]
- order — relabel values through the inverse permutation: newOrder[i] =
inversePerm[origOrder[i]]

Both functions incorrectly applied the size-field rule to `order`.
Because the bug was applied consistently in both places, it stayed
hidden for trivial/symmetric (e.g. 2D [1,0]) permutations, where the two
rules happen to coincide. It only surfaces for non-trivial permutations
such as the 3D [1,0,2] produced by a broadcast→transpose chain.
   
   Assist-by-Claude

    [3 lines not shown]
DeltaFile
+36-5mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
+19-0mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
+55-52 files

LLVM/project 4efc6efllvm/lib/Target/RISCV RISCVAsmPrinter.cpp, llvm/test/CodeGen/RISCV option-arch-experimental.ll

[RISCV] Emit .option arch extensions without the "experimental-" prefix (#205471)

We currently emit the "experimental-" prefix in .option arch, e.g.
`.option arch, +experimental-zicfiss`, but the assembler can't parse
that back.

There are two ways to fix this:

1. Teach the assembler to accept `.option arch, +experimental-zicfiss`.
2. Emit `.option arch, +zicfiss` instead of `.option arch,
+experimental-zicfiss`.

This patch takes the second approach, which better fits the .option arch
syntax we defined. Experimental extensions are still guarded by
`-menable-experimental-extensions`.
DeltaFile
+13-0llvm/test/CodeGen/RISCV/option-arch-experimental.ll
+3-1llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+16-12 files

LLVM/project 39ed392llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/RISCV rvp-srl-bitcast-bv.ll

[DAG] Fix illegal type in srl(bitcast(build_vector)) fold (#205074)

The fold

```
  (srl (bitcast (build_vector e1, ..., eN)), (N-1) * eltsize) -> (zext eN)
```

added in #181412 built the result through a narrow element integer type,
which
can be illegal (e.g. i16 on RV32 with the P extension, where `<2 x i16>`
is
legal). When the fold runs in the last DAG combine that illegal type
hits the
"Unexpected illegal type!" assert.

Build the result directly in the result type `VT` and mask off the high
bits
instead:

    [13 lines not shown]
DeltaFile
+36-0llvm/test/CodeGen/RISCV/rvp-srl-bitcast-bv.ll
+4-3llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+40-32 files

LLVM/project 89ac672libclc/clc/lib/nvptx CMakeLists.txt, libclc/clc/lib/nvptx/relational clc_isinf.cl

[libclc] Delete wrong implementation nvptx clc_isinf (#205699)

The file calls __nv_isinf which return 1 for true on vector input, while
the generic clc_isinf which return -1 for true on vector input. Using
nvptx clc_isinf in OpenCL isinf violates OpenCL spec.

Found the issue in https://github.com/intel/llvm/pull/22413
DeltaFile
+0-33libclc/clc/lib/nvptx/relational/clc_isinf.cl
+0-1libclc/clc/lib/nvptx/CMakeLists.txt
+0-342 files

LLVM/project f4a1491llvm/include/llvm/Target TargetLoweringObjectFile.h, llvm/lib/CodeGen TargetLoweringObjectFileImpl.cpp

[x86] Handle implicit sections when determining if a global is large (#204247)

Just like explicit sections.

We were seeing globals with implicit sections marked large under the
medium code model.

Assisted-by: Gemini
DeltaFile
+134-0llvm/test/CodeGen/X86/large-implicit-section.ll
+5-24llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+14-8llvm/lib/Target/TargetMachine.cpp
+19-0llvm/lib/Target/TargetLoweringObjectFile.cpp
+5-0llvm/include/llvm/Target/TargetLoweringObjectFile.h
+177-325 files

LLVM/project 635ed0elibc/src/__support/OSUtil/linux/stat kernel_statx_types.h stat_via_statx.h, libc/src/sys/stat/linux kernel_statx.h CMakeLists.txt

[libc][stat] Move internal statx type definition into OSUtil/linux (#203975)

This PR refactors the internally defined `statx` buffer to a shareable
location so other LLVM-libc linux entrypoints may call `statx` without
concern for name conflicts around `linux/stat.h`.

Specifically, this PR moves `libc/src/sys/stat/linux/kernel_statx.h` to
`libc/src/__support/OSUtil/linux/stat/` and splits it into two files,
`kernel_statx_types.h` + `stat_via_statx.h`.

This will be used by `realpath`.
DeltaFile
+0-107libc/src/sys/stat/linux/kernel_statx.h
+72-0libc/src/__support/OSUtil/linux/stat/kernel_statx_types.h
+66-0libc/src/__support/OSUtil/linux/stat/stat_via_statx.h
+51-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+9-15libc/src/sys/stat/linux/CMakeLists.txt
+22-0libc/src/__support/OSUtil/linux/stat/CMakeLists.txt
+220-1224 files not shown
+256-14010 files

LLVM/project 61cbfabcompiler-rt/lib/instrumentor-tools instrumentor_runtime.h, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp CMakeLists.txt

[Instrumentor] Add runtime examples: [1/N] A flop counter

This adds a instrumentor-tools folder into compiler RT to showcase
use cases of the instrumentor. The initial example is a program that,
via instrumentation, counts the number of flops performed. Call and
intrinsic support will follow after #198042.

Partially developped by Claude (AI), tested and verified by me.
DeltaFile
+293-0compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+164-0compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+82-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+77-0compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+75-0compiler-rt/test/instrumentor-tools/lit.cfg.py
+49-0compiler-rt/test/instrumentor-tools/simple_flops.c
+740-020 files not shown
+966-126 files

LLVM/project a130299clang/include/clang/AST OpenMPClause.h, clang/lib/AST OpenMPClause.cpp

[OpenMP][Clang] Fix parsing of num_teams lower-bound modifier
DeltaFile
+46-35clang/lib/Sema/SemaOpenMP.cpp
+12-44clang/lib/Parse/ParseOpenMP.cpp
+41-2clang/include/clang/AST/OpenMPClause.h
+15-15clang/lib/AST/OpenMPClause.cpp
+17-11clang/test/OpenMP/teams_num_teams_messages.cpp
+16-7clang/lib/Sema/TreeTransform.h
+147-11412 files not shown
+209-13118 files

LLVM/project 2e09869compiler-rt/lib/instrumentor-tools instrumentor_runtime.h, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp CMakeLists.txt

[Instrumentor] Add runtime examples: [1/N] A flop counter

This adds a instrumentor-tools folder into compiler RT to showcase
use cases of the instrumentor. The initial example is a program that,
via instrumentation, counts the number of flops performed. Call and
intrinsic support will follow after #198042.

Partially developped by Claude (AI), tested and verified by me.
DeltaFile
+293-0compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+164-0compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+82-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+77-0compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+75-0compiler-rt/test/instrumentor-tools/lit.cfg.py
+53-0compiler-rt/test/instrumentor-tools/CMakeLists.txt
+744-020 files not shown
+971-126 files

LLVM/project b37b10dclang/lib/Driver Driver.cpp, clang/test/Driver sycl-print-internal-defines.cpp

[Driver][SYCL] Treat stdin as C++ when -fsycl is active (#204968)

1723b7a30145 added a frontend check that rejects C inputs when SYCL mode
is active (since SYCL requires C++). The stdin path in BuildInputs
hardcoded TY_C regardless of driver mode, so `-fsycl -dM -E -` would
pass -x c to cc1 and trigger the new diagnostic.

Fix: use TY_CXX for stdin when IsSYCL.

Also, upstream a downstream test that fails due to 1723b7a30145.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
DeltaFile
+8-0clang/test/Driver/sycl-print-internal-defines.cpp
+4-0clang/lib/Driver/Driver.cpp
+12-02 files