1. [LV] Fallback strategies if tail-folding fails (details)
  2. Fix frame pointer layout on AArch64 Linux. (details)
  3. Fix quiet mode in git-clang-format (details)
  4. Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests" (details)
  5. [libFuzzer] Error and exit if user supplied fuzzer writeable directories don't exist (details)
  6. [SystemZ/ZOS] Add header file to encapsulate use of <sysexits.h> (details)
  7. [SyntaxTree] Migrate `ParamatersAndQualifiers` to use the new List API (details)
  8. [LegalizeTypes] Remove WidenVecRes_Shift and just use WidenVecRes_Binary (details)
  9. [profile] Add InstrProfilingVersionVar.c.o to Darwin kext builtins (details)
Commit bda8fbe2d2af208181efcf029b0c0bc0606da39b by sjoerd.meijer
[LV] Fallback strategies if tail-folding fails

This implements 2 different vectorisation fallback strategies if tail-folding
fails: 1) don't vectorise at all, or 2) vectorise using a scalar epilogue. This
can be controlled with option -prefer-predicate-over-epilogue, that has been
changed to take a numeric value corresponding to the tail-folding preference
and preferred fallback.

Patch by: Pierre van Houtryve, Sjoerd Meijer.

Differential Revision:
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-predselect.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/Hexagon/invalidate-cm-after-invalidating-interleavegroups.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-prefer-flag.ll
The file was addedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-scalar-epilogue-fallback.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll
The file was addedllvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/tail-folding-counting-down.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-reduces-vf.ll
The file was modifiedllvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
Commit a0aed80b22d1b698b86e0c16109fdfd4d592756f by resistor
Fix frame pointer layout on AArch64 Linux.

When floating point callee-saved registers were used, the frame pointer would
incorrectly point to the bottom of the CSR space (containing saved floating-point
registers), rather than to the frame record.

While all frame offsets were calculated consistently, resulting in working code,
this prevented stack walkers from being about to traverse the frame list.
The file was modifiedllvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Commit 294e1900f281f35aff0362232225e85c2e551e55 by sguelton
Fix quiet mode in git-clang-format

Quiet mode is very useful for scripting, when only the diff format output is
required, or no output if not formatting is needed.
In case of no modified files, git-clang-format will output to screen even though
the quiet mode enabled.

This patch changes this behavior, so if quiet flag passes in - no output will be
available, even if no modified files exists.

Differential Revision:
The file was modifiedclang/tools/clang-format/git-clang-format
Commit 5b9c2b1bea78cdb62bad802b7d3d32dfeb1438a7 by jeremy.morse
Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests"

Asan has picked up a memory leak, which will require some investigation:

This reverts commit 60db26a66d5346b2feae279f6c928bde48078893.
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_load_in_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir
The file was removedllvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_insensitive_downgrade.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_many_loop_heads.mir
The file was modifiedllvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-bad-transfer.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir
The file was removedllvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_downgradefeedback_loop.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir
The file was removedllvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_path_lengths.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/kill-after-spill.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues-ignores-metaInstructions.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir
Commit 2392ff093af128d5e46ce31e2ffa0b3e17185e32 by mascasa
[libFuzzer] Error and exit if user supplied fuzzer writeable directories don't exist

Currently, libFuzzer will exit with an error message if a non-existent
corpus directory is provided. However, if a user provides a non-existent
directory for the `artifact_prefix`, `exact_artifact_path`, or
`features_dir`, libFuzzer will continue execution but silently fail to
write artifacts/features.

To improve the user experience, this PR adds validation for the existence of
all user supplied directories before executing the main fuzzing loop. If they
don't exist, libFuzzer will exit with an error message.

Patch By: dgg5503

Reviewed By: morehouse

Differential Revision:
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerDriver.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerIOWindows.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerIO.h
The file was modifiedcompiler-rt/test/fuzzer/fuzzer-dirs.test
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerIOPosix.cpp
Commit ed07e1fe0ffdb2c1dbff26ff4cf7558e0c419737 by kai
[SystemZ/ZOS] Add header file to encapsulate use of <sysexits.h>

The non-standard header file `<sysexits.h>` provides some return values.
`EX_IOERR` is used to as a special value to signal a broken pipe to the clang driver.
On z/OS Unix System Services, this header file does not exists. This patch

- adds a check for `<sysexits.h>`, removing the dependency on `LLVM_ON_UNIX`
- adds a new header file `llvm/Support/ExitCodes`, which either includes
  `<sysexits.h>` or defines `EX_IOERR`
- updates the users of `EX_IOERR` to include the new header file

Reviewed By: hubert.reinterpretcast

Differential Revision:
The file was modifiedllvm/lib/Support/CrashRecoveryContext.cpp
The file was addedllvm/include/llvm/Support/ExitCodes.h
The file was modifiedllvm/cmake/config-ix.cmake
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedllvm/include/llvm/Config/config.h.cmake
The file was modifiedllvm/lib/Support/Unix/
Commit dc3d4743277b47c0bc8cddbeb4b5e265252ee304 by ecaldas
[SyntaxTree] Migrate `ParamatersAndQualifiers` to use the new List API

Fix: Add missing `List::getTerminationKind()`, `List::canBeEmpty()`,
`List::getDelimiterTokenKind()` for `CallArguments`.

Differential Revision:
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit 28bd47fc47683d35ff08ad2ee2888a5709bbed8d by craig.topper
[LegalizeTypes] Remove WidenVecRes_Shift and just use WidenVecRes_Binary

This function seems to allow for the shift amount to have a different type than the result, but I don't think we do that anywhere else for vector shifts. We also don't have any support for legalizing the shift amount alone if the result is legal and the shift amount type isn't. The code coverage report here shows this code as uncovered

Differential Revision:
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
Commit 1f47f89a901f438d17836b6c5341fcb55a026d61 by Vedant Kumar
[profile] Add InstrProfilingVersionVar.c.o to Darwin kext builtins

Fixes a build failure in the Darwin kernel. Tested with:

% nm -mU lib/libclang_rt.cc_kext_x86_64h_osx.a | grep __llvm_profile_raw_version

The file was modifiedcompiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake