SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-zorg.git)

Summary

  1. Added two new flang builders. (details)
  2. Changed UnifiedTreeBuilder to report extra details for test failures. (details)
  3. UnifiedTreeBuilder takes care of LLVM_ENABLE_PROJECTS if that matches depends_on_projects list. (details)
Commit 1ea593ace3b3f1127eed452eca52479f7bbab53e by gkistanova
Added two new flang builders.
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit e2e763c99ecba8eb266b1bc9ecd261c96064e4ff by gkistanova
Changed UnifiedTreeBuilder to report extra details for test failures.
The file was modifiedzorg/buildbot/builders/UnifiedTreeBuilder.py
Commit 98963abcb85c1d74653ad59c93c3ed39364f785e by gkistanova
UnifiedTreeBuilder takes care of LLVM_ENABLE_PROJECTS if that matches depends_on_projects list.
The file was modifiedbuildbot/osuosl/master/config/builders.py

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. Add a function to detect whether an Xcode SDK supports Swift (details)
  2. [flang]Add examples in documentation/BijectiveInternalNameUniquing.md (details)
  3. [clang-format] [PR45126] Help text is missing all available formats (details)
  4. [clang-format] ensure dump_format_style.py works with Python3 correctly (details)
  5. [clang-format] [PR45791] BeforeLambdaBody is confused by comment inside lambda (details)
  6. [lldb/Test] Fix typo in find-and-replace. (details)
  7. [libc] Fix warnings on release build. (details)
  8. [BFI][CGP] Add limited support for detecting missed BFI updates and fix one in CodeGenPrepare. (details)
  9. [SLP] add test for constant expression fake of load-combine pattern; NFC (details)
  10. [SLP] add another bailout for load-combine patterns (2nd try) (details)
  11. AMDGPU: Fix broken tests for HSA metadata (details)
  12. [VectorCombine] add tests with undefs; NFC (details)
  13. [mlir] Add NamedAttrList (details)
  14. [InstCombine][SVE] Fix visitInsertElementInst for scalable type. (details)
  15. Add static assert to ID Table to make sure aux targets work right. (details)
  16. Make -Wnonportable-include-path ignore drive case on Windows. (details)
  17. [InstCombine][SVE] Fix visitExtractElementInst for scalable type. (details)
  18. Allow -fsanitize-minimal-runtime with memtag sanitizer. (details)
  19. [NFC] Adjust test check lines for D78267. (details)
  20. [VectorCombine] adjust test to make intent clearer; NFC (details)
  21. Ensure aux-target specific builtins get validated. (details)
  22. Remove unused _LIBCPP_RAW_ITERATORS (details)
  23. [SimpleLoopUnswitch] Update DefaultExit condition to check unreachable is not empty. (details)
  24. [clang-format] [PR45639] clang-format splits up the brackets of C++17 attribute [[ ]] when used with the first parameter (details)
  25. [libcxx] [NFC] fpos Requirements (p0759r1). (details)
  26. getMainExecutable: Fix hand-rolled AT_EXECPATH for older FreeBSD (details)
  27. [libc++] ECMAScript IdentityEscape is ambiguous (2584) (details)
  28. [Attributor] Mark dependence as optional (details)
  29. [Attributor][FIX] Record dependences for assumed dead abstract attributes (details)
  30. [lldb/Test] Skip more tests that are not expected to work with passive replay (details)
  31. Correctly modify the CFG in IfConverter, and then remove the (details)
  32. Revert "[YAMLVFSWriter][Test][NFC] Add couple tests" (details)
  33. [LoopFusion] Remove unreachable blocks from DT and LI after fusion (details)
  34. Uniuqe Names for Internal Linkage Symbols. (details)
  35. [Object] Remove unneeded check in ELFFile<ELFT>::dynamicEntries(). (details)
  36. Add a new lockdownd plist for launching posix processes (details)
  37. [llvm] [CodeGen] Fixed vector halving bug for masked store (details)
  38. Fix false positive with -Wnon-c-typedef-for-linkage (details)
