LLVM/project 8d59ccalldb/source/Plugins/Platform CMakeLists.txt, lldb/source/Plugins/Platform/WebAssembly PlatformWasm.cpp PlatformWasm.h

[lldb] Add WebAssembly platform (#171507)

This PR adds a platform for WebAssembly. Heavily inspired by Pavel's
QemuUser, the platform lets you configure a WebAssembly runtime to run a
Wasm binary.

For example, the following configuration can be used to launch binaries
under the WebAssembly Micro Runtime (WARM):

```
settings set -- platform.plugin.wasm.runtime-args --heap-size=1048576
settings set -- platform.plugin.wasm.port-arg -g=127.0.0.1:
settings set -- platform.plugin.wasm.runtime-path /path/to/iwasm-2.4.0
```

With the settings above, you can now launch a binary directly under
WAMR:

```

    [24 lines not shown]
DeltaFile
+213-0lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
+79-0lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
+23-0lldb/source/Plugins/Platform/WebAssembly/PlatformWasmProperties.td
+23-0lldb/source/Plugins/Platform/WebAssembly/CMakeLists.txt
+5-2llvm/docs/ReleaseNotes.md
+1-0lldb/source/Plugins/Platform/CMakeLists.txt
+344-26 files

LLVM/project f6c04cdclang-tools-extra/clang-doc/assets namespace-template.mustache, clang-tools-extra/test/clang-doc namespace.cpp mustache-separate-namespace.cpp

[clang-doc] Serialize the global namespace name in JSON (#171701)

Previously, the global namespace's "Name" field was left empty. It could
be identified this way, but it could also be identified by its USR.
Actually populating the "Name" field allows for nicer output in the
future.
DeltaFile
+4-4clang-tools-extra/test/clang-doc/namespace.cpp
+1-1clang-tools-extra/clang-doc/assets/namespace-template.mustache
+1-1clang-tools-extra/test/clang-doc/json/concept.cpp
+1-1clang-tools-extra/test/clang-doc/json/namespace.cpp
+1-1clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
+1-1clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
+9-91 files not shown
+11-97 files

LLVM/project 5e3549aclang-tools-extra/clang-doc JSONGenerator.cpp, clang-tools-extra/test/clang-doc/json class.cpp

[clang-doc] Serialize private members in JSON (#171700)

DeltaFile
+10-0clang-tools-extra/test/clang-doc/json/class.cpp
+6-0clang-tools-extra/clang-doc/JSONGenerator.cpp
+16-02 files

LLVM/project ed398f2llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/AMDGPU extract-insert-i8.ll shuffles-of-length-changing-shuffles.ll

VectorCombine: Fold chains of shuffles fed by length-changing shuffles

Such chains can arise from folding insert/extract chains.

commit-id:a960175d
DeltaFile
+192-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+4-32llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll
+4-8llvm/test/Transforms/VectorCombine/AMDGPU/shuffles-of-length-changing-shuffles.ll
+200-403 files

LLVM/project 352f05bllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/AMDGPU extract-insert-i8.ll

VectorCombine: Improve the insert/extract fold in the narrowing case

Keeping the extracted element in a natural position in the narrowed
vector has two beneficial effects:

1. It makes the narrowing shuffles cheaper (at least on AMDGPU), which
   allows the insert/extract fold to trigger.
2. It makes the narrowing shuffles in a chain of extract/insert
   compatible, which allows foldLengthChangingShuffles to successfully
   recognize a chain that can be folded.

There are minor X86 test changes that look reasonable to me. The IR
change for AVX2 in llvm/test/Transforms/VectorCombine/X86/extract-insert-poison.ll
doesn't change the assembly generated by `llc -mtriple=x86_64-- -mattr=AVX2`
at all.

commit-id:c151bb04
DeltaFile
+6-16llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+2-16llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll
+8-4llvm/test/Transforms/VectorCombine/X86/extract-insert-poison.ll
+4-4llvm/test/Transforms/VectorCombine/X86/extract-insert.ll
+2-2llvm/test/Transforms/VectorCombine/X86/pr126085.ll
+22-425 files

LLVM/project 8483d3cllvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-scoring.ll promote-alloca-negative-index.ll

AMDGPU/PromoteAlloca: Refactor into analysis / commit phases

This change is motivated by the overall goal of finding alternative ways
to promote allocas to VGPRs. The current solution is effectively limited
to allocas whose size matches a register class, and we can't keep adding
more register classes. We have some downstream work in this direction,
and I'm currently looking at cleaning that up to bring it upstream.

This refactor paves the way to adding a third way of promoting allocas,
on top of the existing alloca-to-vector and alloca-to-LDS. Much of the
analysis can be shared between the different promotion techniques.

Additionally, the idea behind splitting the pass into an analysis
phase and a commit phase is that it ought to allow us to more easily make
better "big picture" decision about which allocas to promote how in the
future.

commit-id:138f5985
DeltaFile
+347-304llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+34-30llvm/test/CodeGen/AMDGPU/promote-alloca-scoring.ll
+2-4llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
+383-3383 files

LLVM/project 75cd29bllvm/lib/Transforms/Instrumentation MemProfUse.cpp, llvm/test/Transforms/PGOProfile memprof-dump-matched-alloc-site.ll

[MemProf] Add option to emit full call context for matched allocations (#170516)

Add the -memprof-print-matched-alloc-stack option to enable emitting the
full allocation call context (of stack ids) for each matched allocation
reported by -memprof-print-match-info. Noop when the latter is not
enabled.
DeltaFile
+64-28llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
+19-11llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
+83-392 files

LLVM/project ca6eb2fclang-tools-extra/clang-doc JSONGenerator.cpp, clang-tools-extra/test/clang-doc/json inheritance.cpp

[clang-doc] Add JSON bools for parents, vparents and test (#171699)

Parents and virtual parents didn't have "Has" bools in JSON output. That
made it difficult to only create output conditionally.

Also add an explicit test for inheritance and parents, vparents, and
bases which actually weren't tested in JSON
DeltaFile
+111-0clang-tools-extra/test/clang-doc/json/inheritance.cpp
+6-2clang-tools-extra/clang-doc/JSONGenerator.cpp
+2-0clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
+119-23 files

LLVM/project 3a6c8c4llvm/include/llvm/CodeGen LibcallLoweringInfo.h, llvm/include/llvm/SandboxIR Constant.h

llvm: Add missing `LLVM_ABI` annotations (#171629)

This patch updates various LLVM headers to properly add the `LLVM_ABI`
and `LLVM_ABI_FOR_TEST` annotations to build LLVM as a DLL on Windows.

This effort is tracked in #109483.

---------

Co-authored-by: Nikita Popov <github at npopov.com>
DeltaFile
+4-3llvm/include/llvm/Support/Hash.h
+2-1llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
+1-1llvm/include/llvm/SandboxIR/Constant.h
+1-1llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
+8-64 files

LLVM/project c22d82amlir/include/mlir/Conversion/AMDGPUToROCDL AMDGPUToROCDL.h, mlir/lib/Conversion/AMDGPUToROCDL AMDGPUToROCDL.cpp

[mlir][amdgpu] Move GPU memory spaces conversion to single place (#171876)

DeltaFile
+17-12mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+2-12mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
+1-13mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
+4-3mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
+5-0mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
+29-405 files

LLVM/project 0afd6eeclang-tools-extra/clang-doc JSONGenerator.cpp, clang-tools-extra/clang-doc/assets class-template.mustache

[clang-doc] Serialize "IsStatic" for fields (#171698)

DeltaFile
+2-2clang-tools-extra/clang-doc/assets/class-template.mustache
+1-1clang-tools-extra/test/clang-doc/basic-project.mustache.test
+2-0clang-tools-extra/test/clang-doc/json/class.cpp
+2-0clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
+1-0clang-tools-extra/clang-doc/JSONGenerator.cpp
+8-35 files

LLVM/project ef24946llvm/include/llvm/Transforms/Utils LoopPeel.h, llvm/lib/Transforms/Scalar LoopUnrollPass.cpp

[LoopPeel] Peel loops to enable natural-sized loads
DeltaFile
+479-0llvm/test/Transforms/LoopUnroll/peel-last-for-load-widening.ll
+338-1llvm/lib/Transforms/Utils/LoopPeel.cpp
+172-0llvm/test/Transforms/LoopUnroll/peel-load-widening-edge-cases.ll
+15-3llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+13-1llvm/include/llvm/Transforms/Utils/LoopPeel.h
+3-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1,020-61 files not shown
+1,022-77 files

LLVM/project 125fd3ellvm/lib/Target/AArch64 AArch64InstrGISel.td, llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp AArch64RegisterBankInfo.cpp

[GlobalISel][AArch64] Added support for sli/sri intrinsics (#171448)

sli intrinsic now lowers correctly for all vector types.
DeltaFile
+110-16llvm/test/CodeGen/AArch64/arm64-vshift.ll
+15-0llvm/lib/Target/AArch64/AArch64InstrGISel.td
+14-0llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+4-0llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+143-164 files

LLVM/project 5eb2ec2llvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine ldexp.ll fold-select-fmul-if-zero.ll

InstCombine: Fold ldexp with constant exponent to fmul (#171731)

If we can represent this with an fmul, prefer it as a canonical
form. More optimizations will understand fmul, and allows contract to
fma.
DeltaFile
+36-26llvm/test/Transforms/InstCombine/ldexp.ll
+13-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+2-8llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
+51-343 files

LLVM/project 4c21e46clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenExpr.cpp CIRGenClass.cpp

[CIR] Add support for runtime data member pointer access (#171510)

This adds support for a CIR operation to represent runtime data member
access.
DeltaFile
+166-0clang/test/CIR/CodeGen/pointer-to-data-member.cpp
+57-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+31-0clang/test/CIR/IR/invalid-data-member.cir
+25-4clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+21-0clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
+19-0clang/lib/CIR/CodeGen/CIRGenClass.cpp
+319-46 files not shown
+374-812 files

LLVM/project e4c83b7lldb/source/Plugins/ObjectContainer/BSD-Archive ObjectContainerBSDArchive.cpp, lldb/source/Plugins/ObjectContainer/Mach-O-Fileset ObjectContainerMachOFileset.cpp

[lldb][NFC] Change ObjectFile argument type (#171574)

The ObjectFile plugin interface accepts an optional DataBufferSP
argument. If the caller has the contents of the binary, it can provide
this in that DataBufferSP. The ObjectFile subclasses in their
CreateInstance methods will fill in the DataBufferSP with the actual
binary contents if it is not set.
ObjectFile base class creates an ivar DataExtractor from the
DataBufferSP passed in.

My next patch will be a caller that creates a VirtualDataExtractor with
the binary data, and needs to pass that in to the ObjectFile plugin,
instead of the bag-of-bytes DataBufferSP. It builds on the previous
patch changing ObjectFile's ivar from DataExtractor to DataExtractorSP
so I could pass in a subclass in the shared ptr. And it will be using
the VirtualDataExtractor that Jonas added in
https://github.com/llvm/llvm-project/pull/168802

No behavior is changed by the patch; we're simply moving the creation of

    [14 lines not shown]
DeltaFile
+52-49lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
+34-21lldb/source/Symbol/ObjectFile.cpp
+25-25lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
+25-20lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
+23-16lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.cpp
+21-15lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
+180-14636 files not shown
+476-34342 files

LLVM/project 3142e3aclang/lib/Headers/hlsl hlsl_intrinsics.h, clang/test/CodeGenHLSL/builtins ddy.hlsl ddx.hlsl

[HLSL] Implement ddx and ddy HLSL intrinsics (#168887)

Implements the ddx and ddy HLSL intrinsics. The DXIL intrinsics call the
ddx_coarse and ddy_builtins as they lower to the coarse variants.
The SPIRV intrinsics lower to their own opcodes OpDPdx and OpDPdy. Tests
are added to ensure the SPIRV builtins are not available outside of
shaders stage.

Closes https://github.com/llvm/llvm-project/issues/99096
Closes https://github.com/llvm/llvm-project/issues/99099
DeltaFile
+86-0clang/test/CodeGenHLSL/builtins/ddy.hlsl
+86-0clang/test/CodeGenHLSL/builtins/ddx.hlsl
+80-0clang/lib/Headers/hlsl/hlsl_intrinsics.h
+47-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddx.ll
+47-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddy.ll
+41-0clang/test/CodeGenSPIRV/Builtins/ddy.c
+387-011 files not shown
+534-017 files

LLVM/project 79f1c9cflang/lib/Semantics check-omp-loop.cpp

Return std::nullopt in case of overflow
DeltaFile
+3-3flang/lib/Semantics/check-omp-loop.cpp
+3-31 files

LLVM/project 4385737llvm/lib/Support/rpmalloc rpmalloc.c malloc.c

[Support] Convert CRLF->LF in rpmalloc. NFC.
DeltaFile
+3,996-3,996llvm/lib/Support/rpmalloc/rpmalloc.c
+724-724llvm/lib/Support/rpmalloc/malloc.c
+220-220llvm/lib/Support/rpmalloc/README.md
+19-19llvm/lib/Support/rpmalloc/CACHE.md
+4,959-4,9594 files

LLVM/project 6813f8fllvm/include/llvm-c Core.h, llvm/include/llvm/IR Instructions.h

[IR] Don't store switch case values as operands

SwitchInst case values must be ConstantInt, which have no use list.
Therefore it is not necessary to store these as Use, instead store them
more efficiently as a simple array of pointers after the uses, similar
to how PHINode stores basic blocks.

After this change, the successors of all terminators are stored
consecutively in the operand list. This is preparatory work for
improving the performance of successor access.

Add new C API functions so that switch case values remain accessible
from bindings for other languages.

While this could also be achieved by merely changing the order of
operands (i.e., first all successors, then all constants), doing so
would increase the asymptotic runtime of addCase from O(1) to O(n)
(i.e., adding n cases would be O(n^2)), because it would need to shift
all constants by one slot. Having null/invalid operands is also a bad

    [3 lines not shown]
DeltaFile
+79-0llvm/test/Transforms/MergeFunc/switch.ll
+76-0llvm/test/Transforms/SimplifyCFG/switch-dedup.ll
+22-13llvm/include/llvm/IR/Instructions.h
+18-15llvm/lib/IR/Instructions.cpp
+24-0llvm/include/llvm-c/Core.h
+23-0llvm/unittests/IR/InstructionsTest.cpp
+242-2812 files not shown
+314-6218 files

LLVM/project a451ff0llvm/include/llvm/CAS OnDiskGraphDB.h, llvm/lib/CAS ActionCaches.cpp OnDiskGraphDB.cpp

[llvm][cas] Improve UnifiedOnDiskActionCache validation to check cas refs (#171732)

Check that action cache references point to valid CAS objects by
ensuring they are contained within the corresponding CAS and also that
the offsets match. This prevents accidentally referencing "dead" index
records that were not properly flushed to disk, which can lead to the
action cache pointing to the wrong data or to garbage data.

rdar://126642956
DeltaFile
+16-21llvm/include/llvm/CAS/OnDiskGraphDB.h
+17-3llvm/lib/CAS/ActionCaches.cpp
+8-0llvm/test/tools/llvm-cas/validation.test
+3-2llvm/lib/CAS/OnDiskGraphDB.cpp
+44-264 files

LLVM/project c107634llvm/test/tools/llvm-mca/AArch64/Neoverse V3-neon-instructions.s V3AE-neon-instructions.s

Merge branch 'main' into users/kparzysz/r02-loop-sequence-length
DeltaFile
+780-1,347llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-neon-instructions.s
+780-1,347llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-neon-instructions.s
+780-1,347llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s
+1,000-1,084llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-neon-instructions.s
+1,000-1,084llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s
+1,000-1,084llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s
+5,340-7,2932,008 files not shown
+61,884-43,2582,014 files

LLVM/project 4f919bdclang/lib/CodeGen BackendUtil.cpp, clang/test/CodeGen codegen-plugins.c

[𝘀𝗽𝗿] initial version

Created using spr 1.3.5-bogner
DeltaFile
+38-60clang/lib/CodeGen/BackendUtil.cpp
+35-15llvm/examples/Bye/Bye.cpp
+34-5llvm/include/llvm/Passes/PassPlugin.h
+28-5llvm/tools/llc/llc.cpp
+18-0llvm/test/Feature/codegen-plugin.ll
+14-0clang/test/CodeGen/codegen-plugins.c
+167-858 files not shown
+203-9314 files

LLVM/project ea537d6clang/lib/CodeGen BackendUtil.cpp, clang/test/CodeGen pass-plugins.c

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.5-bogner

[skip ci]
DeltaFile
+35-15llvm/examples/Bye/Bye.cpp
+34-5llvm/include/llvm/Passes/PassPlugin.h
+28-5llvm/tools/llc/llc.cpp
+18-0llvm/test/Feature/codegen-plugin.ll
+3-10clang/lib/CodeGen/BackendUtil.cpp
+10-0clang/test/CodeGen/pass-plugins.c
+128-357 files not shown
+154-4313 files

LLVM/project 8471f36.github CODEOWNERS

[ExtractAPI] Update CODEOWNERS (#171866)

Daniel Grumberg is no longer a maintainer for Clang ExtractAPI. I have
updated the code owners list accordingly and added myself in his stead.
DeltaFile
+1-1.github/CODEOWNERS
+1-11 files

LLVM/project 2797688libc/docs porting.rst CMakeLists.txt, libc/utils/docgen docgen.py

[libc][docs] Add a sunset policy to porting docs (#168936)

As discussed in the monthly meeting, update the porting docs to clarify
what's needed for a target and add a policy for sunsetting targets.
DeltaFile
+71-18libc/docs/porting.rst
+1-1libc/utils/docgen/docgen.py
+1-1libc/docs/CMakeLists.txt
+73-203 files

LLVM/project 98aa840lldb/source/Plugins/Language/CPlusPlus CPlusPlusLanguage.cpp

[lldb][Formatters] Simplify std::list libc++ formatter matching regex (#147709)

The history on this is a bit confusing. The libc++ regexes were adjusted
in https://reviews.llvm.org/D57466, and so did the order in which we
load the formatters. Then https://reviews.llvm.org/D66398 changed the
`std::list` regex, to make sure the libc++ formatters don't match the
`cxx11` libstdc++ [Dual ABI
namespace](https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html).

But we changed the order in which we load the formatters again in
https://github.com/llvm/llvm-project/pull/140727. The intention there
was to load libstdc++ first, because it may have inline namespaces that
would match relaxed the libc++ regexes. So that should technically make
this complicated regex workaround obsolete.

I didn't quite follow the entire thread in D66398 because some of the
links are dead. So it's possible something does rely on this. I'd like
to remove it and see. I *think* this should be resolved now by virtue of
how we load the formatters, but if it does break someone, there ought to
be a better solution (as Pavel hinted at in D66398).
DeltaFile
+5-13lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+5-131 files

LLVM/project 1b7f272lldb/source/Core Module.cpp

[lldb][Module] Only log SDK search error once per debugger session (#171820)

Currently if we are debugging an app that was compiled against an SDK
that we don't know about on the host, then every time we evaluate an
expression we get following spam on the console:
```
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>

    [9 lines not shown]
DeltaFile
+3-1lldb/source/Core/Module.cpp
+3-11 files

LLVM/project c814ac1lldb/include/lldb/Host StreamFile.h, lldb/source/Core IOHandler.cpp

[lldb] Correct use_editline check in IOHandlerEditline (#171733)

Correct the use_editline check in IOHandlerEditline to prevent a crash
when we have an output and/or error file, but no stream. This fixes a
regression introduced by 58279d1 that results in a crash when calling
el_init with a NULL stream.

The original code was checking the stream: GetOutputFILE and
GetErrorFILE.

```
use_editline = GetInputFILE() && GetOutputFILE() && GetErrorFILE() &&
               m_input_sp && m_input_sp->GetIsRealTerminal();
```

The new code is checking the file: `m_output_sp` and `m_error_sp`.

```
use_editline = m_input_sp && m_output_sp && m_error_sp &&

    [26 lines not shown]
DeltaFile
+7-2lldb/source/Core/IOHandler.cpp
+4-1lldb/include/lldb/Host/StreamFile.h
+2-1lldb/source/Host/common/Editline.cpp
+13-43 files

LLVM/project fc78d55clang/docs ReleaseNotes.rst, clang/lib/Parse ParsePragma.cpp

[CLANG] Resolves crash on invalid loop vectorize_width (#169473)

Diagnose malformed '#pragma clang loop vectorize_width' lists. Avoids
crash in HandlePragmaLoopHint, emit clear diagnostic and added
regression test.

Fixes #166325
DeltaFile
+11-0clang/test/Parser/pragma-loop-vectorize.cpp
+1-1clang/lib/Parse/ParsePragma.cpp
+2-0clang/docs/ReleaseNotes.rst
+14-13 files