LLVM/project be70866llvm/test/CodeGen/AMDGPU maximumnum.ll amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-private.mir legalize-load-local.mir

Merge main
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+9,385-9,006llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+5,575-5,393llvm/test/CodeGen/AMDGPU/maximumnum.ll
+50,222-36,34610,642 files not shown
+596,831-421,22010,648 files

LLVM/project 6466eb4lld/ELF Symbols.h

Review feedback
DeltaFile
+4-9lld/ELF/Symbols.h
+4-91 files

LLVM/project f740764llvm/test/CodeGen/AMDGPU maximumnum.ll amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-private.mir legalize-load-local.mir

Merge main
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+9,385-9,006llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+5,575-5,393llvm/test/CodeGen/AMDGPU/maximumnum.ll
+50,222-36,34610,642 files not shown
+596,827-421,21110,648 files

LLVM/project 8a5d565llvm/test/tools/TargetParser get-triple-system-name.test

TargetParser: Fix test quoting lit substitution in run line (#213570)
DeltaFile
+1-1llvm/test/tools/TargetParser/get-triple-system-name.test
+1-11 files

LLVM/project 7891000llvm/test/CodeGen/AMDGPU maximumnum.ll amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-private.mir legalize-load-local.mir

Merge main
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+9,385-9,006llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+5,575-5,393llvm/test/CodeGen/AMDGPU/maximumnum.ll
+50,222-36,34610,642 files not shown
+596,827-421,21110,648 files

LLVM/project 1d5ea98llvm/test/CodeGen/AMDGPU maximumnum.ll amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-private.mir legalize-load-local.mir

Merge main
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+9,385-9,006llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+5,575-5,393llvm/test/CodeGen/AMDGPU/maximumnum.ll
+50,222-36,34610,642 files not shown
+596,827-421,21110,648 files

LLVM/project 6849789llvm/test/CodeGen/AMDGPU sink-fmul-fadd.ll, llvm/test/Transforms/CodeGenPrepare/AMDGPU sink-fmul-fadd-contract-fast.ll sink-fmul-fadd.ll

[NFC][AMDGPU] Add tests for an fmul split from its fadd/fsub user (#213303)

Record the current behaviour over the types and subtargets where the
fusion rules differ, f32, f16, bf16, f64, v2f32 and v2f16, with
denormals both enabled and flushed, with and without the contract flags,
and under -fp-contract=fast.

Contributes to https://github.com/llvm/llvm-project/issues/211092
DeltaFile
+1,011-0llvm/test/CodeGen/AMDGPU/sink-fmul-fadd.ll
+571-0llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd.ll
+57-0llvm/test/Transforms/CodeGenPrepare/AMDGPU/sink-fmul-fadd-contract-fast.ll
+1,639-03 files

LLVM/project db8d8fdllvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination xor-as-sub.ll

[ConstraintElim] Decompose xor %a, -1 as -1 - %a in the signed system. (#213476)

InstCombine canonicalizes sub nsw i8 -1, %a -> xor i8 %a, -1. Decompose
the XOR as `sub nsw -1, %a` in the signed system

Alive2 Proof: https://alive2.llvm.org/ce/z/f_YVjH

This triggers quite rarely in C/C++ workloads (no end-to-end changes in
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/840), found
one instance in Blender. One simple end-to-end C example is
https://clang.godbolt.org/z/G343shYje

This is part of an effort to improve ConstraintElimination support for
IR generated by the Swift compiler, where such patterns are more common
due to a number of signed runtime checks.

PR: https://github.com/llvm/llvm-project/pull/213476
DeltaFile
+45-0llvm/test/Transforms/ConstraintElimination/xor-as-sub.ll
+8-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+53-02 files

LLVM/project 029a853lld/ELF SyntheticSections.cpp SyntheticSections.h, lld/test/ELF ppc32-ifunc-nonpreemptible-pic.s ppc32-ifunc-nonpreemptible-nopic.s

[ELF] Emit synthetic local in symbol table for non-preemptible IFUNC

Currently we create an internal alias of the original symbol and then
rewrite the latter to point to the IPLT entry, which means we lose
symbol table information for the actual resolver. In practice compilers
also emit a normal function symbol for the resolver due to how IFUNCs
are represented in GNU C so that at least shows up, but we shouldn't be
relying on it. By emitting a synthetic local we can keep having a symbol
for the resolver whilst still redirecting references to the IPLT entry.
DeltaFile
+18-0lld/test/ELF/gnu-ifunc-i386.s
+2-3lld/ELF/Relocations.cpp
+1-2lld/ELF/SyntheticSections.h
+1-1lld/test/ELF/ppc32-ifunc-nonpreemptible-pic.s
+1-1lld/test/ELF/ppc32-ifunc-nonpreemptible-nopic.s
+1-1lld/ELF/SyntheticSections.cpp
+24-86 files

LLVM/project 529700dlld/ELF Symbols.h

[NFC][ELF] Remove Symbol's unused copy constructor

Now that we are no longer copying symbols via the copy constructor we
can remove it. Given we track symbol pointers in various data structures
it can be dangerous to have multiple objects for the same symbol that
would risk being viewed inconsistently, or even moved and the original
lost, though no such cases exist upstream that I'm aware of.

Copying a symbol entirely is also a weird thing to do, and can be
inefficient, so when copies are being made it's best to be explicit
about the members to copy. This also makes it clearer to understand what
members are relevant, rather than implicitly copying all the members,
most of which aren't relevant in practice.

Whilst the copy/move constructors/assignment operators are currently
implicitly deleted due to the atomic flags member, explicitly delete
them all so they remain deleted in case that ever changes.
DeltaFile
+11-3lld/ELF/Symbols.h
+11-31 files

LLVM/project 4ee575blld/ELF Relocations.cpp

[NFC][ELF] Create fresh alias in handleNonPreemptibleIfunc

We don't need to copy the full symbol here, we just want an internal
alias to use for the IPLT and IGOTPLT entries and IRELATIVE relocation's
addend.
DeltaFile
+3-1lld/ELF/Relocations.cpp
+3-11 files

LLVM/project f12f76clld/ELF Relocations.cpp

[NFC][ELF] Only create alias in handleNonPreemptibleIfunc if needed

In the no direct relocations case, the original IFUNC symbol keeps its
value, and so there's no need to create a separate alias; it's only
needed when the original symbol is being redirected to the IPLT as a
normal function symbol.

This change also shifts the isInIplt assignment to be explicit and
mirror the allocateAux/pltIdx uses, rather than relying on makeDefined
copying it, and to be clear that this is in fact deliberately and
consistently being copied like them.
DeltaFile
+23-18lld/ELF/Relocations.cpp
+23-181 files

LLVM/project 42b86celld/ELF Relocations.cpp

[NFC][ELF] Avoid need to copy Symbol in replaceWithDefined (#210612)

Firstly, by overwriting the symbol, it will have its existing flags, so
there is no need to copy them back; all we need to do is mask out the
other bits on the existing symbol.

Secondly, copying the whole symbol just to preserve the symbol version
that gets cleared by Defined::overwrite is a waste; just copy the single
member to reinstate it.
DeltaFile
+3-4lld/ELF/Relocations.cpp
+3-41 files

LLVM/project 9409601llvm/test/CodeGen/AArch64/GlobalISel form-bitfield-extract-from-and.mir opt-shifted-reg-compare.mir, llvm/test/CodeGen/M68k/Atomics rmw.ll

rebase for new test case showing changes

Created using spr 1.3.8-wip
DeltaFile
+1,042-470llvm/test/CodeGen/M68k/CodeModel/Large/Atomics/rmw.ll
+521-235llvm/test/CodeGen/M68k/Atomics/rmw.ll
+180-180llvm/test/CodeGen/AArch64/GlobalISel/opt-shifted-reg-compare.mir
+323-0mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
+112-112llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-and.mir
+68-142llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
+2,246-1,139319 files not shown
+7,402-3,330325 files

LLVM/project b5f3a82clang/test/SemaOpenCL builtins-image-store-param-gfx942-err.cl builtins-image-store-image-feature-err.cl

clang/AMDGPU: Fix confused image builtin availability tests

These tests appear to have been copy paste from other image error
tests, which were checking for invalid argument validation. The point
of these tests were to reject image builtins on unsupported targets,
and not just gfx942. Rename the tests, and fix the invalid argument usage.
Each builtin should be used in a valid way.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+0-230clang/test/SemaOpenCL/builtins-extended-image-param-gfx942-err.cl
+230-0clang/test/SemaOpenCL/builtins-extended-image-err.cl
+0-219clang/test/SemaOpenCL/builtins-image-load-param-gfx942-err.cl
+219-0clang/test/SemaOpenCL/builtins-image-load-image-feature-err.cl
+0-129clang/test/SemaOpenCL/builtins-image-store-param-gfx942-err.cl
+129-0clang/test/SemaOpenCL/builtins-image-store-image-feature-err.cl
+578-5786 files

LLVM/project 8bdbeacflang/lib/Optimizer/Builder MIFCommon.cpp

[flang] Remove unused includes in MIFCommon.cpp to fix GCC debug-build link errors (#213508)

An undefined symbol error when building Flang in debug mode. This PR fix
this by remove unused include file. Here is a brief error log:
`/usr/bin/ld:lib/libFIRBuilder.a(MIFCommon.cpp.o): in function
Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4,
1> >::~FunctionRef()':`.
DeltaFile
+0-2flang/lib/Optimizer/Builder/MIFCommon.cpp
+0-21 files

LLVM/project e7dd336llvm/lib/Target/M68k M68kSubtarget.h M68kInstrInfo.td, llvm/test/CodeGen/M68k/Atomics rmw.ll

[M68k] Prevent COPY instruction from killing live condition flags (#168485)
DeltaFile
+1,042-470llvm/test/CodeGen/M68k/CodeModel/Large/Atomics/rmw.ll
+521-235llvm/test/CodeGen/M68k/Atomics/rmw.ll
+112-56llvm/lib/Target/M68k/M68kInstrInfo.cpp
+4-10llvm/lib/Target/M68k/M68kInstrData.td
+3-0llvm/lib/Target/M68k/M68kInstrInfo.td
+1-0llvm/lib/Target/M68k/M68kSubtarget.h
+1,683-7716 files

LLVM/project 6be9888libcxx/include variant

Speed up std::visit() compile times by another 42% (#213203)

This avoids defining an `enum`, which appears to be expensive for Clang.
DeltaFile
+30-30libcxx/include/variant
+30-301 files

LLVM/project 84046aclldb/packages/Python/lldbsuite/test lldbutil.py

[lldb][test] Recognize a Wasm trap as a crash (#213551)

is_thread_crashed maps how each platform reports the bad access the test
suite uses to simulate a crash, and had no case for Wasm, where there
are no signals and a bad access raises a trap that a runtime reports as
an exception. Without one it fell through to a description match that
never held, so a crashed thread read as running fine.
DeltaFile
+4-0lldb/packages/Python/lldbsuite/test/lldbutil.py
+4-01 files

LLVM/project def770dlldb/bindings/interface SBUnixSignalsExtensions.i, lldb/test/API/python_api/signals TestSignalsAPI.py

[lldb] Fix typo in SBUnixSignals.get_unix_signals_list (#213527)

Found when looking through the generated Python file. `sig` doesn't
exist in that context, it should be `idx`.
DeltaFile
+6-0lldb/test/API/python_api/signals/TestSignalsAPI.py
+1-1lldb/bindings/interface/SBUnixSignalsExtensions.i
+7-12 files

LLVM/project e4693c0libc CMakeLists.txt, libc/config/linux config.json

[libc] Add __isoc99_fscanf alias. (#213125)

- Add LLVM_LIBC_ADD_FUNCTION_C_ALIAS macro to add another C alias public
symbol to a function.
- Add LIBC_CONF_SCANF_PROVIDE_ISOC99_ALIASES config
- Add __isoc99_fscanf for generic fscanf target if
LIBC_CONF_SCANF_PROVIDE_ISOC99_ALIASES is set.
- Similarly: scanf, vfscanf, vscanf.
DeltaFile
+16-0libc/src/__support/common.h
+5-0libc/config/linux/config.json
+5-0libc/CMakeLists.txt
+4-0libc/src/stdio/vsscanf.cpp
+4-0libc/src/stdio/sscanf.cpp
+4-0libc/src/stdio/generic/vscanf.cpp
+38-06 files not shown
+61-112 files

LLVM/project 7ed5bbeclang/lib/Parse ParseOpenMP.cpp, clang/test/SemaOpenMP gh197162.c invalid-clause-on-directive.c

[Clang][OpenMP] Skip Sema actions for invalid assumption clauses (#212822)

Do not call the Sema actions for absent, contains, and nullary assumption
clauses after the parser has diagnosed that the clause is not allowed on the
current directive.

Add assertions documenting that these Sema actions must only receive clauses
allowed on the current directive, and add tests covering all affected clause
kinds.

Fixes #212780.
DeltaFile
+25-0clang/test/SemaOpenMP/invalid-clause-on-directive.c
+6-4clang/lib/Parse/ParseOpenMP.cpp
+0-6clang/test/SemaOpenMP/gh197162.c
+31-103 files

LLVM/project b56f40ellvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+292-123llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+20-32llvm/test/Transforms/SLPVectorizer/X86/reassociate-ops.ll
+28-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+15-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+2-4llvm/test/Transforms/SLPVectorizer/X86/supernode.ll
+357-1595 files

LLVM/project 036af90llvm/lib/Target/Hexagon HexagonExpandCondsets.cpp, llvm/test/CodeGen/Hexagon dont-predicate-debug.mir

[Hexagon] Avoid predicating debug instructions (#212917)

The change is made in HexagonExpandCondsets::(predicate) function. The
debug instructions are not predicable as they cannot be separated into
conditional branches. So while predicating instructions in a machine
basic block if we encounter any debug instructions we need to skip these
instructions and continue with other instructions.

The scan that collects the registers defined and used between the
definition of the source register and the conditional transfer bailed
out as soon as it saw a non-virtual register operand, which a DBG_VALUE
can have. The transfer was then left as an unconditional A2_asrh plus an
A2_tfrf instead of being folded into a single predicated A4_pasrhf, so
again the generated code differed depending on whether debug info was
enabled.

Co-authored-by: Chandana Sinderikeri <csinderi at qti.qualcomm.com>
DeltaFile
+59-0llvm/test/CodeGen/Hexagon/dont-predicate-debug.mir
+5-0llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp
+64-02 files

LLVM/project 2a4acc4llvm/test/Transforms/SLPVectorizer/X86 reassociate-ops.ll

[SLP][NFC]Add extra test for alt opcodes vectorization with copyables, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/213538
DeltaFile
+70-0llvm/test/Transforms/SLPVectorizer/X86/reassociate-ops.ll
+70-01 files

LLVM/project f383699llvm/test/Transforms/SLPVectorizer/X86 reassociate-ops.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+70-0llvm/test/Transforms/SLPVectorizer/X86/reassociate-ops.ll
+70-01 files

LLVM/project eee7c2dllvm/docs ORCv2.md, llvm/include/llvm/ExecutionEngine/Orc COFFAutoImportGenerator.h

[ORC] Add AutoImportGenerator for COFF dllimport auto-import (#203914)

On Windows/COFF, a dllimport call is emitted as an indirect call through
an `__imp_` IAT slot (`callq *__imp_bar(%rip)`), and even a direct call
to a library function is expected to bind to a thunk supplied by an
import library. Today a JIT client must produce those import libraries
themselves. `AutoImportGenerator` synthesizes them on demand instead.

Bound to a single dynamic library via `AutoImportGenerator::Load(ES,
ObjLinkingLayer, "/path/to/lib.dll")`.
For each referenced export `X`, lazily synthesizes an `__imp_X` pointer
slot holding `X`'s address in the library plus an `X` thunk that jumps
through it, so both `__imp_`-mediated and direct references resolve.


The library's export table is the authority: a name the library does not
export is left unresolved, so the link fails exactly as a static link
against the corresponding import library would (no silent invention of
symbols).

    [23 lines not shown]
DeltaFile
+178-0llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp
+132-0llvm/lib/ExecutionEngine/Orc/COFFAutoImportGenerator.cpp
+112-0llvm/include/llvm/ExecutionEngine/Orc/COFFAutoImportGenerator.h
+60-3llvm/tools/llvm-jitlink/llvm-jitlink.cpp
+39-0llvm/docs/ORCv2.md
+3-3llvm/lib/ExecutionEngine/JITLink/COFF_x86_64.cpp
+524-65 files not shown
+532-611 files

LLVM/project 9a19c77clang/lib/Driver/ToolChains NetBSD.h NetBSD.cpp, clang/test/Driver netbsd.cpp

[clang][Driver] Fix libc++ include path on NetBSD (#212716)

`clang++` defaults to `-stdlib=libc++` on NetBSD. When building with
both `clang` and `libcxx` included, the freshly built `clang++` fails to
find `<__config_site>`:

```
In file included from /usr/include/strings.h:68:
In file included from bin/../include/c++/v1/string.h:57:
bin/../include/c++/v1/__config:13:10: fatal
error: '__config_site' file not found
   13 | #include <__config_site>
      |          ^~~~~~~~~~~~~~~
```

The file is present in `include/<triplet>/c++/v1`, but that isn't
searched by default. NetBSD has its own version of addLibCxxIncludePaths
which misses that directory.


    [9 lines not shown]
DeltaFile
+0-21clang/lib/Driver/ToolChains/NetBSD.cpp
+8-0clang/test/Driver/netbsd.cpp
+0-3clang/lib/Driver/ToolChains/NetBSD.h
+0-0clang/test/Driver/Inputs/install_tree_with_libcxx/lib/.keep
+0-0clang/test/Driver/Inputs/install_tree_with_libcxx/include/c++/v1/.keep
+0-0clang/test/Driver/Inputs/install_tree_with_libcxx/bin/.keep
+8-246 files

LLVM/project 4695d91llvm/include/llvm/ExecutionEngine/Orc/RTBridge Calls.h, llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS Calls.h

[ORC] Generalize RTBridge Callers to any runtime function (#213526)

An RTBridge Caller is a controller-side handle for calling a function in
the runtime. Until now the abstraction assumed every such function was a
trampoline -- a runtime function whose job is to invoke *another*
function at an address the controller supplies (run-as-main, run-as-int,
etc.) -- so every Caller carried a dedicated ExecutorAddr parameter for
that target.

Generalize Callers to call runtime functions of any shape. Invoking a
supplied target is now just one kind of call, with the target address an
ordinary leading argument rather than a built-in parameter: e.g.
MainCaller becomes Caller<int64_t(ExecutorAddr, ArrayRef<std::string>)>.

The SPS signatures already led with an SPSExecutorAddr for the target,
so this is a pure interface change -- the SPS wrappers and all call
sites are unaffected. It lets Callers model runtime functions that do
the work themselves, such as the memory-access wrappers, rather than
only those that dispatch to another function.
DeltaFile
+15-16llvm/include/llvm/ExecutionEngine/Orc/RTBridge/Calls.h
+8-9llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h
+23-252 files

LLVM/project 29a956eclang/include/clang/Options Options.td, clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp

[offload][OpenMP] Add atomic cross-team reductions (#209298)

Regular cross-team reductions have two phases: the intra-team reduction
and the inter-team reduction. Atomic cross-team reductions replace the
second phase with a atomic instruction which is used by the main thread
of each team to directly fold the result of the intra-team reduction
into the final result. Since this requires a combination of "data type"
and "combine operation" for which an atomic instruction is available,
only some (but very common) reductions can be transformed to atomic
reductions. In cases where multiple reductions are performed on the same
construct, the atomic path is only taken if all reductions can be
transformed. Otherwise, we fall back to the regular cross-team reduction
using a buffer with per-team slots. This is not strictly necessary, but
hybrid reductions would induce more complexity with questionable
benefit.

Selecting an atomic path might not be the best option for every
situation, which is why it is not enabled by default. Instead, it can be
enabled via `-fopenmp-target-atomic-reduction`. Note that enabling the

    [17 lines not shown]
DeltaFile
+107-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+90-0clang/test/OpenMP/target_teams_atomic_reduction_codegen.cpp
+64-0offload/test/offloading/xteam_atomic_reduction_usm.cpp
+32-0llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+18-0clang/test/Driver/openmp-target-atomic-reduction-flag.c
+9-0clang/include/clang/Options/Options.td
+320-26 files not shown
+340-212 files