Commit dec1c94e801f6fe1bae01c4679aca67abe0cb8a6 by Adrian Prantl
Add a function to detect whether an Xcode SDK supports Swift

Differential Revision: https://reviews.llvm.org/D79535
The file was modifiedlldb/source/Utility/XcodeSDK.cpp
The file was modifiedlldb/include/lldb/Utility/XcodeSDK.h
The file was modifiedlldb/unittests/Utility/XcodeSDKTest.cpp
Commit cc4768f2ec7ca1e6421c18afeface61376e9fab7 by joshisameeran17
    [flang]Add examples in documentation/BijectiveInternalNameUniquing.md

    Summary:
    I thought it would be simpler to understand on how the unique names would
    look like when an example is present. So I added some examples.

    I found 2 such places to add examples
    -Common blocks
    -Module scope global data

    Reviewers: schweitz, kiranchandramohan, sscalpone, jeanPerier, jdoerfert, DavidTruby

    Reviewed By: schweitz, jeanPerier

    Subscribers: llvm-commits, flang-commits

    Tags: #flang, #llvm

    Differential Revision: https://reviews.llvm.org/D79442
The file was modifiedflang/documentation/BijectiveInternalNameUniquing.md
Commit 305a4abfd3a1e3f4e5c8d98136f88f54b761b011 by mydeveloperday
[clang-format] [PR45126] Help text is missing all available formats

Summary:
https://bugs.llvm.org/show_bug.cgi?id=45126

GNU and Microsoft styles are built in supported styles but are not displayed in the help text

Reviewed By: sammccall

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D79372
The file was modifiedclang/tools/clang-format/clang-format-diff.py
The file was modifiedclang/lib/Format/Format.cpp
Commit 3125aa99593db9fe17c825fd5984b333bb86437f by mydeveloperday
[clang-format] ensure dump_format_style.py works with Python3 correctly

Summary:
Python2 has been removed from cygwin, this means anyone running the dump_format_style.py in a cygwin shell could pick up python3 instead

In Python3 all strings are unicode as the file is opened in binary mode we need to encode the contents string or we'll face the following error

```
Traceback (most recent call last):
  File "./dump_format_style.py", line 228, in <module>
    output.write(contents)
TypeError: a bytes-like object is required, not 'str'
```

Reviewed By: krasimir

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D79326
The file was modifiedclang/docs/tools/dump_format_style.py
Commit 5b8ffb414200aa65ab26b16415a98a63d81c14ca by mydeveloperday
[clang-format] [PR45791] BeforeLambdaBody is confused by comment inside lambda

Summary:
https://bugs.llvm.org/show_bug.cgi?id=45791

Lambda with line comment is incorrectly formatted

```
auto k = []() // comment
{ return; };
````

```
auto k = []() // comment { return; };
```

Reviewed By: Wawha

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D79320
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/ContinuationIndenter.cpp
Commit e6fbce675d99982dab2e00eab390359e306d00a8 by Jonas Devlieghere
[lldb/Test] Fix typo in find-and-replace.
The file was modifiedlldb/test/API/python_api/file_handle/TestFileHandle.py
Commit bf6f3894c4a8f7572e8c45d28d6c5c0fa6101a90 by paulatoth
[libc] Fix warnings on release build.

Summary:
These warnings were present when building llvm-libc in release mode.

```
workspace/llvm-project/libc/utils/benchmarks/LibcMemoryBenchmarkTest.cpp:50:34: warning: 'None' is deprecated: Use Align() or Align(1) instead [-Wdeprecated-declarations]
  Conf.AddressAlignment = Align::None();

workspace/llvm-project/libc/utils/testutils/FDReaderUnix.cpp:19:7: warning: unused variable 'err' [-Wunused-variable]
  int err = ::pipe(pipefd);
```

For test-utils it seems in general we should use `report_fatal_error` instead of asserts as these are turned off when building in release mode.
https://llvm.org/docs/CodingStandards.html#assert-liberally

Reviewers: abrachet, sivachandra

Reviewed By: abrachet, sivachandra

Subscribers: tschuett, libc-commits

Tags: #libc-project

Differential Revision: https://reviews.llvm.org/D79469
The file was modifiedlibc/utils/benchmarks/LibcMemoryBenchmarkTest.cpp
The file was modifiedlibc/utils/testutils/FDReaderUnix.cpp
Commit 1b4e3def0362f93ef1ec7f5837a6b74e82132b8a by yamauchi
[BFI][CGP] Add limited support for detecting missed BFI updates and fix one in CodeGenPrepare.

Summary:
This helps detect some missed BFI updates during CodeGenPrepare.

This is debug build only and disabled behind a flag.

Fix a missed update in CodeGenPrepare::dupRetToEnableTailCallOpts().

Reviewers: davidxl

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77417
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-tbz.ll
The file was modifiedllvm/include/llvm/Analysis/BlockFrequencyInfo.h
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/lib/Analysis/BlockFrequencyInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
Commit 62ea77ec022b8d598a0e213db2e22a2b79063f80 by spatel
[SLP] add test for constant expression fake of load-combine pattern; NFC

This is a reduction of the test that caused D78997 to be reverted.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
Commit 02051c7f3ae9b90bb48a6bdf9b1badbb0d4b4f30 by spatel
[SLP] add another bailout for load-combine patterns (2nd try)

The original patch (rG86dfbc676ebe) exposed an existing bug:
we could wrongly cast a constant expression to BinaryOperator
because the pattern matching allows that. This adds a check
for that case, and there's a reduced test case to verify no
crashing.

Original commit message:

This builds on the or-reduction bailout that was added with D67841.
We still do not have IR-level load combining, although that could
be a target-specific enhancement for -vector-combiner.

The heuristic is narrowly defined to catch the motivating case from
PR39538:
https://bugs.llvm.org/show_bug.cgi?id=39538
...while preserving existing functionality.

That is, there's an unmodified test of pure load/zext/store that is
not seen in this patch at llvm/test/Transforms/SLPVectorizer/X86/cast.ll.
That's the reason for the logic difference to require the 'or'
instructions. The chances that vectorization would actually help a
memory-bound sequence like that seem small, but it looks nicer with:

  vpmovzxwd     (%rsi), %xmm0
  vmovdqu       %xmm0, (%rdi)

rather than:

  movzwl        (%rsi), %eax
  movl  %eax, (%rdi)
  ...

In the motivating test, we avoid creating a vector mess that is
unrecoverable in the backend, and SDAG forms the expected bswap
instructions after load combining:

  movzbl (%rdi), %eax
  vmovd %eax, %xmm0
  movzbl 1(%rdi), %eax
  vmovd %eax, %xmm1
  movzbl 2(%rdi), %eax
  vpinsrb $4, 4(%rdi), %xmm0, %xmm0
  vpinsrb $8, 8(%rdi), %xmm0, %xmm0
  vpinsrb $12, 12(%rdi), %xmm0, %xmm0
  vmovd %eax, %xmm2
  movzbl 3(%rdi), %eax
  vpinsrb $1, 5(%rdi), %xmm1, %xmm1
  vpinsrb $2, 9(%rdi), %xmm1, %xmm1
  vpinsrb $3, 13(%rdi), %xmm1, %xmm1
  vpslld $24, %xmm0, %xmm0
  vpmovzxbd %xmm1, %xmm1 # xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero
  vpslld $16, %xmm1, %xmm1
  vpor %xmm0, %xmm1, %xmm0
  vpinsrb $1, 6(%rdi), %xmm2, %xmm1
  vmovd %eax, %xmm2
  vpinsrb $2, 10(%rdi), %xmm1, %xmm1
  vpinsrb $3, 14(%rdi), %xmm1, %xmm1
  vpinsrb $1, 7(%rdi), %xmm2, %xmm2
  vpinsrb $2, 11(%rdi), %xmm2, %xmm2
  vpmovzxbd %xmm1, %xmm1 # xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero
  vpinsrb $3, 15(%rdi), %xmm2, %xmm2
  vpslld $8, %xmm1, %xmm1
  vpmovzxbd %xmm2, %xmm2 # xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero
  vpor %xmm2, %xmm1, %xmm1
  vpor %xmm1, %xmm0, %xmm0
  vmovdqu %xmm0, (%rsi)

  movl  (%rdi), %eax
  movl  4(%rdi), %ecx
  movl  8(%rdi), %edx
  movbel        %eax, (%rsi)
  movbel        %ecx, 4(%rsi)
  movl  12(%rdi), %ecx
  movbel        %edx, 8(%rsi)
  movbel        %ecx, 12(%rsi)

Differential Revision: https://reviews.llvm.org/D78997
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 6f17b3e3a76c41c73a6eb8075b0364f4c1725889 by arsenm2
AMDGPU: Fix broken tests for HSA metadata

These were testing byval private kernel arguments, which doesn't make
any sense and has never been used. There didn't seem to be any tests
for real value struct arguments, which are.
The file was modifiedllvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full-v3.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
Commit 5d0f2fdfa52b8b46995823b2b10ab6bbc40c4667 by spatel
[VectorCombine] add tests with undefs; NFC

Goes with D79452.
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop.ll
Commit 5eae715a3115be2640d0fd37d0bd4771abf2ab9b by jpienaar
[mlir] Add NamedAttrList

This is a wrapper around vector of NamedAttributes that keeps track of whether sorted and does some minimal effort to remain sorted (doing more, e.g., appending attributes in sorted order, could be done in follow up). It contains whether sorted and if a DictionaryAttr is queried, it caches the returned DictionaryAttr along with whether sorted.

Change MutableDictionaryAttr to always return a non-null Attribute even when empty (reserve null cases for errors). To this end change the getter to take a context as input so that the empty DictionaryAttr could be queried. Also create one instance of the empty dictionary attribute that could be reused without needing to lock context etc.

Update infer type op interface to use DictionaryAttr and use NamedAttrList to avoid incurring multiple conversion costs.

Fix bug in sorting helper function.

Differential Revision: https://reviews.llvm.org/D79463
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/lib/IR/Attributes.cpp
The file was modifiedmlir/lib/Interfaces/InferTypeOpInterface.cpp
The file was modifiedmlir/lib/Pass/IRPrinting.cpp
The file was modifiedmlir/include/mlir/IR/Attributes.h
The file was modifiedmlir/include/mlir/Interfaces/InferTypeOpInterface.td
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVCanonicalization.cpp
The file was modifiedmlir/lib/IR/FunctionImplementation.cpp
The file was modifiedmlir/lib/Analysis/CallGraph.cpp
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/lib/IR/Function.cpp
The file was modifiedmlir/include/mlir/IR/Operation.h
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/include/mlir/IR/FunctionSupport.h
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/include/mlir/Interfaces/InferTypeOpInterface.h
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/include/mlir/IR/FunctionImplementation.h
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
Commit 08c9c13749aebd03bec55442301442670fa0b72c by huihuiz
[InstCombine][SVE] Fix visitInsertElementInst for scalable type.

Summary:
This patch fixes the following issues in visitInsertElementInst:

      1. Bail out for scalable type when analysis requires fixed size number of vector elements.
      2. Use cast<FixedVectorType> to get vector number of elements. This ensure assertion
          on scalable vector type.
      3. For scalable type, avoid folding a chain of insertelement into splat:
            insertelt(insertelt(insertelt(insertelt X, %k, 0), %k, 1), %k, 2) ...
              ->
            shufflevector(insertelt(X, %k, 0), undef, zero)
          The length of scalable vector is unknown at compile-time, therefore we don't know if
          given insertelement sequence is valid for splat.

Reviewers: sdesmalen, efriedma, spatel, nikic

Reviewed By: sdesmalen, efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78895
The file was addedllvm/test/Transforms/InstCombine/vscale_insertelement.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
Commit ed86058b53f971ed93cc79c8b4fc76da37ca0664 by erich.keane
Add static assert to ID Table to make sure aux targets work right.

I discovered that the limit on possible builtins managed by this
ObjCOrBuiltin variable is too low when combining large targets, since
aux-targets are appended to the targets list. A runtime assert exists
for this, however this patch creates a static-assert as well.

The logic for said static-assert is to make sure we have the room for
the aux-target and target to both be the largest list, which makes sure
we have room for all possible combinations.

I also incremented the number of bits by 1, since I discovered this
currently broken.  The current bit-count was 36, so this doesn't
increase any size.
The file was modifiedclang/include/clang/Basic/TargetBuiltins.h
The file was modifiedclang/include/clang/Basic/IdentifierTable.h
The file was modifiedclang/lib/Basic/IdentifierTable.cpp
Commit d03838343f2199580a1942eb353901add38af909 by thakis
Make -Wnonportable-include-path ignore drive case on Windows.

See PR45812 for motivation.

No explicit test since I couldn't figure out how to get the
current disk drive in lower case into a form in lit where I could
mkdir it and cd to it. But the change does have test coverage in
that I can remove the case normalization in lit, and tests failed
on several bots (and for me locally if in a pwd with a lower-case
drive) without that normalization prior to this change.

Differential Revision: https://reviews.llvm.org/D79531
The file was modifiedclang/lib/Lex/PPDirectives.cpp
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
The file was addedclang/test/Lexer/case-insensitive-include-win.c
Commit 1ec0cc0f02432ef640173b319a9c3b13fc850d33 by huihuiz
[InstCombine][SVE] Fix visitExtractElementInst for scalable type.

Summary:
This patch fix the following issues with visitExtractElementInst:

      1. Restrict VectorUtils::findScalarElement to fixed-length vector.
         For scalable type, the number of elements in shuffle mask is
         unknown at compile-time.
      2. Fix out-of-range calculation for fixed-length vector.
      3. Skip scalable type when analysis rely on fixed number of elements.
      4. Add unit tests to check functionality of extractelement for scalable type.

Reviewers: sdesmalen, efriedma, spatel, nikic

Reviewed By: efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78267
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was addedllvm/test/Transforms/InstCombine/vscale_extractelement.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
Commit b4aa71e1bd9aaee377e0ea22cf60a5857e570733 by eugenis
Allow -fsanitize-minimal-runtime with memtag sanitizer.

Summary:
MemTag does not have any runtime at the moment, it's strictly code
instrumentation.

Reviewers: pcc

Subscribers: cryptoad, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79522
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/test/Driver/fsanitize.c
Commit e8ea1eb4c1c68431d1cc42e7724f3d2940d6dea9 by huihuiz
[NFC] Adjust test check lines for D78267.

This wasn't identified through buildbot before.
The file was modifiedllvm/test/Transforms/InstCombine/vscale_extractelement.ll
Commit 5b48f7d2fc185ecd262aae43ddcfa32294205ca6 by spatel
[VectorCombine] adjust test to make intent clearer; NFC

Create a non-zero result to show that the other lane is computed correctly.
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop.ll
Commit f9eaa6934e4fdd92e09ddff89b6805a8b583e53e by erich.keane
Ensure aux-target specific builtins get validated.

I discovered that when using an aux-target builtin, it was recognized as
a builtin but never checked. This patch checks for an aux-target builtin
and instead validates it against the correct target.

It does this by extracting the checking code for Target-specific
builtins into its own function, then calls with either targetInfo or
AuxTargetInfo.
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was addedclang/test/Sema/check-aux-builtins.c
The file was modifiedclang/include/clang/Sema/Sema.h
Commit c9e6519d158b1b624eed087a332b3ca090d31d19 by gribozavr
Remove unused _LIBCPP_RAW_ITERATORS

Summary: This change removes seemingly unused _LIBCPP_RAW_ITERATORS.

Reviewers: #libc, EricWF, ldionne

Reviewed By: #libc, EricWF, ldionne

Subscribers: dexonsmith, ldionne, gribozavr2, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D79323
The file was modifiedlibcxx/include/string
Commit 6227f021ad400cc604ca2d15d3639eabfd66a2d9 by asbirlea
[SimpleLoopUnswitch] Update DefaultExit condition to check unreachable is not empty.

Summary:
Update the check for the default exit block to not only check that the
terminator is not unreachable, but also check that unreachable block has
*only* the unreachable instruction.

Reviewers: chandlerc

Subscribers: hiraditya, uabelho, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78277
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
The file was modifiedllvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch.ll
Commit 5a4ddbd69db2b0e09398214510501d0e59a0c30b by mydeveloperday
[clang-format] [PR45639] clang-format splits up the brackets of C++17 attribute [[ ]] when used with the first parameter

Summary:
https://bugs.llvm.org/show_bug.cgi?id=45639

clang-format incorrectly splits the `[[` in a long argument list

```
void SomeLongClassName::ALongMethodNameInThatClass([[maybe_unused]] const shared_ptr<ALongTypeName>& argumentNameForThat
LongType) {

}
```

becomes

```
void SomeLongClassName::ALongMethodNameInThatClass([
    [maybe_unused]] const shared_ptr<ALongTypeName> &argumentNameForThatLongType) {

}
```

leaving one `[` on the previous line

For a function with just 1 very long argument, clang-format chooses to split between the `[[`,

This revision prevents the slip between the two `[` and the second `[`

Reviewed By: krasimir

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D79401
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit df73e36dc6ffd2ede500189b075f7ac52794b3ad by zoecarver
[libcxx] [NFC] fpos Requirements (p0759r1).

Implements p0759r1. Test-only change. Adds explicit test for table 106 and type checking.

Differential Review: https://reviews.llvm.org/D60491
The file was addedlibcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp
The file was modifiedlibcxx/www/cxx2a_status.html
Commit 21e5e1724b75a4fc66ddb8b7e31b7c85b8f9c67b by emaste
getMainExecutable: Fix hand-rolled AT_EXECPATH for older FreeBSD

Once we hit AT_NULL, we need to bail out of the loop; not just the
enclosing switch.  This fixes basic usage (e.g. `cc --version`) when
AT_EXECPATH isn't present on older branches (e.g. under
emu-user-static, at the moment), where we would previously run off
the end of ::environ.

Patch By: kevans

Reviewed By: arichardson

Differential Revision: https://reviews.llvm.org/D79239
The file was modifiedllvm/lib/Support/Unix/Path.inc
Commit 6d2a66b10d458e34c852be46028092d2b46edc14 by zoecarver
[libc++] ECMAScript IdentityEscape is ambiguous (2584)

This patch fixes [[ https://cplusplus.github.io/LWG/issue2584 | 2584 ]]. Now the following works:
    const std::regex r1("\\z");
    assert(std::regex_match("z", r1));

Differential Revision: https://reviews.llvm.org/D66610
The file was modifiedlibcxx/include/regex
The file was modifiedlibcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp
The file was modifiedlibcxx/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
The file was modifiedlibcxx/www/cxx1z_status.html
Commit 675334daef991253e917411324d51751007c2fb8 by johannes
[Attributor] Mark dependence as optional
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit edf0391491e3a2076779c5da2c0dfc1829585d64 by johannes
[Attributor][FIX] Record dependences for assumed dead abstract attributes

In a recent patch we introduced a problem with abstract attributes that
were assumed dead at some point. Since `Attributor::updateAA` was
introduced in 95e0d28b71e42c9b7cd77c96f728311981a021f6, we did not
remember the dependence on the liveness AA when an abstract attribute
was assumed dead and therefore not updated.

Explicit reproducer added in liveness.ll.

---

Single run of the Attributor module and then CGSCC pass (oldPM)
for SPASS/clause.c (~10k LLVM-IR loc):

Before:
```
calls to allocation functions: 509242 (345483/s)
temporary memory allocations: 98666 (66937/s)
peak heap memory consumption: 18.60MB
peak RSS (including heaptrack overhead): 103.29MB
total memory leaked: 269.10KB
```

After:
```
calls to allocation functions: 529332 (355494/s)
temporary memory allocations: 102107 (68574/s)
peak heap memory consumption: 19.40MB
peak RSS (including heaptrack overhead): 102.79MB
total memory leaked: 269.10KB
```

Difference:
```
calls to allocation functions: 20090 (1339333/s)
temporary memory allocations: 3441 (229400/s)
peak heap memory consumption: 801.45KB
peak RSS (including heaptrack overhead): 0B
total memory leaked: 0B
```
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-2.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/Attributor/align.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
The file was modifiedllvm/test/Transforms/Attributor/misc.ll
The file was modifiedllvm/test/Transforms/Attributor/alwaysinline.ll
The file was modifiedllvm/test/Transforms/Attributor/willreturn.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/naked-return.ll
The file was modifiedllvm/test/Transforms/Attributor/noreturn_sync.ll
The file was modifiedllvm/test/Transforms/Attributor/range.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/pr32917.ll
The file was modifiedllvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
The file was modifiedllvm/test/Transforms/Attributor/returned.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/heap_to_stack.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
The file was modifiedllvm/test/Transforms/Attributor/nonnull.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/nocapture-2.ll
The file was modifiedllvm/test/Transforms/Attributor/memory_locations.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
The file was modifiedllvm/test/Transforms/Attributor/new_attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll
The file was modifiedllvm/test/Transforms/Attributor/norecurse.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/global.ll
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
Commit 13062d0fb76913802f94314090b1a2b36bd480d9 by Jonas Devlieghere
[lldb/Test] Skip more tests that are not expected to work with passive replay

This skips some tests that pass with active replay (which doesn't check
the output) but fail with passive replay. Valid reasons for this
include:

- Checking the output of the process (which doesn't run during replay),
- Checking files that cannot be captured in the VFS (non-existing or
   unreadable files or files that are removed during test),

Unfortunately there's no good way to mark a test as supported for active
replay but unsupported for passive replay because the number and order
of API calls needs to be identical during capture and replay. I don't
think this is a huge loss however.
The file was modifiedlldb/test/API/commands/process/launch/TestProcessLaunch.py
The file was modifiedlldb/test/API/python_api/process/io/TestProcessIO.py
The file was modifiedlldb/test/API/commands/target/basic/TestTargetCommand.py
Commit 7af9d386da2a2447ac044120ff23770ac0cedc3c by jyknight
Correctly modify the CFG in IfConverter, and then remove the
CorrectExtraCFGEdges function.

The latter was a workaround for "Various pieces of code" leaving bogus
extra CFG edges in place. Where by "various" it meant only
IfConverter::MergeBlocks, which failed to clear all of the successors
of dead blocks it emptied out. This wouldn't matter a whole lot,
except that the dead blocks remained listed as predecessors of
still-useful blocks, inhibiting optimizations.

This fix slightly changed two thumb tests, because the correct CFG
successors allowed for the "diamond" if-conversion pattern to be
detected, when it could only use "simple" before.

Additionally, the removal of a now-redundant call to analyzeBranch
(with AllowModify=true) in BranchFolder::OptimizeFunction caused a
later check for an empty block in BranchFolder::OptimizeBlock to
fail. Correct this by moving the call to analyzeBranch in
OptimizeBlock higher.

Differential Revision: https://reviews.llvm.org/D79527
The file was modifiedllvm/test/CodeGen/ARM/ifcvt3.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp
The file was modifiedllvm/lib/CodeGen/IfConversion.cpp
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/thumb2-ifcvt1.ll
Commit 29396059a4d07869e9d4b8b0f86152b81df08a77 by thakis
Revert "[YAMLVFSWriter][Test][NFC] Add couple tests"

This reverts commit 7143d7925490e9123b1c93305700221584ba10c6.
Breaks check-llvm on Windows, see e.g.
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/15919/steps/stage%201%20check/logs/stdio
The file was modifiedllvm/unittests/Support/VirtualFileSystemTest.cpp
Commit f5224d437eace9593b64ef2eff501df397bce6a8 by diego.caballero
[LoopFusion] Remove unreachable blocks from DT and LI after fusion

This patch removes FC0.ExitBlock and FC1GuardBlock from DT and LI
after fusion of guarded loops. They become unreachable and LI
verification failed when they happened to be inside another loop.

Reviewed By: kbarton

Differential Revision: https://reviews.llvm.org/D78679
The file was modifiedllvm/lib/Transforms/Scalar/LoopFuse.cpp
The file was addedllvm/test/Transforms/LoopFusion/triple_loop_nest_inner_guard.ll
The file was addedllvm/test/Transforms/LoopFusion/double_loop_nest_inner_guard.ll
Commit e8147ad8222602d16728c370d5fac086260d058c by tmsriram
Uniuqe Names for Internal Linkage Symbols.

This is a standalone patch and this would help Propeller do a better job of code
layout as it can accurately attribute the profiles to the right internal linkage
function.

This also helps SampledFDO/AutoFDO correctly associate sampled profiles to the
right internal function. Currently, if there is more than one internal symbol
foo, their profiles are aggregated by SampledFDO.

This patch adds a new clang option, -funique-internal-funcnames, to generate
unique names for functions with internal linkage. This patch appends the md5
hash of the module name to the function symbol as a best effort to generate a
unique name for symbols with internal linkage.

Differential Revision: https://reviews.llvm.org/D73307
The file was addedclang/test/Driver/funique-internal-linkage-names.c
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was addedclang/test/CodeGen/unique-internal-linkage-names.cpp
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/docs/UsersManual.rst
Commit ce86a986c39b2ad50ce495fe2d69c95d8a961c37 by Xing
[Object] Remove unneeded check in ELFFile<ELFT>::dynamicEntries().

Check for `DynSecSize % sizeof(Elf_Dyn) != 0` is unneeded in this context.

1. If the .dynamic section is acquired from program headers, the .dynamic
section is "cut off" by

```
makeArrayRef(..., Phdr.p_filesz / sizeof(Elf_Dyn));
DynSeSize = Phdr.p_filesz;
```

2. If the .dynamic section is acquired from section headers, the .dynamic
section is checked in `getSectionContentsAsArray<Elf_Dyn>(&Sec)`.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D79560
The file was modifiedllvm/lib/Object/ELF.cpp
Commit 2ea7187ab9b7f0eab38a0b5be45c48b1f4f4938d by Jason Molenda
Add a new lockdownd plist for launching posix processes

Similar to
com.apple.debugserver.plist & com.apple.debugserver.internal.plist
com.apple.debugserver.applist.plist & com.apple.debugserver.applist.internal.plist
add a variant of the posix plist.

<rdar://problem/62995567>
The file was addedlldb/tools/debugserver/source/com.apple.debugserver.posix.internal.plist
Commit 771d30c6470c63186a71b78a0ce0a9b1698bf6fd by ajcbik
[llvm] [CodeGen] Fixed vector halving bug for masked store

Summary:
Note that this fix is very similar to what has already been
done for the masked load in https://reviews.llvm.org/D78608

Bugs:
https://bugs.llvm.org/show_bug.cgi?id=45563
https://bugs.llvm.org/show_bug.cgi?id=45833

Reviewers: craig.topper, nicolasvasilache, mehdi_amini

Reviewed By: craig.topper

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79611
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was addedllvm/test/CodeGen/X86/pr45833.ll
Commit 4ae537c2220f5064fdc914348dabe70eb10eef85 by rtrieu
Fix false positive with -Wnon-c-typedef-for-linkage

Implicit methods for structs can confuse the warning, so exclude checking
the Decl's that are implicit. Implicit Decl's for lambdas still need to
be checked, so skipping all implicit Decl's won't work.

Differential Revision: https://reviews.llvm.org/D79548
The file was modifiedclang/test/SemaCXX/anonymous-struct.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp