Changes

Summary

  1. [zorg] Remove flang-aarch64-ubuntu-out-of-tree-new-driver (details)
Commit de74f83353c32d08126bddb778b9d89cc2708e46 by diana.picus
[zorg] Remove flang-aarch64-ubuntu-out-of-tree-new-driver

The new driver is on by default now, so this builder does the same thing
as flang-aarch64-ubuntu-out-of-tree.

Differential Revision: https://reviews.llvm.org/D102319
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
The file was modifiedbuildbot/osuosl/master/config/workers.py (diff)

Summary

  1. [analyzer][ctu] Avoid parsing invocation list again and again during on-demand parsing of CTU (details)
  2. Revert "[analyzer][ctu] Avoid parsing invocation list again and again during on-demand parsing of CTU" (details)
  3. [GlobalISel] Fix MachineIRBuilder not using the DstOp argument for G_SHUFFLE_VECTOR. (details)
  4. [analyzer][ctu] Reland "Avoid parsing invocation list again and again.. (details)
  5. [libomptarget][nfc] Accept callable for hsa iterate_symbols (details)
  6. [TRE] Reland: allow TRE for non-capturing calls. (details)
  7. [mlir] Check only last dim stride in transfer op lowering (details)
  8. [clang][ARM] Remove non-existent arm1136jz-s CPU (details)
  9. [GlobalISel] Silence unused variable warning in Release builds. NFC. (details)
  10. [llvm][ARM] Remove non-existent arm1176j-s CPU (details)
  11. [clang][ARM] Remove non-existent arm9312 CPU (details)
  12. [ARM][NEON] Combine base address updates for vld1x intrinsics (details)
  13. [llvm-exegesis] Loop unrolling for loop snippet repetitor mode (details)
  14. [IR] Allow Value::replaceUsesWithIf() to process constants (details)
  15. [lldb] Re-eanble and rewrite TestCPPStaticMembers (details)
  16. [lldb] Disable minimal import mode for RecordDecls that back FieldDecls (details)
  17. [AArch64] Add tests for lowering of vector load + single extract. (details)
  18. [mlir] Fold memref.dim of OffsetSizeAndStrideOpInterface outputs (details)
  19. [MLIR][Affine][LICM] Mark users of `iter_args` variant (details)
  20. [AMDGPU] Remove dead declaration (NFC). (details)
  21. [CostModel][X86] Improve accuracy of vXi8/vXi16 vector non-uniform shift costs on AVX2/AVX512 targets (details)
  22. Fix MSVC "truncation of constant value" warning. NFCI. (details)
  23. [NFC][CodeGenOptions] Refactor checking SanitizeCoverage options (details)
  24. [NFC][SanitizeCoverage] Test always_inline functions work (details)
  25. [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute (details)
  26. [lldb] X-FAIL TestCPPStaticMembers on Windows (details)
  27. [lldb][NFC] Remove misleading ModulePass base class for IRForTarget (details)
  28. [NFC][LoopIdiom] Add tests for 'arithmetic right-shift until zero' idiom (details)
  29. [LoopIdiom] Support 'arithmetic right-shift until zero' idiom (details)
  30. [lldb] Fix that LLDB doesn't print NaN's sign on Darwin (details)
  31. [Dexter] Add DexDeclareFile command to Dexter (details)
  32. [AArch64][SVE] Add fixed length codegen for FP_TO_{S,U}INT/{S,U}INT_TO_FP (details)
  33. [AMDGPU][Libomptarget] Mark lambda_by_value test as XFAIL (details)
  34. [NFC][LoopIdiom] Add tests for 'left-shift until zero' idiom (details)
  35. [LoopIdiom] Support 'left-shift until zero' idiom (details)
  36. [dexter] Change --source-root-dir and add --debugger-use-relative-paths (details)
  37. [NFC] [Coroutines] Remove unused variable: UnreachableCache (details)
  38. [Dexter] Remove erroneously added diff file (details)
  39. [mlir] Disallow certain transfer ops in VectorToSCF (details)
  40. [InstCombine] add tests for cast-of-shuffle; NFC (details)
  41. [InstCombine] canonicalize cast before unary shuffle (details)
  42. [mlir][doc] Fix links and references in documentation of Rationale (details)
  43. [mlir] Support buffer hoisting on allocas (details)
  44. [mlir][doc] Fix links and references in documentation of Dialects (details)
  45. [VectorCombine] Use constant range info for index scalarization legality. (details)
  46. [Headers][WASM] adjust test that runs the optimizer; NFC (details)
  47. [VectorCombine] Add test that combines load & store scalarization. (details)
  48. [InstSimplify] Transform X * Y % Y --> 0 (details)
  49. [AMDGPU] More accurate names for dpp operand types (details)
  50. [clang][ARM] When handling multiple -mimplicit-it mark all as used (details)
  51. Reland "Do not create LLVM IR `constant`s for objects with dynamic initialisation" (details)
  52. [X86][SSE] Regenerate vector shift codegen tests. NFCI. (details)
  53. [CostModel][X86] Improve accuracy of vXi64 vector non-uniform shift costs on AVX2+ targets (details)
  54. [AMDGPU] Allow no-modifier operands in cvtDPP (details)
  55. [libc++] [test] Format some C++20 iterator_traits tests. NFCI. (details)
  56. [libc++] [test] Make iter_difference_t.pass.cpp into a .compile.pass.cpp. NFCI. (details)
  57. [SystemZ][z/OS] Implement getHostCPUName for z/OS (details)
  58. BPF: Add more relocation kinds (details)
  59. [SystemZ] Return true from preferZeroCompareBranch(). (details)
  60. [scudo] Rework dieOnMapUnmapError (details)
  61. [mlir][CAPI][test] Change casts and fprintf format strings from long to intptr_t (details)
  62. [VectorCombine] Remove unneeded InsertPointGuard (NFCI). (details)
  63. [CostModel][X86] Improve accuracy of 256-bit non-uniform vector shifts on AVX1 (details)
  64. [X86][Atom] Fix vector PSHUFB resource/throughputs (details)
  65. [AIX][AsmPrinter] Print Symbol in comments for TOC load (details)
  66. [sparse][mlir] simplify sparse runtime support library (details)
  67. [libc++] Try to fix the oss-fuzz failure (details)
  68. [SCEV] Remove unused parameter from computeBECount [NFC] (details)
  69. [llvm-reduce] Exit when input module is malformed (details)
  70. [SCEV] Cleanup doesIVOverflowOnX checks [NFC] (details)
  71. Revert "[OpaquePtr] Make atomicrmw work with opaque pointers" (details)
  72. [InstCombine] avoid infinite loop from vector select transforms (details)
  73. [AMDGPU][GlobalISel] Stop foldInsertEltToCmpSelect from changing reg banks (details)
  74. [flang] Fix recent regression (proc. dummy arg on ENTRY) (details)
  75. [CSSPGO][llvm-profgen] Change default cold threshold for context merging (details)
  76. [mlir][linalg] Update Linalg.md (NFC). (details)
  77. [Hexagon] Improve argument packing in vector shuffle selection (details)
  78. [scudo] Consistent setting of SCUDO_DEBUG (details)
  79. [scudo] Fix CHECK implementation (details)
  80. [LoopIdiom] 'arithmetic right-shift until zero': don't turn potentially infinite loops into finite ones (details)
  81. [mlir] Add an optional distributionTypes attribute to TiledLoopOp. (details)
  82. [Matrix] Factor and distribute transposes across multiplies (details)
  83. [mlir][doc] Fix links and references in documentation of Tutorials (details)
  84. [InstSimplify] allow undef element match in vector select condition value (details)
  85. [AMDGPU] Lower kernel LDS into a sorted structure (details)
  86. [mlir] Use unique_function in AbstractOperation fields (details)
  87. Add pre-commit tests for [D102215](https://reviews.llvm.org/D102215). (details)
  88. [SelectionDAG] Propagate scoped AA metadata when lowering mem intrinsics. (details)
  89. [CVP] Guard against poison in common phi value transform (PR50399) (details)
  90. Revert "[NFC][scudo] Let disableMemoryTagChecksTestOnly to fail" (details)
  91. [lld-macho][nfc] Misc code cleanup (details)
  92. [lld-macho][nfc] clang-format everything (details)
  93. [lld-macho][nfc] Rename MergedOutputSection to ConcatOutputSection (details)
  94. [lld-macho][nfc] Sort OutputSections based on explicit order of command-line inputs (details)
  95. [lld-macho][nfc] Remove unnecessary parameterization of section sort (details)
  96. [gn build] Port 33706191d88d (details)
  97. [SCEV] Cache operands used in BEInfo (NFC) (details)
  98. Revert "[AIX] Avoid structor alias; die before bad alias codegen" (details)
  99. [Matrix] Use LLVM_DEBUG for a debug flag (details)
  100. [mlir] Add a copy constructor to FailureOr (details)
  101. [JITLink][MachO][arm64] Use a more descriptive test name. (details)
  102. [JITLink][MachO][arm64] Build GOT entries for defined symbols too. (details)
  103. [NFC] Fix 'unused' warning (details)
  104. [AMDGPU] Fix unused variable warning. NFC. (details)
  105. [TSAN][CMake] Add support to run lit on individual tests (details)
  106. [docs] Explain address spaces a bit more in opaque pointers doc (details)
  107. [sanitizer][test] s/A<10>/A<7>/ to fix "WARNING: Symbolizer buffer too small" which is somehow a hard error on s390x (details)
  108. [Hexagon] Remove unused function from HexagonISelDAGToDAGHVX.cpp (details)
  109. [docs] [CMake] Change recommendations for how to use LLVM_DEFINITIONS (details)
  110. [libcxx] Make the visibility attributes consistent for __narrow_to_utf8/__widen_from_utf8 (details)
  111. [libcxx] [test] Explain an XFAIL LIBCXX-WINDOWS-FIXME and convert into UNSUPPORTED (details)
  112. [libcxxabi] Use ASan interface header for declaration. NFC (details)
  113. [Canonicalize] Fully parameterize the pass based on config options. NFC. (details)
  114. [flang] Implement checks for defined input/output procedures (details)
  115. [Canonicalize] Switch the default setting to "top down". (details)
  116. [libcxx] Fix the function name in exceptions from create_directories (details)
  117. [libc++] [P0619] Hide not1 and not2 under _LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS. (details)
  118. Revert "[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration" (details)
  119. [Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member (details)
  120. [ARM] Extra predicated tests for VMULH. NFC (details)
  121. [libc++] Install GCC 11 on CI builders (details)
  122. [libomptarget][nfc] Move hostcall required test to rtl (details)
  123. [Toy] Update tests to pass with top-down canonicalize pass. NFC (details)
  124. [MLIR Core] Cache the empty StringAttr like we do for empty dictionaries. NFC. (details)
  125. [NFC][SCUDO] Fix unittest for -gtest_repeat=10 (details)
  126. [NFC][MLIR][TOSA] Replaced tosa linalg.indexed_generic lowerings with linalg.index (details)
  127. [gcov] Silence warning: comparison of integers of different signs (details)
  128. [benchmark] Silence 'suggest override' and 'missing override' warnings (details)
  129. LLVM Detailed IR tests for introduction of flag -fsanitize-address-detect-stack-use-after-return-mode. (details)
  130. [sanitizer] Let glibc aarch64 use O(1) GetTls (details)
  131. [OpaquePtr] Create new bitcode encoding for atomicrmw (details)
  132. [LTT] Handle merged llvm.assume when dropping type tests (details)
  133. [lldb] Avoid format string in LLDB_SCOPED_TIMER (details)
  134. Revert "[lldb] Avoid format string in LLDB_SCOPED_TIMER" (details)
  135. [OpaquePtr] Make atomicrmw work with opaque pointers (details)
  136. [libcxx][iterator] adds `std::ranges::advance` (details)
  137. [gn build] Port 36d0fdf9ac3b (details)
  138. [clang-format][NFC] correctly sort StatementAttributeLike-macros' IO.map (details)
Commit db8af0f21dc9aad4d336754c857c24470afe53e3 by balazs.benics
[analyzer][ctu] Avoid parsing invocation list again and again during on-demand parsing of CTU

During CTU, the *on-demand parsing* will read and parse the invocation
list to know how to compile the file being imported. However, it seems
that the invocation list will be parsed again if a previous parsing
has failed.
Then, parse again and fail again. This patch tries to overcome the
problem by storing the error code during the first parsing, and
re-create the stored error during the later parsings.

Reviewed By: steakhal

Patch By: OikawaKirie!

Differential Revision: https://reviews.llvm.org/D101763
The file was addedclang/test/Analysis/ctu-on-demand-parsing-multiple-invocation-list-parsing.cpp
The file was modifiedclang/lib/CrossTU/CrossTranslationUnit.cpp
The file was modifiedclang/include/clang/CrossTU/CrossTranslationUnit.h
Commit f05b70c23687fdf3de349ab1dd99ad79c4c40e85 by balazs.benics
Revert "[analyzer][ctu] Avoid parsing invocation list again and again during on-demand parsing of CTU"

This reverts commit db8af0f21dc9aad4d336754c857c24470afe53e3.

clang-x86_64-debian-fast fails on this.

+ : 'RUN: at line 4'
+ /usr/bin/ccache
/b/1/clang-x86_64-debian-fast/llvm.src/clang/test/Analysis/ctu-on-demand-parsing-multiple-invocation-list-parsing.cpp
-fPIC -shared -o
/b/1/clang-x86_64-debian-fast/llvm.obj/tools/clang/test/Analysis/Output/ctu-on-demand-parsing-multiple-invocation-list-parsing.cpp.tmp/mock_open.so
ccache: error: execv of
/b/1/clang-x86_64-debian-fast/llvm.src/clang/test/Analysis/ctu-on-demand-parsing-multiple-invocation-list-parsing.cpp
failed: Permission denied
The file was removedclang/test/Analysis/ctu-on-demand-parsing-multiple-invocation-list-parsing.cpp
The file was modifiedclang/lib/CrossTU/CrossTranslationUnit.cpp
The file was modifiedclang/include/clang/CrossTU/CrossTranslationUnit.h
Commit ff30436dc5e54b85b5b942a3a84d0720f657b36f by Amara Emerson
[GlobalISel] Fix MachineIRBuilder not using the DstOp argument for G_SHUFFLE_VECTOR.
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit d59b4acf80d59c461decd41400988febaf0af8ca by balazs.benics
[analyzer][ctu] Reland "Avoid parsing invocation list again and again..

..during on-demand parsing of CTU"

During CTU, the *on-demand parsing* will read and parse the invocation
list to know how to compile the file being imported. However, it seems
that the invocation list will be parsed again if a previous parsing
has failed.
Then, parse again and fail again. This patch tries to overcome the
problem by storing the error code during the first parsing, and
re-create the stored error during the later parsings.

Reland without test.

Reviewed By: steakhal

Patch By: OikawaKirie!

Differential Revision: https://reviews.llvm.org/D101763
The file was modifiedclang/include/clang/CrossTU/CrossTranslationUnit.h
The file was modifiedclang/lib/CrossTU/CrossTranslationUnit.cpp
Commit 75492e20fb7c8e3fc4bc0ff8a5eda844056652cb by jonathanchesterfield
[libomptarget][nfc] Accept callable for hsa iterate_symbols

[libomptarget][nfc] Accept callable for hsa iterate_symbols
Candidate refactor to simplify D102692

Reviewed By: pdhaliwal

Differential Revision: https://reviews.llvm.org/D103030
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
Commit 10c2e261598a9c1b641b5adb10d87d937aba8b58 by a.v.lapshin
[TRE] Reland: allow TRE for non-capturing calls.

The D82085 "allow TRE for non-capturing calls" caused failure during bootstrap.
This patch does the same as D82085 plus fixes bootstrap error.

The problem with D82085 is that it does not create copies for byval
operands, while replacing function call with a branch.

Consider following example:

```
    int zoo ( S p1 );

    int foo ( int count, S p1 ) {
      if ( count > 10 )
        return zoo(p1);

      // temporarily variable created for passing byvalue parameter
      // p1 could be used when zoo(p1) is called(after TRE is done).
      // lifetime.start p1.byvalue.temp
      return foo(count+1, p1);
      // lifetime.end p1.byvalue.temp
    }
```

After recursive call to foo is replaced with a jump into
start of the function, its parameters could be passed to
zoo function. i.e. temporarily variable created for byvalue
parameter "p1" could be passed to zoo. Finally zoo receives
broken operand:

```
    int foo ( int count, S p1 ) {
    :tailrecurse
      p1_tr = phi p1, p1.byvalue.temp
      if ( count > 10 )
        return zoo(p1_tr);

      // temporarily variable created for passing byvalue parameter
      // p1 could be used when zoo(p1) is called(after TRE is done).
      lifetime.start p1.byvalue.temp
      memcpy (p1.byvalue.temp, p1_tr)
      count = count + 1
      lifetime.end p1.byvalue.temp
      br tailrecurse
    }
```

To prevent using p1.byvalue.temp after its scope finished by
lifetime.end marker this patch copies value from p1.byvalue.temp
into another temporarily variable and then copies this variable
into the input parameter for next iteration.

This patch passes bootstrap build and bootstrap build with AddressSanitizer.

Differential Revision: https://reviews.llvm.org/D85614
The file was addedllvm/test/Transforms/TailCallElim/tre-byval-parameter-2.ll
The file was addedllvm/test/Transforms/TailCallElim/tre-byval-parameter.ll
The file was addedllvm/test/Transforms/TailCallElim/tre-noncapturing-alloca-calls.ll
The file was modifiedllvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
The file was modifiedllvm/test/Transforms/TailCallElim/basic.ll
The file was addedllvm/test/Transforms/TailCallElim/tre-multiple-exits.ll
Commit 5017b0f88b81083d3f723e7a8e5cc19b1c4eb366 by springerm
[mlir] Check only last dim stride in transfer op lowering

Lower a 1D vector transfer op to LLVM if the last dim stride is 1. Also fixes a bug in the original unit stride computation.

Differential Revision: https://reviews.llvm.org/D102897
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-1d.mlir
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 5f4d383a59351711d4f64cbb6a04ef9ffc0d8f88 by david.spickett
[clang][ARM] Remove non-existent arm1136jz-s CPU

There is an ARM1136JF-S and an ARM1136J-S but I could find
no references to an ARM1136JZ-S. In CPU manuals or the manual
for Arm Compiler 5.

See:
https://developer.arm.com/documentation/ddi0211/latest/
https://developer.arm.com/documentation/dui0472/latest/

Using this CPU you get:
$ ./bin/clang --target=arm-linux-gnueabihf -march=armv3m -mcpu=arm1136jz-s -c /tmp/test.c -o /tmp/test.o
'arm1136jz-s' is not a recognized processor for this target (ignoring processor)

Since the llvm target does not know what it is.

This is part of fixing https://bugs.llvm.org/show_bug.cgi?id=50454.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D103019
The file was modifiedllvm/unittests/Support/TargetParserTest.cpp
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.def
Commit 6359842bc088857799318dad366099eeca92a4d5 by benny.kra
[GlobalISel] Silence unused variable warning in Release builds. NFC.
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit 0cd2629d97e70f34adb8d0d2ac4a4d280e3bab86 by david.spickett
[llvm][ARM] Remove non-existent arm1176j-s CPU

This was removed in https://reviews.llvm.org/D52594 for clang.

The one test using it has been updated to use the mpcore
CPU as the linked clang change does.

This is part of fixing https://bugs.llvm.org/show_bug.cgi?id=50454.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D103022
The file was modifiedllvm/test/CodeGen/ARM/build-attributes.ll
The file was modifiedllvm/unittests/Support/TargetParserTest.cpp
The file was modifiedllvm/lib/Target/ARM/ARM.td
Commit de7729d47a8ba0060dd6a6190d20d698539f76fe by david.spickett
[clang][ARM] Remove non-existent arm9312 CPU

I cannot find documentation on this CPU, and it
is not supported by the Arm Compiler 5 product either.

It was likely a mistake or a different name for the
"ep9312", which is an Arm based Cirrus Logic chip.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D103024
The file was modifiedllvm/unittests/Support/TargetParserTest.cpp
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.def
Commit 44843e2a046ef9959166e53d6c0cfb3b286fd4ce by kbessonova
[ARM][NEON] Combine base address updates for vld1x intrinsics

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D102855
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrNEON.td
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/test/CodeGen/ARM/arm-vld1.ll
The file was removedllvm/test/CodeGen/ARM/pr45824.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
Commit 78eaff2ef8a984859a04f944522280360ee825aa by lebedev.ri
[llvm-exegesis] Loop unrolling for loop snippet repetitor mode

I really needed this, like, factually, yesterday,
when verifying dependency breaking idioms for AMD Zen 3 scheduler model.

Consider the following example:
```
$ ./bin/llvm-exegesis --mode=inverse_throughput --snippets-file=/tmp/snippet.s --num-repetitions=1000000 --repetition-mode=duplicate
Check generated assembly with: /usr/bin/objdump -d /tmp/snippet-4a7e50.o
---
mode:            inverse_throughput
key:
  instructions:
    - 'VPXORYrr YMM0 YMM0 YMM0'
  config:          ''
  register_initial_values: []
cpu_name:        znver3
llvm_triple:     x86_64-unknown-linux-gnu
num_repetitions: 1000000
measurements:
  - { key: inverse_throughput, value: 0.31025, per_snippet_value: 0.31025 }
error:           ''
info:            ''
assembled_snippet: C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C5FDEFC0C3
...

```
What does it tell us?
So wait, it can only execute ~3 x86 AVX YMM PXOR zero-idioms per cycle?
That doesn't seem right. That's even less than there are pipes supporting this type of op.

Now, second example:
```
$ ./bin/llvm-exegesis --mode=inverse_throughput --snippets-file=/tmp/snippet.s --num-repetitions=1000000 --repetition-mode=loop
Check generated assembly with: /usr/bin/objdump -d /tmp/snippet-2418b5.o
---
mode:            inverse_throughput
key:
  instructions:
    - 'VPXORYrr YMM0 YMM0 YMM0'
  config:          ''
  register_initial_values: []
cpu_name:        znver3
llvm_triple:     x86_64-unknown-linux-gnu
num_repetitions: 1000000
measurements:
  - { key: inverse_throughput, value: 1.00011, per_snippet_value: 1.00011 }
error:           ''
info:            ''
assembled_snippet: 49B80800000000000000C5FDEFC0C5FDEFC04983C0FF75F2C3
...
```
Now that's just worse. Due to the looping, the throughput completely plummeted,
and now we can only do a single instruction/cycle!?

That's not great.
And final example:
```
$ ./bin/llvm-exegesis --mode=inverse_throughput --snippets-file=/tmp/snippet.s --num-repetitions=1000000 --repetition-mode=loop --loop-body-size=1000
Check generated assembly with: /usr/bin/objdump -d /tmp/snippet-c402e2.o
---
mode:            inverse_throughput
key:
  instructions:
    - 'VPXORYrr YMM0 YMM0 YMM0'
  config:          ''
  register_initial_values: []
cpu_name:        znver3
llvm_triple:     x86_64-unknown-linux-gnu
num_repetitions: 1000000
measurements:
  - { key: inverse_throughput, value: 0.167087, per_snippet_value: 0.167087 }
error:           ''
info:            ''
assembled_snippet: 49B80800000000000000C5FDEFC0C5FDEFC04983C0FF75F2C3
...
```

So if we merge the previous two approaches, do duplicate this single-instruction snippet 1000x
(loop-body-size/instruction count in snippet), and run a loop with 1000 iterations
over that duplicated/unrolled snippet, the measured throughput goes through the roof,
up to 5.9 instructions/cycle, which finally tells us that this idiom is zero-cycle!

Reviewed By: courbet

Differential Revision: https://reviews.llvm.org/D102522
The file was modifiedllvm/tools/llvm-exegesis/lib/SnippetRepetitor.h
The file was modifiedllvm/tools/llvm-exegesis/llvm-exegesis.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
The file was modifiedllvm/docs/CommandGuide/llvm-exegesis.rst
The file was modifiedllvm/tools/llvm-exegesis/lib/BenchmarkResult.h
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/SnippetRepetitorTest.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/SnippetRepetitor.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
Commit 8f681d5b272eeb5c0d13d225313f4ea9517f59f5 by Stanislav.Mekhanoshin
[IR] Allow Value::replaceUsesWithIf() to process constants

The change is currently NFC, but exploited by the depending D102954.
Code to handle constants is borrowed from the general implementation
of Value::doRAUW().

Differential Revision: https://reviews.llvm.org/D103051
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/include/llvm/IR/Value.h
Commit 8b656b88462f51396c8c4772e0012549f76f204f by Raphael Isemann
[lldb] Re-eanble and rewrite TestCPPStaticMembers

It's not clear why the whole test got disabled, but the linked bug report
has since been fixed and the only part of it that still fails is the test
for the too permissive lookup. This re-enables the test, rewrites it to use
the modern test functions we have and splits the failing part into its
own test that we can skip without disabling the rest.
The file was modifiedlldb/test/API/lang/cpp/static_members/main.cpp
The file was modifiedlldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
Commit 3bf96b0329be554c67282b0d7d8da6a864b9e38f by Raphael Isemann
[lldb] Disable minimal import mode for RecordDecls that back FieldDecls

Clang adds a Decl in two phases to a DeclContext. First it adds it invisible and
then it makes it visible (which will add it to the lookup data structures). It's
important that we can't do lookups into the DeclContext we are currently adding
the Decl to during this process as once the Decl has been added, any lookup will
automatically build a new lookup map and add the added Decl to it. The second
step would then add the Decl a second time to the lookup which will lead to
weird errors later one. I made adding a Decl twice to a lookup an assertion
error in D84827.

In the first step Clang also does some computations on the added Decl if it's
for example a FieldDecl that is added to a RecordDecl.

One of these computations is checking if the FieldDecl is of a record type
and the record type has a deleted constexpr destructor which will delete
the constexpr destructor of the record that got the FieldDecl.

This can lead to a bug with the way we implement MinimalImport in LLDB
and the following code:

```
struct Outer {
  typedef int HookToOuter;
  struct NestedClass {
    HookToOuter RefToOuter;
  } NestedClassMember; // We are adding this.
};
```

1. We just imported `Outer` minimally so far.
2. We are now asked to add `NestedClassMember` as a FieldDecl.
3. We import `NestedClass` minimally.
4. We add `NestedClassMember` and clang does a lookup for a constexpr dtor in
   `NestedClass`. `NestedClassMember` hasn't been added to the lookup.
5. The lookup into `NestedClass` will now load the members of `NestedClass`.
6. We try to import the type of `RefToOuter` which will try to import the `HookToOuter` typedef.
7. We import the typedef and while importing we check for conflicts in `Outer` via a lookup.
8. The lookup into `Outer` will cause the invisible `NestedClassMember` to be added to the lookup.
9. We continue normally until we get back to the `addDecl` call in step 2.
10. We now add `NestedClassMember` to the lookup even though we already did that in step 8.

The fix here is disabling the minimal import for RecordTypes from FieldDecls. We
actually already did this, but so far we only force the definition of the type
to be imported *after* we imported the FieldDecl. This just moves that code
*before* we import the FieldDecl so prevent the issue above.

Reviewed By: shafik, aprantl

Differential Revision: https://reviews.llvm.org/D102993
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was addedlldb/test/API/lang/cpp/reference-to-outer-type/Makefile
The file was addedlldb/test/API/lang/cpp/reference-to-outer-type/TestCppReferenceToOuterClass.py
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
The file was addedlldb/test/API/lang/cpp/reference-to-outer-type/main.cpp
Commit 536447eb203c3f096d8d4d451d609ef7357c9c43 by flo
[AArch64] Add tests for lowering of vector load + single extract.

Currently the vector load + extract gets lowered to a single scalar
store, not accounting for the fact that the index could be
out-of-bounds, which is poison, not UB.

See PR50382.
The file was modifiedllvm/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll
Commit 9ccdc2e23be18eca0b09f055fd17115c0366166c by tpopp
[mlir] Fold memref.dim of OffsetSizeAndStrideOpInterface outputs

This previously handled memref::SubviewOp, but this can be extended to
all ops implementing the interface.

Differential Revision: https://reviews.llvm.org/D103076
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/test/Dialect/MemRef/canonicalize.mlir
Commit eff269fc9f8b8c79e08e8295aa22da8950bcc341 by uday
[MLIR][Affine][LICM] Mark users of `iter_args` variant

Prevent users of `iter_args` of an affine for loop from being hoisted
out of it. Otherwise, LICM leads to a violation of the SSA dominance
(as demonstrated in the added test case).

Fixes: https://bugs.llvm.org/show_bug.cgi?id=50103

Reviewed By: bondhugula, ayzhuang

Differential Revision: https://reviews.llvm.org/D102984
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp
The file was modifiedmlir/test/Dialect/Affine/affine-loop-invariant-code-motion.mlir
Commit e3b8e6d48251a3b85f925fe695ef961013ddb940 by Christudasan.Devadasan
[AMDGPU] Remove dead declaration (NFC).
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
Commit 68ef68f8ac5cad1fdcd9c7b0e2a8f134d9f595ae by llvm-dev
[CostModel][X86] Improve accuracy of vXi8/vXi16 vector non-uniform shift costs on AVX2/AVX512 targets

Determined from llvm-mca analysis, AVX2+ capable targets have a higher throughput for VPBLENDVB and VPMOVZX ops, making it cheaper to perform shift+select patterns for vXi8 shifts or extend/shift/truncate for vXi16 shifts. Similarly AVX512BW can perform vXi8 as extend/shift/truncate patterns.
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshr.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/div.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshl.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/rem.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
Commit ed14062be0c1769130b046880199bdba3c6a2ee2 by llvm-dev
Fix MSVC "truncation of constant value" warning. NFCI.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
Commit ca6df734069ae590d1632e920ceba03bea317549 by elver
[NFC][CodeGenOptions] Refactor checking SanitizeCoverage options

Refactor checking SanitizeCoverage options into
CodeGenOptions::hasSanitizeCoverage().

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102927
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
Commit 85feebf5a3401eab4c71288e2dc089faf547ab4c by elver
[NFC][SanitizeCoverage] Test always_inline functions work

Test that always_inline functions are instrumented as expected.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102929
The file was modifiedclang/test/CodeGen/sanitize-coverage.c
Commit 280333021e9550d80f5c1152a34e33e81df1e178 by elver
[SanitizeCoverage] Add support for NoSanitizeCoverage function attribute

We really ought to support no_sanitize("coverage") in line with other
sanitizers. This came up again in discussions on the Linux-kernel
mailing lists, because we currently do workarounds using objtool to
remove coverage instrumentation. Since that support is only on x86, to
continue support coverage instrumentation on other architectures, we
must support selectively disabling coverage instrumentation via function
attributes.

Unfortunately, for SanitizeCoverage, it has not been implemented as a
sanitizer via fsanitize= and associated options in Sanitizers.def, but
rolls its own option fsanitize-coverage. This meant that we never got
"automatic" no_sanitize attribute support.

Implement no_sanitize attribute support by special-casing the string
"coverage" in the NoSanitizeAttr implementation. To keep the feature as
unintrusive to existing IR generation as possible, define a new negative
function attribute NoSanitizeCoverage to propagate the information
through to the instrumentation pass.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=49035

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D102772
The file was modifiedllvm/include/llvm/AsmParser/LLToken.h
The file was modifiedllvm/test/Bitcode/attributes.ll
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/utils/vim/syntax/llvm.vim
The file was modifiedllvm/include/llvm/IR/Attributes.td
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedclang/docs/SanitizerCoverage.rst
The file was modifiedllvm/docs/BitCodeFormat.rst
The file was modifiedllvm/include/llvm/Bitcode/LLVMBitCodes.h
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
The file was modifiedllvm/test/Bitcode/compatibility.ll
The file was modifiedllvm/utils/vscode/llvm/syntaxes/ll.tmLanguage.yaml
The file was modifiedllvm/bindings/go/llvm/ir_test.go
The file was modifiedllvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
The file was modifiedllvm/utils/emacs/llvm-mode.el
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedllvm/utils/llvm.grm
The file was modifiedclang/test/CodeGen/sanitize-coverage.c
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedllvm/lib/Transforms/Utils/CodeExtractor.cpp
The file was modifiedllvm/lib/AsmParser/LLLexer.cpp
Commit a3a95286a73fddc4027de930fac29728cd4259fc by Raphael Isemann
[lldb] X-FAIL TestCPPStaticMembers on Windows

This was originally failed because of llvm.org/pr21765 which describes that
LLDB can't call a debugee's functions, but I removed the (unnecessary)
function call in the rewrite. It seems that the actual bug here is that we
can't lookup static members at all, so let's X-FAIL the test for the right
reason.
The file was modifiedlldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
Commit 1dee479ff632ef841ca7b28485779d898dd15e84 by Raphael Isemann
[lldb][NFC] Remove misleading ModulePass base class for IRForTarget

IRForTarget is never used by a pass manager or any other interface that requires
this class to inherit from `Pass`.

Also IRForTarget doesn't implement the current interface correctly because it
uses the `runOnModule` return value to indicate success/failure instead of
changed/not-changed, so if this ever ends up being used as a pass it would most
likely not work as intended.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D102677
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Commit 8a0e4ae7727d44998124c914a66329747c7dfdb8 by lebedev.ri
[NFC][LoopIdiom] Add tests for 'arithmetic right-shift until zero' idiom
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/logical-right-shift-until-zero.ll
The file was addedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
Commit f1c5f78d3813584f7796f8b84b92fa0725964c17 by lebedev.ri
[LoopIdiom] Support 'arithmetic right-shift until zero' idiom

This adds support for the "count active bits" pattern, i.e.:
```
int countActiveBits(signed val) {
    int cnt = 0;
    for( ; (val >> cnt) != 0; ++cnt)
        ;
    return cnt;
}
```
but a somewhat more general one:
```
int countActiveBits(signed val, int start, int off) {
    int cnt;
    for (cnt = start; val >> (cnt + off); cnt++)
        ;
    return cnt;
}
```

This directly matches the existing 'logical right-shift until zero' idiom.
alive2 is happy with all the tests there.

Note that, again, much like with the original unsigned case,
we don't require the `val != 0` guard.

The old `detectShiftUntilZeroIdiom()` already supports this pattern,
the idea here is that the `val` must be positive (have at least one
leading zero), because otherwise the loop is non-terminating,
but since it is not `while(1)`, that would have been UB.
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
Commit ae58cf5f45a9c159afbf86e93c0c257a22c4ee02 by Raphael Isemann
[lldb] Fix that LLDB doesn't print NaN's sign on Darwin

It seems std::ostringstream ignores NaN signs on Darwin while it prints them on
Linux. This causes that LLDB behaves differently on those platforms which is
both confusing for users and it also means we have to deal with that in our
tests.

This patch manually implements the NaN/Inf printing (which are apparently
implementation defined) to make LLDB print the same thing on all platforms. The
only output difference in practice seems to be that we now print negative NaNs
as `-nan`, but this potentially also changes the output on other systems I
haven't tested this on.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D102845
The file was modifiedlldb/source/Core/DumpDataExtractor.cpp
The file was modifiedlldb/unittests/Core/DumpDataExtractorTest.cpp
Commit c2c2be44ed644199a5a9832bf9ac34fc3ef6b486 by Tom.Weaver
[Dexter] Add DexDeclareFile command to Dexter

DexDeclareFile allows test producers to write test files with .dex extensions
that contain pure dexter commands.

.dex file commands do not need to be commented out like they do when written
inline within test source files.

DexDeclareFile commands are declarative in behaviour, they state that any
Dexter command seen from this point on will have its path attribute set to the
path declared in the DexDeclareFile command.

Differential Revision: https://reviews.llvm.org/D99651
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/source/test.cpp
The file was modifieddebuginfo-tests/dexter/dex/tools/test/Tool.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/commands.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/commands.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/lit.local.cfg.py
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/test.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/test.cfg
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/lit.local.cfg.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/lit.local.cfg.py
The file was modifieddebuginfo-tests/dexter/Commands.md
The file was addeddebuginfo-tests/dexter/dex/command/commands/DexDeclareFile.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/dex_commands/commands.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/test.cfg
The file was addeddebuginfo-tests/dexter/d.diff
The file was modifieddebuginfo-tests/dexter/dex/tools/clang_opt_bisect/Tool.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/lit.local.cfg.py
The file was modifieddebuginfo-tests/dexter/dex/tools/TestToolBase.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/penalty/dex_declare_file.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/test.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/test.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/source/test file.cpp
Commit f3c577ed38e55dca46692313f5b76688a115861a by bradley.smith
[AArch64][SVE] Add fixed length codegen for FP_TO_{S,U}INT/{S,U}INT_TO_FP

Depends on D102607

Differential Revision: https://reviews.llvm.org/D102777
The file was removedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-converts.ll
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-to-int.ll
Commit b0d68c7141412edcc8a7ea1b09a956df15f2b197 by Pushpinder.Singh
[AMDGPU][Libomptarget] Mark lambda_by_value test as XFAIL

Reason: Missing printf definition

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103078
The file was modifiedopenmp/libomptarget/test/mapping/lambda_by_value.cpp
Commit 980e0107a169b686bb480e751337f487d819a32c by lebedev.ri
[NFC][LoopIdiom] Add tests for 'left-shift until zero' idiom
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
The file was addedllvm/test/Transforms/LoopIdiom/X86/left-shift-until-zero.ll
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/logical-right-shift-until-zero.ll
Commit 8f4db14d1c8f12cade77873f8815497026d21f95 by lebedev.ri
[LoopIdiom] Support 'left-shift until zero' idiom

This adds support for the "count active bits" pattern, i.e.:
```
int countBits(unsigned val) {
    int cnt = 0;
    for( ; (val << cnt) != 0; ++cnt)
        ;
    return cnt;
}
```
but a somewhat more general one:
```
int countBits(unsigned val, int start, int off) {
    int cnt;
    for (cnt = start; val << (cnt + off); cnt++)
        ;
    return cnt;
}
```

alive2 is happy with all the tests there.

Note that, again, much like with the right-shift cases,
we don't require the `val != 0` guard.

This is the last pattern that was supported by
`detectShiftUntilZeroIdiom()`, which now becomes obsolete.
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/left-shift-until-zero.ll
Commit 4b55102aff29f5ce82b38a9e4a819b959e29ecd7 by orlando.hyams
[dexter] Change --source-root-dir and add --debugger-use-relative-paths

We want to use `DexDeclareFile` to specify paths relative to a project root
directory. The option `--source-root-dir`, prior to this patch, causes dexter
to strip the path prefix from commands before passing them to a debugger, and
appends the prefix to file paths returned from a debugger. This patch changes
the behviour of `--source-root-dir`. Relative paths in commands, made possible
with `DexDeclareFile(relative/path)`, are appended to the `--source-root-dir`
directory.

A new option, `--debugger-use-relative-paths`, can be used alongside
`--source-root-dir` to reproduce the old behaviour: all paths passed to the
debugger will be made relative to `--source-root-dir`.

I've added a regression test source_root_dir.dex for this new behaviour, and
modified the existing `--source-root-dir` regression and unit tests to use
`--debugger-use-relative-paths`.

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D100307
The file was modifieddebuginfo-tests/dexter/dex/debugger/DebuggerBase.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/dex_commands/source_root_dir.dex
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/test/source-root-dir.cpp
The file was modifieddebuginfo-tests/dexter/dex/tools/test/Tool.py
The file was modifieddebuginfo-tests/dexter/dex/tools/clang_opt_bisect/Tool.py
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/Debuggers.py
Commit 400a9d35015b1b8e56b5916e31c8be87851b799b by yedeng.yd
[NFC] [Coroutines] Remove unused variable: UnreachableCache
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
Commit fc0acd10c0ab43986303de4167e31b46f13367c2 by Tom.Weaver
[Dexter] Remove erroneously added diff file

Delete d.diff from debuginfo-tests/dexter directory.
The file was removeddebuginfo-tests/dexter/d.diff
Commit f718a53d7e13e7452a4bc9f265659bfb296cd4cc by springerm
[mlir] Disallow certain transfer ops in VectorToSCF

Disallow transfer ops that change the element type of the transfer. Such transfers could be supported in the future, if needed.

Differential Revision: https://reviews.llvm.org/D102746
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 06eae35689ee1a190cc3f2310e289b2659654755 by spatel
[InstCombine] add tests for cast-of-shuffle; NFC
The file was modifiedllvm/test/Transforms/InstCombine/vector-casts.ll
Commit 0bab0f6161193cd0cd24b7b0fc51590a60e810d2 by spatel
[InstCombine] canonicalize cast before unary shuffle

We could go either direction on this transform. VectorCombine already goes this
way for bitcasts (and handles more complicated cases using the cost model), so
let's try cast-first.

Deferring completely to VectorCombine is another possibility. But the backend
should be able to invert this easily when the vectors have the same shape, so
it doesn't seem like a transform that we need to avoid.

The motivating example from https://llvm.org/PR49081 has an int-to-float
sandwiched between 2 shuffles, and the backend currently does not reduce that,
so on x86, we get something like:

  pshufd $249, %xmm0, %xmm0]
  cvtdq2ps %xmm0, %xmm0
  shufps $144, %xmm0, %xmm0

...instead of just a single conversion instruction.

Differential Revision: https://reviews.llvm.org/D103038
The file was modifiedllvm/test/Transforms/InstCombine/shuffle-cast-dist.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vector-casts.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast.ll
Commit 5e2a302e37f14bcbd654f2cb3588075300658ddb by markus.boeck02
[mlir][doc] Fix links and references in documentation of Rationale

This patch is the second in a series of patches fixing markdown links and references inside the mlir documentation.

This patch addresses all broken references to other markdown files and sections inside the Rationale folder.

In addition to fixing the links and references like in the previous patch, I also changed references which are URLs to the mlir.llvm.org/docs website, to proper relative markdown references instead.

Differential Revision: https://reviews.llvm.org/D103013
The file was modifiedmlir/docs/Rationale/MLIRForGraphAlgorithms.md
The file was modifiedmlir/docs/Rationale/Rationale.md
The file was modifiedmlir/docs/Rationale/RationaleLinalgDialect.md
The file was modifiedmlir/docs/Rationale/RationaleGenericDAGRewriter.md
Commit 6054bfa8132ac06a140e1896d8cdd8dc79a01bd8 by tpopp
[mlir] Support buffer hoisting on allocas

This adds support for hoisting allocas in both BufferHoisting and
BufferLoopHoisting.

Differential Revision: https://reviews.llvm.org/D102681
The file was modifiedmlir/test/Transforms/buffer-loop-hoisting.mlir
The file was modifiedmlir/lib/Transforms/BufferOptimizations.cpp
Commit 9b99336d5daf9425f12c747fd746118457a80ed8 by markus.boeck02
[mlir][doc] Fix links and references in documentation of Dialects

This patch is the first in a series of patches fixing markdown links and references inside the mlir documentation. I chose to split it in a few reviews to be able to iterate quicker and to ease review.

This patch addresses all broken references to other markdown files and sections inside the Dialects folder.

One change that was also done was to insert '/' between the markdown files and section:
Example:
Builtin.md#integertype
was changed to:
Builtin.md/#integertype

After compilation, hugo then translates the later to jump directly to the integer type section, but not the former. Not inserting the slash would simply jump to just the Builtin page, instead of the integertype section. I therefore changed occurrences of the former version to the later as well.

Differential Revision: https://reviews.llvm.org/D103011
The file was modifiedmlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.td
The file was modifiedmlir/docs/Dialects/SPIR-V.md
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
The file was modifiedmlir/docs/Dialects/Affine.md
The file was modifiedmlir/docs/Dialects/Builtin.md
The file was modifiedmlir/docs/Dialects/MemRef.md
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/docs/Dialects/LLVM.md
The file was modifiedmlir/docs/Dialects/Linalg.md
Commit 575e2aff5574550d10278d9a41fca2926a5b8409 by flo
[VectorCombine] Use constant range info for index scalarization legality.

We can only scalarize memory accesses if we know the index is valid.

This patch adjusts canScalarizeAcceess to fall back to
computeConstantRange to check if the index is known to be valid.

Reviewed By: nlopes

Differential Revision: https://reviews.llvm.org/D102476
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
The file was modifiedllvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
The file was modifiedllvm/test/Transforms/VectorCombine/load-insert-store.ll
Commit 16e78ec0b43c33c818525ea9b5d39731022f1cbb by spatel
[Headers][WASM] adjust test that runs the optimizer; NFC

This broke with the LLVM change in 0bab0f616119
The file was modifiedclang/test/Headers/wasm.c
Commit a92376d2971a44344e7623295e7c2a204109956f by flo
[VectorCombine] Add test that combines load & store scalarization.
The file was addedllvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll
Commit 8607a023574f29cbb0b3fdd26f36872ca6b4af5e by spatel
[InstSimplify] Transform X * Y % Y --> 0

simplifyDiv already handles the case X * Y / Y --> X (barring overflow).
This adds the equivalent handling to simplifyRem.

Correctness:
https://alive2.llvm.org/ce/z/J2cUbS
https://alive2.llvm.org/ce/z/us9NUM
https://alive2.llvm.org/ce/z/AvaDGJ
https://alive2.llvm.org/ce/z/kq9ige

Extending the situations in which we apply this transform would not be
correct:
https://alive2.llvm.org/ce/z/Lf9V63
https://alive2.llvm.org/ce/z/6RPQK3
https://alive2.llvm.org/ce/z/p9UdxC
https://alive2.llvm.org/ce/z/A2zlhE
https://alive2.llvm.org/ce/z/vHTtLw
https://alive2.llvm.org/ce/z/lvpH42

Differential Revision: https://reviews.llvm.org/D102864
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/rem.ll
Commit 67c3707b31b47c9ef4c50e5f58e7c94166753ff7 by Joseph.Nash
[AMDGPU] More accurate names for dpp operand types

NFC. Renames the variable in the dpp input operand generators
from DstRC to OldRC, because that is what it actually sets.

Also documents the importance of setting HasModifiers = 0 in the
dpp8 asm string.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D103047

Change-Id: Ice69ae38f644de7f228a75ca47c43e88b1f7d9e1
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
Commit 8427053f81922b0665a1ad3f561c09f8c0b8dd30 by david.spickett
[clang][ARM] When handling multiple -mimplicit-it mark all as used

Since 4468e5b8999291cc84b78f33f207dcd0e58146bc clang will prefer
the last one it finds of "-mimplicit-it" or "-Wa,-mimplicit-it".

Due to a mistake in that patch the compiler argument "-mimplicit-it"
was never marked as used, even if it was the last one and was passed
to llvm.

Move the Claim call back to the start of the loop and update
the testing to check we don't get any unused argument warnings.

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D103086
The file was modifiedclang/test/Driver/arm-target-as-mimplicit-it.s
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 21aa107eb79f8ddc5e7ca4e8f3476338dfa90049 by momchil.velikov
Reland "Do not create LLVM IR `constant`s for objects with dynamic initialisation"

This relands commit 13dd65b3a1a3ac049b5f3a9712059f7c61649bea.

The original commit contained a test, which failed when compiled
for a MACH-O target.

This patch changes the test to run for x86_64-linux instead of
`%itanium_abi_triple`, to avoid having invalid syntax for MACH-O
sections. The patch itself does not care about section attribute
syntax and a x86 backend does not even need to be included in the
build.

Differential Revision: https://reviews.llvm.org/D102693
The file was addedclang/test/CodeGenCXX/clang-sections-1.cpp
The file was addedclang/test/CodeGenCXX/const-dynamic-init.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit e02a4f6bda10d92ae8e37c6e96b16f11a98dfefc by llvm-dev
[X86][SSE] Regenerate vector shift codegen tests. NFCI.
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/avx2-vector-shifts.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-lshr-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-lshr-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-lshr-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-shl-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-128.ll
The file was modifiedllvm/test/CodeGen/X86/prefer-avx256-shift.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-shl-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-lshr-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-shl-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-shl-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-ashr-256.ll
Commit c909dddddacf6d0bce864e4202406dd285801650 by llvm-dev
[CostModel][X86] Improve accuracy of vXi64 vector non-uniform shift costs on AVX2+ targets

rG1ad4f887bd7692a9e63fb42586f0ece366f2fe01 incorrectly assumed that vXi64 non-uniform shifts were slow like vXi32 were - but llvm-mca (+Agner) both confirm that Haswell/Broadwell are full rate.
The file was modifiedllvm/test/Analysis/CostModel/X86/rem.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/div.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshl.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshr.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost-inseltpoison.ll
Commit b67ea3d0c90c6a06576a806c67c7fa8721b7f5eb by Joseph.Nash
[AMDGPU] Allow no-modifier operands in cvtDPP

NFC, since no instructions have their AsmMatchConverter
changed, but prepares for that to happen.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D103046

Change-Id: I6afefad899076de7b9a412374d09b95b29e012fa
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
Commit 148c19a5b52b2c971573904911f6c90c72c45fe9 by arthur.j.odwyer
[libc++] [test] Format some C++20 iterator_traits tests. NFCI.

cxx20_iterator_traits.compile.pass.cpp actually depends on
implementation details of libc++, which is not great;
but I just left a comment and moved on.
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirectly_readable_traits.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/incrementable_traits.compile.pass.cpp
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/iter_difference_t.pass.cpp
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp
Commit bb523cc82bc55c181ccd2fddb431930d68975831 by arthur.j.odwyer
[libc++] [test] Make iter_difference_t.pass.cpp into a .compile.pass.cpp. NFCI.
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/iter_difference_t.compile.pass.cpp
The file was removedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/iter_difference_t.pass.cpp
Commit 993f38d0a7942d66d2dc1a64a1702bf9b15da87a by anirudh_prasad
[SystemZ][z/OS] Implement getHostCPUName for z/OS

- Currently, the host cpu information is not easily available on z/OS as in other platforms.
- This information is stored in the Communications Vector Table (https://www.ibm.com/docs/en/zos/2.2.0?topic=information-cvt-mapping)

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D102793
The file was modifiedllvm/lib/Support/Host.cpp
The file was addedllvm/include/llvm/Support/BCD.h
The file was modifiedllvm/unittests/Support/Host.cpp
Commit 6a2ea84600ba4bd3b2733bd8f08f5115eb32164b by yhs
BPF: Add more relocation kinds

Currently, BPF only contains three relocations:
  R_BPF_NONE   for no relocation
  R_BPF_64_64  for LD_imm64 and normal 64-bit data relocation
  R_BPF_64_32  for call insn and normal 32-bit data relocation

Also .BTF and .BTF.ext sections contain symbols in allocated
program and data sections. These two sections reserved 32bit
space to hold the offset relative to the symbol's section.
When LLVM JIT is used, the LLVM ExecutionEngine RuntimeDyld
may attempt to resolve relocations for .BTF and .BTF.ext,
which we want to prevent. So we used R_BPF_NONE for such relocations.

This all works fine until when we try to do linking of
multiple objects.
  . R_BPF_64_64 handling of LD_imm64 vs. normal 64-bit data
    is different, so lld target->relocate() needs more context
    to do a correct job.
  . The same for R_BPF_64_32. More context is needed for
    lld target->relocate() to differentiate call insn vs.
    normal 32-bit data relocation.
  . Since relocations in .BTF and .BTF.ext are set to R_BPF_NONE,
    they will not be relocated properly when multiple .BTF/.BTF.ext
    sections are merged by lld.

This patch intends to address this issue by adding additional
relocation kinds:
  R_BPF_64_ABS64     for normal 64-bit data relocation
  R_BPF_64_ABS32     for normal 32-bit data relocation
  R_BPF_64_NODYLD32  for .BTF and .BTF.ext style relocations.
The old R_BPF_64_{64,32} semantics:
  R_BPF_64_64        for LD_imm64 relocation
  R_BPF_64_32        for call insn relocation

The existing R_BPF_64_64/R_BPF_64_32 mapping to numeric values
is maintained. They are the most common use cases for
bpf programs and we want to maintain backward compatibility
as much as possible.

ExecutionEngine RuntimeDyld BPF relocations are adjusted as well.
R_BPF_64_{ABS64,ABS32} relocations will be resolved properly and
other relocations will be ignored.
Two tests are added for RuntimeDyld. Not handling R_BPF_64_NODYLD32 in
RuntimeDyldELF.cpp will result in "Relocation type not implemented yet!"
fatal error.

FK_SecRel_4 usages in BPFAsmBackend.cpp and BPFELFObjectWriter.cpp
are removed as they are not triggered in BPF backend.
BPF backend used FK_SecRel_8 for LD_imm64 instruction operands.

Differential Revision: https://reviews.llvm.org/D102712
The file was modifiedllvm/test/CodeGen/BPF/reloc.ll
The file was modifiedllvm/test/CodeGen/BPF/reloc-btf-2.ll
The file was modifiedllvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp
The file was addedllvm/test/CodeGen/BPF/reloc-3.ll
The file was addedllvm/test/ExecutionEngine/RuntimeDyld/BPF/abs64-relocation.s
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
The file was addedllvm/test/ExecutionEngine/RuntimeDyld/BPF/nodyld32-64-relocations.s
The file was modifiedllvm/include/llvm/BinaryFormat/ELFRelocs/BPF.def
The file was addedllvm/test/ExecutionEngine/RuntimeDyld/BPF/lit.local.cfg
The file was modifiedllvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp
The file was addedllvm/test/CodeGen/BPF/reloc-2.ll
The file was modifiedllvm/test/CodeGen/BPF/reloc-btf.ll
Commit e77cb4ae63e932aa8d5d825970c9e67c1491edec by paulsson
[SystemZ] Return true from preferZeroCompareBranch().

Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D103057
The file was modifiedllvm/test/CodeGen/SystemZ/codegenprepare-form-OF-ops.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h
Commit 1872283457fc1617fa750a11abdfd44e881dfcdb by kostyak
[scudo] Rework dieOnMapUnmapError

Said function had a few shortfalls:
- didn't set an abort message on Android
- was logged on several lines
- didn't provide extra information like the size requested if OOM'ing

This improves the function to address those points.

Differential Revision: https://reviews.llvm.org/D103034
The file was modifiedcompiler-rt/lib/scudo/standalone/fuchsia.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/common.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/string_utils.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/common.h
The file was modifiedcompiler-rt/lib/scudo/standalone/string_utils.h
Commit 09b5ebc07b477e7e115299cf42fe7737736dd5da by markus.boeck02
[mlir][CAPI][test] Change casts and fprintf format strings from long to intptr_t

A test in ir.c makes use of casting a void* to an integer type to print it's address. This cast is currently done with the datatype `long` however, which is only guaranteed to be equal to the pointer width on LP64 system. Other platforms may use a length not equal to the pointer width. 64bit Windows as an example uses 32 bit for `long` which does not match the 64 bit pointers.
This also results in clang warning due to `-Wvoid-pointer-to-int-cast`.

Technically speaking, since the test only passes the value 42, it does not cause any issues, but it'd be nice to fix the warning at least.

Differential Revision: https://reviews.llvm.org/D103085
The file was modifiedmlir/test/CAPI/ir.c
Commit 8e83ff58c9078c32bbc8d8ea456fa8fc0580761b by flo
[VectorCombine] Remove unneeded InsertPointGuard (NFCI).

All users of the builder should set an insert point before using the
builder. There should be no need for using InsertPointGuard here.
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
Commit def6269779aff0d4f1994cf73f7910add044ff72 by llvm-dev
[CostModel][X86] Improve accuracy of 256-bit non-uniform vector shifts on AVX1

Determined from llvm-mca analysis, AVX1 capable targets have a higher throughput for VPBLENDVB and shuffle ops, making it cheaper to perform shift+shuffle/select shift patterns.
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shift-ashr.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/powof2div.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/div.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shift-shl.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/rem.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshl.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fshr.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
Commit 57250f2f3c6d03e27d8649f6f7d6bdbabf8936cc by llvm-dev
[X86][Atom] Fix vector PSHUFB resource/throughputs

Match whats documented in the Intel AOM - the XMM variant of PSHUFB requires BOTH ports - this was being incorrectly modelled as EITHER port.

Now that we can use in-order models in llvm-mca, the atom model is a good "worst case scenario" analysis for x86.
The file was modifiedllvm/lib/Target/X86/X86ScheduleAtom.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-ssse3.s
Commit 882e4cbd7477995f580058ddd5dfe68a947527b6 by Jinsong Ji
[AIX][AsmPrinter] Print Symbol in comments for TOC load

We are using TOCEntry symbols like `LC..0` in TOC loads,
this is hard to read , at least requiring an additional step to figure
out the loaded symbols.

We should print out the name in comments.

Reviewed By: #powerpc, shchenz

Differential Revision: https://reviews.llvm.org/D102949
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py
Commit ca446e58c8417e942aca88a2d1572e3c12467b1f by ajcbik
[sparse][mlir] simplify sparse runtime support library

Removed some of the older raw "MLIRized" versions that are
no longer needed now that the sparse runtime support library
can focus on the proper sparse tensor types rather than the
opague pointer approach of the past. This avoids legacy...

Reviewed By: penpornk

Differential Revision: https://reviews.llvm.org/D102960
The file was removedmlir/test/Integration/Dialect/SparseTensor/CPU/frostt-example.mlir
The file was removedmlir/test/Integration/Dialect/SparseTensor/CPU/matrix-market-example.mlir
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp
The file was modifiedmlir/include/mlir/ExecutionEngine/CRunnerUtils.h
Commit d95a4b950dd38c745ef98e0f22ff22755196571d by Louis Dionne
[libc++] Try to fix the oss-fuzz failure
The file was modifiedlibcxx/utils/ci/oss-fuzz.sh
Commit a47b2d4567ac27eee8d355c079535a796639a041 by listmail
[SCEV] Remove unused parameter from computeBECount [NFC]

All callers pass "false" for the Equality parameter.  Kill the dead code, and update the function block comment.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit 472c009139eaf5c516395e669b1a70b118a514f8 by aeubanks
[llvm-reduce] Exit when input module is malformed

The parseInputFile function returns an empty unique_ptr to signal an
error, like when the input file doesn't exist, or is malformed. In this
case, the tool should exit immediately rather than segfault by
dereferencing the unique_ptr later.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D102891
The file was addedllvm/test/tools/llvm-reduce/fail-file-open.test
The file was modifiedllvm/tools/llvm-reduce/llvm-reduce.cpp
Commit aabca2d1da11aa3b832ce499acccca093236aac3 by listmail
[SCEV] Cleanup doesIVOverflowOnX checks [NFC]

Stylistic changes only.
1) Don't pass a parameter just to do an early exit.
2) Use a name which matches actual behavior.
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 0bbb502daa9017480d5fe595556a4f4e5adfcb3f by aeubanks
Revert "[OpaquePtr] Make atomicrmw work with opaque pointers"

This reverts commit 0bebda17bea38785c90a6fec3ca01cf74eb78b7c.

Causing "Invalid record" errors.
The file was modifiedllvm/test/Verifier/opaque-ptr.ll
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/test/Assembler/opaque-ptr.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
Commit ae1bc9ebf3a07d2b8c93624518f649805deccc3e by spatel
[InstCombine] avoid infinite loop from vector select transforms

The 2nd test is based on the fuzzer example in post-commit
comments of D101191 -
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34661

The 1st test shows that we don't deal with this symmetrically.
We should be able to reduce both examples (possibly in
instsimplify instead of instcombine).
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit 18c5444702893fd63b0a99ec7133dd714284f9d2 by Mirko.Brkusanin
[AMDGPU][GlobalISel] Stop foldInsertEltToCmpSelect from changing reg banks

This function can change regbank for registers which already have a selected
bank. Depending on the instruction where these registers were used it can
cause instruction selection to fail.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-insert-vector-elt.mir
Commit d3495ffa5ebaa0956adce1574454b387769931f6 by pklausler
[flang] Fix recent regression (proc. dummy arg on ENTRY)

A recent fix for problems with ENTRY statement handling didn't
get the case of a procedure dummy argument on an ENTRY statement
in an executable part right; the code presumed that those dummy
arguments would be objects, not entities that might be objects or
procedures.  Fix.

Differential Revision: https://reviews.llvm.org/D103098
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit fa14fd30ce6775807463c71cbbaf58d4b30c5e9a by aktoon
[CSSPGO][llvm-profgen] Change default cold threshold for context merging

llvm-profgen uses profile summary based cold threshold to merge and trim cold context profile. This is to strike a good balance between profile size and performance.

We've been using 99.9% as the cutoff to save profile size without affecting performance. This change switch to use 99.9% instead of 99.9999% as default cold threshold cutoff for llvm-profgen.

Redundant switch csprof-cold-thres is also removed and tests cleaned up.

Differential Revision: https://reviews.llvm.org/D103071
The file was modifiedllvm/test/tools/llvm-profgen/cs-extbinary.test
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp
The file was modifiedllvm/test/tools/llvm-profgen/fname-canonicalization.test
The file was modifiedllvm/test/tools/llvm-profgen/merge-cold-profile.test
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-noprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-dangling-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-noprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-noprobe.test
Commit 6779fcb26f961fe5fe7c48461dc8df940488d5d2 by gysit
[mlir][linalg] Update Linalg.md (NFC).

Update the paragraph on generic / indexed_generic to reflect the unification of these operations.

Differential Revision: https://reviews.llvm.org/D102775
The file was modifiedmlir/docs/Dialects/Linalg.md
Commit e7c839b1925f27cacc89ab9b22abfc7da8fbfb15 by kparzysz
[Hexagon] Improve argument packing in vector shuffle selection
The file was addedllvm/test/CodeGen/Hexagon/autohvx/shuffle-half-128b.ll
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/align2-128b.ll
The file was addedllvm/test/CodeGen/Hexagon/autohvx/shuffle-half-64b.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
The file was modifiedllvm/test/CodeGen/Hexagon/autohvx/align2-64b.ll
Commit 6a84d374d7dfa44094baed36fec2d5d92b2a6afc by Vitaly Buka
[scudo] Consistent setting of SCUDO_DEBUG

Make sure that if SCUDO_DEBUG=1 in tests
then we had the same in the scudo
library itself.

Reviewed By: cryptoad, hctim

Differential Revision: https://reviews.llvm.org/D103061
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
The file was modifiedcompiler-rt/lib/scudo/standalone/CMakeLists.txt
Commit 8e30b55c82cc245f8b59ef3b29d95c9797584b63 by Vitaly Buka
[scudo] Fix CHECK implementation

Cast of signed types to u64 breaks comparison.
Also remove double () around operands.

Reviewed By: cryptoad, hctim

Differential Revision: https://reviews.llvm.org/D103060
The file was modifiedcompiler-rt/lib/scudo/standalone/report.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/internal_defs.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/report_test.cpp
Commit 149e018d12642cf8cda9b26f2ffc66a63cc3cc25 by lebedev.ri
[LoopIdiom] 'arithmetic right-shift until zero': don't turn potentially infinite loops into finite ones

Nowadays LLVM does not assume that all loops are finite,
so if we want to produce a finite loop from a potentially-infinite one,
we must ensure that the original loop is known to be a finite one.

For this transform, it only matters for arithmetic right-shifts.
For them, either the function or the loop must be known to
be `mustprogress`, or the original value being shifted must be known
to be non-negative (because iff the sign bit was set,
it will never become zero, but will become `-1` in the "end").

It would be really good for alive2 to actually complain about this,
but it currently does not: https://github.com/AliveToolkit/alive2/issues/726
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
Commit 2ea6e13bf8189efb09cec89184b21f1db3de0d1c by pifon
[mlir] Add an optional distributionTypes attribute to TiledLoopOp.

Differential Revision: https://reviews.llvm.org/D103104
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/include/mlir/Dialect/Utils/StructuredOpsUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
Commit dfd1bbd00ac09b84c76cc5980cee1deb68475a04 by anemet
[Matrix] Factor and distribute transposes across multiplies

Now that we can fold some transposes into multiplies (CM: A * B^t and RM:
A^t * B), we want to move them around to create the optimal expressions:

* fold away double transposes while still using them to assert the shape
* sink transposes hoping they cancel out
* lift transposes when both operands are transposed

This also modifies the matrix remarks to include the number of exposed
transposes (i.e. transposes that we couldn't fold into a multiply).

The adjustment to the test remarks-inlining is a bit subtle: I am changing the
double transpose to a single transpose so that we don't remove it completely.
More importantly this changes some of the total instruction count, most
notable stores because we can no longer use a vector store.

Differential Revision: https://reviews.llvm.org/D102733
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/remarks-inlining.ll
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/remarks-shared-subtrees.ll
The file was modifiedllvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts.ll
Commit 31d1ae79752da75503a4f1deb3ef2fd0b7868682 by markus.boeck02
[mlir][doc] Fix links and references in documentation of Tutorials

This patch is the third in a series of patches fixing markdown links and references inside the mlir documentation.

This patch addresses all broken references to other markdown files and sections inside the Tutorials folder.

Differential Revision: https://reviews.llvm.org/D103017
The file was modifiedmlir/docs/Tutorials/Toy/Ch-7.md
The file was modifiedmlir/docs/Tutorials/UnderstandingTheIRStructure.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-4.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-5.md
The file was modifiedmlir/docs/Tutorials/CreatingADialect.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-2.md
The file was modifiedmlir/docs/Tutorials/QuickstartRewrites.md
The file was modifiedmlir/docs/Tutorials/DefiningAttributesAndTypes.md
The file was modifiedmlir/docs/Tutorials/Toy/_index.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-3.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-6.md
Commit ca7eaa0a54938bfe9aeed7ebc64202f0b6f2ce0d by spatel
[InstSimplify] allow undef element match in vector select condition value

The semantics of select with undefined/poison condition
are not explicitly stated in the LangRef, but this matches
comments in the code and Alive2 appears to concur:
https://alive2.llvm.org/ce/z/KXytmd

We can find this pattern after demanded elements transforms.

As noted in D101191, fuzzers are finding infinite loops because
we may not account for this pattern in other passes.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/select-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstSimplify/select.ll
Commit 8de4db697f2841748a5489d18d9fbcd130ae09bb by Stanislav.Mekhanoshin
[AMDGPU] Lower kernel LDS into a sorted structure

Differential Revision: https://reviews.llvm.org/D102954
The file was modifiedllvm/test/CodeGen/AMDGPU/local-memory.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-alloca-padding-size-estimate.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-relocs.ll
The file was addedllvm/test/CodeGen/AMDGPU/lower-kernel-and-module-lds.ll
The file was addedllvm/test/CodeGen/AMDGPU/lower-kernel-lds.ll
The file was addedllvm/test/CodeGen/AMDGPU/lower-kernel-lds-constexpr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lower-module-lds-constantexpr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/32-bit-local-address-space.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lower-module-lds-inactive.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-alignment.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/loop_break.ll
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.h
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lower-module-lds-offsets.ll
The file was modifiedllvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/local-memory.amdgcn.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-relocs.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/shl_add_ptr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_write2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll
Commit 1bf3fd9bb55a8e9c8a2f6e446e956951d1715cf7 by riddleriver
[mlir] Use unique_function in AbstractOperation fields

Currently, AbstractOperation fields are function pointers.
Modifying them to unique_function allow them to contain
runtime information.

For instance, this allows operations to be defined at runtime.

Differential Revision: https://reviews.llvm.org/D103031
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
Commit 4df3b60199ef80dfbd84c8cee8c8afd511443330 by michael.hliao
Add pre-commit tests for [D102215](https://reviews.llvm.org/D102215).
The file was addedllvm/test/CodeGen/AMDGPU/memcpy-scoped-aa.ll
The file was addedllvm/test/CodeGen/X86/memcpy-scoped-aa.ll
The file was addedllvm/test/CodeGen/AArch64/memcpy-scoped-aa.ll
Commit c9dd29925f0c27cb59700b9933c41360d21350d3 by michael.hliao
[SelectionDAG] Propagate scoped AA metadata when lowering mem intrinsics.

- When memory intrinsics, such as memcpy, the attached scoped AA
  metadata is not passed down to the backend. As a result, the backend
  cannot schedule relevant memory operations around them following that
  hint. In this patch, SelectionDAG is enhanced to propagate that
  metadata (scoped AA only) when they are lowered into loads and stores.

Differential Revision: https://reviews.llvm.org/D102215
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/AArch64/memcpy-scoped-aa.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/memcpy-scoped-aa.ll
The file was modifiedllvm/test/CodeGen/X86/memcpy-scoped-aa.ll
Commit 9c91614959f31d743470c1cb2f4828abd8fcb517 by nikita.ppv
[CVP] Guard against poison in common phi value transform (PR50399)

The common phi value transform replaces constants with values that
have the same value as the constant on a given edge. However, LVI
generally only provides information that is correct up to poison,
so this can end up replacing a well-defined value with poison.
D69442 addressed an instance of this problem by clearing poison
flags on the generating instruction, which was sufficient at the
time. rGa917fb89dc28 made LVI's edge value analysis slightly more
powerful, and clearing poison flags is no longer sufficient.

This patch changes the transform to instead explicitly guard against
a poison value instead. This should be satisfied for most cases due
to a prior branch on poison.

Fixes https://bugs.llvm.org/show_bug.cgi?id=50399.

Differential Revision: https://reviews.llvm.org/D102966
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Commit d1e5f046cc9ca52301b3f5ed457272f84aa0da14 by Vitaly Buka
Revert "[NFC][scudo] Let disableMemoryTagChecksTestOnly to fail"

This reverts commit 2c212db4ea42fbbc0e83647da4f62261f775388b.

It's not needed.
The file was modifiedcompiler-rt/lib/scudo/standalone/memtag.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Commit 8535834ef7891a5221e0bd1350a4f0636b6f3efb by jezng
[lld-macho][nfc] Misc code cleanup

* Move `static_asserts` into cpp instead of header file. I noticed they
  had been separated from the main class definition in the header, so I
  set about to clean that up, then figured it made more sense as part of
  the cpp file so as not to incur unnecessary compile-time overhead.

* Remove unnecessary `virtual`s

* Remove unnecessary comment / reword another comment
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/SyntheticSections.h
Commit 9cc0d893f7fc4d0ed5dfb053bc38cab832f2f88f by jezng
[lld-macho][nfc] clang-format everything
The file was modifiedlld/MachO/UnwindInfoSection.cpp
The file was modifiedlld/MachO/SyntheticSections.h
Commit 33706191d88d34382e07c48ff09fe639fae5881d by jezng
[lld-macho][nfc] Rename MergedOutputSection to ConcatOutputSection

The ELF format has the concept of merge sections (marked by SHF_MERGE),
which contain data that can be safely deduplicated. The Mach-O
equivalents are called literal sections (marked by S_CSTRING_LITERALS or
S_{4,8,16}BYTE_LITERALS). While the Mach-O format doesn't use the word
'merge', to avoid confusion, I've renamed our MergedOutputSection to
ConcatOutputSection. I believe it's a more descriptive name too.

This renaming sets the stage for {D102964}.

Reviewed By: #lld-macho, alexshap

Differential Revision: https://reviews.llvm.org/D102971
The file was modifiedlld/MachO/Symbols.cpp
The file was removedlld/MachO/MergedOutputSection.h
The file was modifiedlld/MachO/UnwindInfoSection.cpp
The file was modifiedlld/MachO/OutputSection.h
The file was modifiedlld/MachO/SyntheticSections.h
The file was modifiedlld/MachO/UnwindInfoSection.h
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/CMakeLists.txt
The file was removedlld/MachO/MergedOutputSection.cpp
The file was modifiedlld/MachO/OutputSegment.cpp
The file was addedlld/MachO/ConcatOutputSection.h
The file was addedlld/MachO/ConcatOutputSection.cpp
The file was modifiedlld/MachO/Writer.cpp
Commit fcab06bd85d142eb715b5b96997a24247002e753 by jezng
[lld-macho][nfc] Sort OutputSections based on explicit order of command-line inputs

This diff paves the way for {D102964} which adds a new kind of
InputSection.

We previously maintained section ordering implicitly: we created
InputSections as we parsed each file in command-line order, and passed
on this ordering when we created OutputSections and OutputSegments by
iterating over these InputSections. The implicitness of the ordering
made it difficult to refactor the code to e.g. handle a new type of
InputSection. As such, I've codified the ordering explicitly via
`inputOrder` fields. This also allows us to use `sort` instead of
`stable_sort`.

Benchmarking chromium_framework on my 3.2 GHz 16-Core Intel Xeon W:

      N           Min           Max        Median           Avg        Stddev
  x  20          4.23          4.35          4.27         4.274   0.030157481
  +  20          4.24          4.38          4.27        4.2815   0.033759989
  No difference proven at 95.0% confidence

Reviewed By: #lld-macho, alexshap

Differential Revision: https://reviews.llvm.org/D102972
The file was modifiedlld/MachO/OutputSection.h
The file was addedlld/test/MachO/section-order.s
The file was modifiedlld/MachO/OutputSegment.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/test/MachO/weak-binding.s
The file was modifiedlld/MachO/OutputSegment.h
The file was modifiedlld/test/MachO/load-command-sequence.s
Commit 7599e98ab7904dce34ea208009f00e87d9d965fb by jezng
[lld-macho][nfc] Remove unnecessary parameterization of section sort

As @alexshap pointed out [here](https://reviews.llvm.org/D102972#inline-975208),
it's a bit confusing to have the option to sort OutputSections with any
comparator when in practice we only use one.

Reviewed By: #lld-macho, alexshap, thakis

Differential Revision: https://reviews.llvm.org/D102974
The file was modifiedlld/MachO/OutputSegment.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/OutputSegment.cpp
Commit 9ba21911db304f0536c38a7180aad89c82ee6ad1 by llvmgnsyncbot
[gn build] Port 33706191d88d
The file was modifiedllvm/utils/gn/secondary/lld/MachO/BUILD.gn
Commit 6300c37a461bf245c58bf2a6a24b618282c0a92b by nikita.ppv
[SCEV] Cache operands used in BEInfo (NFC)

When memoized values for a SCEV expressions are dropped, we also
drop all BECounts that make use of the SCEV expression. This is done
by iterating over all the ExitNotTaken counts and (recursively)
checking whether they use the SCEV expression. If there are many
exits, this will take a lot of time.

This patch improves the situation by pre-computing a set of all
used operands, so that we can determine whether a certain BEInfo
needs to be invalidated using a simple set lookup. Will still need
to loop over all BEInfos though.

This makes for a mild improvement on non-degenerate cases:
https://llvm-compile-time-tracker.com/compare.php?from=b661a55a253f4a1cf5a0fbcb86e5ba7b9fb1387b&to=be1393f450e594c53f0ad7e62339a6bc831b16f6&stat=instructions

For the degenerate case from https://bugs.llvm.org/show_bug.cgi?id=50384,
for n=128 I'm seeing run time drop from 1.6s to 1.1s.

Differential Revision: https://reviews.llvm.org/D102796
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 5bc644aeca8fc6a734308d81781935de26ea4cde by wanyu9511
Revert "[AIX] Avoid structor alias; die before bad alias codegen"

Avoiding structor alias is no longer needed because AIX now has an alias implementation here: https://reviews.llvm.org/D83252.

This reverts commit b116ded57da3530e661f871f4191c59cd9e091cd.

Reviewed By: jasonliu

Differential Revision: https://reviews.llvm.org/D102724
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/aix-constructor-alias.c
Commit d2d4f16806650bde47d99803782c023bea95c9d0 by benny.kra
[Matrix] Use LLVM_DEBUG for a debug flag

dump() doesn't exist in release builds.

ld.lld: error: undefined symbol: llvm::Value::dump() const
>>> referenced by LowerMatrixIntrinsics.cpp
>>>               LowerMatrixIntrinsics.o:((anonymous namespace)::LowerMatrixIntrinsics::Visit())
The file was modifiedllvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
Commit dc2aa476760151d29142aa940029aba21a2f286d by riddleriver
[mlir] Add a copy constructor to FailureOr

The copy constructor was missing from FailureOr.

Note that I do not have commit access.

Differential Revision: https://reviews.llvm.org/D98955
The file was modifiedmlir/include/mlir/Support/LogicalResult.h
Commit 2367a7bdab36cf9c51b4d2b1d726f46ed5b1a2c6 by Lang Hames
[JITLink][MachO][arm64] Use a more descriptive test name.
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_relocations.s
Commit 249cd9dd6002836b6d4b89a940149d518e8aa48b by Lang Hames
[JITLink][MachO][arm64] Build GOT entries for defined symbols too.

During the generic x86-64 support refactor in ecf6466f01c52 the implementation
of MachO_arm64_GOTAndStubsBuilder::isGOTEdgeToFix was altered to only return
true for external symbols. This behavior is incorrect: GOT entries may be
required for defined symbols (e.g. in the large code model).

This patch fixes the bug and adds a test case for it (renaming an old test
case to avoid any ambiguity).
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_relocations.s
Commit f44f2e0afca994138fd740f8fd43b6d6b3917114 by Vitaly Buka
[NFC] Fix 'unused' warning
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 3975e3277f2b64307660a6ff3e94f1b3ccdbb38a by Stanislav.Mekhanoshin
[AMDGPU] Fix unused variable warning. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp
Commit 6c35991ca02413d94cc2c8f4a622851f261019f8 by bruno.cardoso
[TSAN][CMake] Add support to run lit on individual tests

Handy when testing specific files, already supported in other components.

Example:
cd build; ./bin/llvm-lit ../compiler-rt/test/tsan/ignore_free.cpp

Differential Revision: https://reviews.llvm.org/D103054
The file was modifiedcompiler-rt/test/tsan/CMakeLists.txt
Commit dce91f247d7513db25a87e3d32c857e6e3509b61 by aeubanks
[docs] Explain address spaces a bit more in opaque pointers doc

Reviewed By: theraven

Differential Revision: https://reviews.llvm.org/D102523
The file was modifiedllvm/docs/OpaquePointers.rst
Commit 3a678fe3e29fe48d9b4efc936edd2ac43c720bae by i
[sanitizer][test] s/A<10>/A<7>/ to fix "WARNING: Symbolizer buffer too small" which is somehow a hard error on s390x

https://reviews.llvm.org/D102046#2766553
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/Linux/symbolize_stack_fp.cpp
Commit 6a2869cf1e5b09fa18df09a622b06ce48b34ed81 by kparzysz
[Hexagon] Remove unused function from HexagonISelDAGToDAGHVX.cpp

It will be reintroduced shortly with an actual use.  This change is
simply to eliminate a compilation warning.
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
Commit a2a65a5bae3c503d40c219ef9ba460b1fb34d1bf by martin
[docs] [CMake] Change recommendations for how to use LLVM_DEFINITIONS

LLVM_DEFINITIONS is a string variable containing a list of arguments
to pass to the compiler. When CMake's add_definitions is passed a
string variable, this is interpreted as one argument. To make it
behave properly, the string variable needs to be split into a list.

Despite the fact that add_definitions isn't supposed to be used like
the LLVM docs recommended, it worked fine in practice in many cases.
If the first argument in LLVM_DEFINITIONS is of the form -DFOO=42
instead of plain -DFOO, the rest of the string is treated as value
to this define. I.e. if LLVM_DEFINITIONS consists of `-DFOO=42 -DBAR`,
CMake ended up passing `-DFOO="42 -DBAR"` to the compiler.

See https://gitlab.kitware.com/cmake/cmakissues/22162
for discussion on the matter.

Changing LLVM_DEFINITIONS to be a list variable would possibly be
more disruptive; instead keep the variable defined as before but
change the recommendation for how to use it. Then projects using it
can gradually be updated to follow the new recommendation.

Differential Revision: https://reviews.llvm.org/D103044
The file was modifiedllvm/docs/CMake.rst
Commit 3a6be27978aa3e83e9dc2ff2402b2569ce0686fd by martin
[libcxx] Make the visibility attributes consistent for __narrow_to_utf8/__widen_from_utf8

Use the same visiblity attributes as for all other template
specializations in the same file; declare the specialization itself
using _LIBCPP_TYPE_VIS, and don't use _LIBCPP_EXPORTED_FROM_ABI on
the destructor. Methods that are excluded from the ABI are marked
with _LIBCPP_INLINE_VISIBILITY.

This makes the vtable exported from DLL builds of libc++. Practically,
it doesn't make any difference for the CI configuration, but it
can make a difference in mingw setups.

Differential Revision: https://reviews.llvm.org/D102717
The file was modifiedlibcxx/include/__locale
Commit ec402f1d5da02dfbdc87d031ff99d7dbcada336f by martin
[libcxx] [test] Explain an XFAIL LIBCXX-WINDOWS-FIXME and convert into UNSUPPORTED

This particular test relies on internal details from the libc++
filesystem implementation header, and those details are structured
differently in the implementation for Windows.

Differential Revision: https://reviews.llvm.org/D102357
The file was modifiedlibcxx/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.pass.cpp
Commit a051bbb53f6de8c2db8adf934ef7a9f5951ed0b8 by smeenai
[libcxxabi] Use ASan interface header for declaration. NFC

This was changed from using the header to using a forward declaration in
c4600ccf891c, since older versions of the header didn't declare the
function. At this point, it's been declared for ~3.5 years, and it
should be pretty safe to assume that we can rely on the ASan interface
header to provide a declaration instead of needing to write our own.

Reviewed By: #libc_abi, ldionne

Differential Revision: https://reviews.llvm.org/D103003
The file was modifiedlibcxxabi/src/cxa_exception.cpp
Commit 2f23f9e641e3830948cd2357a8fa52798df8ffcb by clattner
[Canonicalize] Fully parameterize the pass based on config options. NFC.

This allows C++ clients of the Canonicalize pass to specify their own
Config option struct to control how Canonicalize works, increasing reusability.

This also allows controlling these settings for the default Canonicalize pass
using command line options.  This is useful for testing and for playing with
things on the command line.

Differential Revision: https://reviews.llvm.org/D103069
The file was modifiedmlir/include/mlir/Transforms/Passes.h
The file was modifiedmlir/include/mlir/Transforms/Passes.td
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
Commit bc56620b8b765b5720dbc1849511fb783e05b8cc by psteinfeld
[flang] Implement checks for defined input/output procedures

Defined input/output procedures are specified in 12.6.4.8.  There are different
versions for read versus write and formatted versus unformatted, but they all
share the same basic set of dummy arguments.

I added several checking functions to check-declarations.cpp along with a test.

In the process of implementing this, I noticed and fixed a typo in
.../lib/Evaluate/characteristics.cpp.

Differential Revision: https://reviews.llvm.org/D103045
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was addedflang/test/Semantics/io11.f90
The file was modifiedflang/lib/Evaluate/characteristics.cpp
Commit a004da0d77c4e0a8a17b4f84818d809b54b2079e by clattner
[Canonicalize] Switch the default setting to "top down".

This provides a sizable compile time improvement by seeding
the worklist in an order that leads to less iterations of the
worklist.

This patch only changes the behavior of the Canonicalize pass
itself, it does not affect other passes that use the
GreedyPatternRewrite driver

Differential Revision: https://reviews.llvm.org/D103053
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir
The file was modifiedmlir/test/Transforms/scf-loop-unroll.mlir
The file was modifiedmlir/include/mlir/Transforms/Passes.td
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/test/Conversion/MathToLLVM/convert-to-libm.mlir
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Affine/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedmlir/test/Dialect/Linalg/bufferize.mlir
Commit 68e45962531a25a0fab63eab163a6c9f84c81f1e by martin
[libcxx] Fix the function name in exceptions from create_directories

If the nested create_directory call fails, we'd still want to
re-report the errors with the create_directories function name,
which is what the caller called.

This fixes one aspect from MS STL's tests for std::filesystem.

Differential Revision: https://reviews.llvm.org/D102365
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
The file was modifiedlibcxx/src/filesystem/operations.cpp
Commit d42d9e10b606287f827dcc2d135ff8c932aa3d72 by arthur.j.odwyer
[libc++] [P0619] Hide not1 and not2 under _LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS.

This also provides some of the scaffolding needed by D102992 and D101729, and mops up after D101730 etc.

Differential Revision: https://reviews.llvm.org/D103055
The file was modifiedlibcxx/include/__memory/raw_storage_iterator.h
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/unary_negate.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/include/functional
The file was modifiedlibcxx/docs/UsingLibcxx.rst
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not1.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/binary_negate.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.base.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not2.depr_in_cxx17.verify.cpp
The file was modifiedlibcxx/docs/Cxx2aStatus.rst
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not2.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/unary_negate.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/deprecated.verify.cpp
The file was modifiedlibcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/binary_negate.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/negators/not1.pass.cpp
The file was modifiedlibcxx/include/__config
Commit 832c99f727723bab2baf5a477bda3d91fed56f5d by mascasa
Revert "[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration"

This reverts commit 2531fd70d19aa5d61feb533bbdeee7717a4129eb due to
performance regression on the PPC buildbot.
The file was modifiedllvm/test/Transforms/LoopDeletion/eval_first_iteration.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/noop-loops-with-subloops.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/zero-btc.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopDeletion.cpp
Commit b426b45d101740a21610205ec80610c6d0969966 by i
[Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member

Beside the `comdat any` deduplication feature, instrumentations use comdat to
establish dependencies among a group of sections, to prevent section based
linker garbage collection from discarding some members without discarding all.
LangRef acknowledges this usage with the following wording:

> All global objects that specify this key will only end up in the final object file if the linker chooses that key over some other key.

On ELF, for PGO instrumentation, a `__llvm_prf_cnts` section and its associated
`__llvm_prf_data` section are placed in the same GRP_COMDAT group.  A
`__llvm_prf_data` is usually not referenced and expects the liveness of its
associated `__llvm_prf_cnts` to retain it.

The `setComdat(nullptr)` code (added by D10679) in InternalizePass can break the
use case (a `__llvm_prf_data` may be dropped with its associated `__llvm_prf_cnts` retained).
The main goal of this patch is to fix the dependency relationship.

I think it makes sense for InternalizePass to internalize a comdat and thus
suppress the deduplication feature, e.g. a relocatable link of a regular LTO can
create an object file affected by InternalizePass.
If a non-internal comdat in a.o is prevailed by an internal comdat in b.o, the
a.o references to the comdat definitions will be non-resolvable (references
cannot bind to STB_LOCAL definitions in b.o).

On PE-COFF, for a non-external selection symbol, deduplication is naturally
suppressed with link.exe and lld-link. However, this is fuzzy on ELF and I tend
to believe the spec creator has not thought about this use case (see D102973).

GNU ld and gold are still using the "signature is name based" interpretation.
So even if D102973 for ld.lld is accepted, for portability, a better approach is
to rename the comdat. A comdat with one single member is the common case,
leaving the comdat can waste (sizeof(Elf64_Shdr)+4*2) bytes, so we optimize by
deleting the comdat; otherwise we rename the comdat.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D103043
The file was modifiedllvm/include/llvm/Transforms/IPO/Internalize.h
The file was modifiedllvm/test/Transforms/Internalize/comdat.ll
The file was addedllvm/test/Transforms/Internalize/comdat-empty-moduleid.ll
The file was modifiedllvm/lib/Transforms/IPO/Internalize.cpp
Commit 8cc437a8a16e6d2dd403a9a3a74594574e3371d4 by david.green
[ARM] Extra predicated tests for VMULH. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmulh.ll
Commit 66781efd0acf738b78ec74b04a8f2d7fc18278c7 by Louis Dionne
[libc++] Install GCC 11 on CI builders
The file was modifiedlibcxx/utils/ci/Dockerfile
Commit df005fa364ae3914231f98f80acc120fcf782c26 by jonathanchesterfield
[libomptarget][nfc] Move hostcall required test to rtl

[libomptarget][nfc] Move hostcall required test to rtl

Remove a global, fix minor race. First of N patches to bring up hostcall.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103058
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
Commit a6a57f03be40cf2c546805155624a206649092ec by clattner
[Toy] Update tests to pass with top-down canonicalize pass. NFC
The file was modifiedmlir/test/Examples/Toy/Ch6/affine-lowering.mlir
The file was modifiedmlir/test/Examples/Toy/Ch7/affine-lowering.mlir
The file was modifiedmlir/test/Examples/Toy/Ch5/affine-lowering.mlir
Commit aaa2982d7191eaf8638c91d0aa5b16f5523a1fc8 by clattner
[MLIR Core] Cache the empty StringAttr like we do for empty dictionaries. NFC.

MLIRContext holds a few special case values that occur frequently like empty
dictionary and NoneType, which allow us to avoid taking locks to get an instance
of them.  Give the empty StringAttr this treatment as well.  This cuts several
percent off compile time for CIRCT.

Differential Revision: https://reviews.llvm.org/D103117
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp
Commit e14696bfd740edb3f2fa7b9f36022f36000742ec by Vitaly Buka
[NFC][SCUDO] Fix unittest for -gtest_repeat=10

Reviewed By: cryptoad

Differential Revision: https://reviews.llvm.org/D103122
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/common_test.cpp
Commit e5d227e95ca1d0386b4aa8bc5e29b76d3eb4b8a0 by rob.suderman
[NFC][MLIR][TOSA] Replaced tosa linalg.indexed_generic lowerings with linalg.index

Indexed Generic should be going away in the future. Migrate to linalg.index.

Reviewed By: NatashaKnk, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D103110
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
Commit dd2be15ff91a9a93387afbe0789f4de3376c0c0f by alexandre.ganea
[gcov] Silence warning: comparison of integers of different signs

When building with Clang 11 on Windows, silence the following:

[432/5643] Building C object projects\compiler-rt\lib\profile\CMakeFiles\clang_rt.profile-x86_64.dir\GCDAProfiling.c.obj
F:\aganea\llvm-project\compiler-rt\lib\profile\GCDAProfiling.c(464,13): warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
    if (val != (gcov_version >= 90 ? GCOV_TAG_OBJECT_SUMMARY
        ~~~ ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
Commit 20c9a44ac0164a657329020c0b3deabab3625688 by alexandre.ganea
[benchmark] Silence 'suggest override' and 'missing override' warnings

When building with Clang 11 on Windows, silence the following:

F:\aganea\llvm-project\llvm\utils\benchmark\include\benchmark/benchmark.h(955,8): warning: 'Run' overrides a member function but is not marked 'override' [-Wsuggest-override]
  void Run(State& st);
       ^
F:\aganea\llvm-project\llvm\utils\benchmark\include\benchmark/benchmark.h(895,16): note: overridden virtual function is here
  virtual void Run(State& state) = 0;
               ^
1 warning generated.
The file was modifiedllvm/utils/benchmark/include/benchmark/benchmark.h
Commit 52ac1147713db35f6ff644fc8a40f08944ce3292 by kda
LLVM Detailed IR tests for introduction of flag -fsanitize-address-detect-stack-use-after-return-mode.

Rework all tests that interact with use after return to correctly handle the case where the mode has been explicitly set to Never or Always.

for issue: https://github.com/google/sanitizers/issues/1394

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102462
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/fake-stack.ll
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/stack-poisoning.ll
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/stack_dynamic_alloca.ll
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/localescape.ll
Commit e67259531d7385fece6873b1da57e7cf84f110b3 by i
[sanitizer] Let glibc aarch64 use O(1) GetTls

The generic approach can still be used by musl and FreeBSD. Note: on glibc
2.31, TLS_PRE_TCB_SIZE is 0x700, larger than ThreadDescriptorSize() by 16, but
this is benign: as long as the range includes pthread::{specific_1stblock,specific}
pthread_setspecific will not cause false positives.

Note: the state before afec953857ffd682cb4119e7950f3593efbaaa81 underestimated
the TLS size a lot (nearly ThreadDescriptorSize() = 1776).
That may explain why afec953857ffd682cb4119e7950f3593efbaaa81 actually made some
tests pass.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Commit ad90a6be219a547873beb80f977e45e23e9247ac by aeubanks
[OpaquePtr] Create new bitcode encoding for atomicrmw

Since the opaque pointer type won't contain the pointee type, we need to
separately encode the value type for an atomicrmw.

Emit this new code for atomicrmw.

Handle this new code and the old one in the bitcode reader.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103123
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was addedllvm/test/Bitcode/atomicrmw-upgrade.ll.bc
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/include/llvm/Bitcode/LLVMBitCodes.h
The file was addedllvm/test/Bitcode/atomicrmw-upgrade.ll
Commit d35fe04fa35a080cb024ecb56db67dc822c70740 by tejohnson
[LTT] Handle merged llvm.assume when dropping type tests

When the lower type test pass is invoked a second time with
DropTypeTests set to true, it expects that all remaining type tests feed
assume instructions, which are removed along with the type tests.

In some cases the llvm.assume might have been merged with another one,
i.e. from a builtin_assume instruction, in which case the type test
would actually feed a phi that in turn feeds the merged assume
instruction. In this case we can simply replace that operand of the phi
with "true" before removing the type test.

Differential Revision: https://reviews.llvm.org/D103073
The file was modifiedllvm/lib/Transforms/IPO/LowerTypeTests.cpp
The file was addedllvm/test/Transforms/LowerTypeTests/drop_type_test_phi.ll
Commit bbcb3433d4e8f5fa385b14e74d4314bd5409022d by Jonas Devlieghere
[lldb] Avoid format string in LLDB_SCOPED_TIMER

Pass LLVM_PRETTY_FUNCTION directly for the no-argument macro.
The file was modifiedlldb/include/lldb/Utility/Timer.h
Commit 564eb20e0deecd173a7b990dcfd0e57fb045c522 by Jonas Devlieghere
Revert "[lldb] Avoid format string in LLDB_SCOPED_TIMER"

Right after pushing, I remembered that this was added to silence a GCC
warning (https://reviews.llvm.org/D99120). This reverts my patch and
adds a comment.
The file was modifiedlldb/include/lldb/Utility/Timer.h
Commit 1202f559bdeebb62dbba29ee05ffafbfecd57d92 by aeubanks
[OpaquePtr] Make atomicrmw work with opaque pointers

FullTy is only necessary when we need to figure out what type an
instruction works with given a pointer's pointee type. However, we just
end up using the value operand's type, so FullTy isn't necessary.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102788
The file was modifiedllvm/test/Assembler/opaque-ptr.ll
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/test/Verifier/opaque-ptr.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was addedllvm/test/Assembler/atomicrmw.ll
Commit 36d0fdf9ac3b4d2f509e1c56b3d45ac02cdc977e by cjdb
[libcxx][iterator] adds `std::ranges::advance`

Implements part of P0896 'The One Ranges Proposal'.
Implements [range.iter.op.advance].

Differential Revision: https://reviews.llvm.org/D101922
The file was addedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/constraints.verify.cpp
The file was addedlibcxx/include/__function_like.h
The file was modifiedlibcxx/test/support/test_iterators.h
The file was addedlibcxx/test/support/test_standard_function.h
The file was addedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/advance.pass.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/include/__iterator/advance.h
The file was modifiedlibcxx/include/iterator
The file was addedlibcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp
Commit dde123993f50df5b95e311e6ff67f645cd273809 by llvmgnsyncbot
[gn build] Port 36d0fdf9ac3b
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 9ef66ed43758a575e1f53a09f07ecb7e3025aafa by bjoern
[clang-format][NFC] correctly sort StatementAttributeLike-macros' IO.map
The file was modifiedclang/lib/Format/Format.cpp

Summary

  1. [zorg] Remove flang-aarch64-ubuntu-out-of-tree-new-driver (details)
Commit de74f83353c32d08126bddb778b9d89cc2708e46 by diana.picus
[zorg] Remove flang-aarch64-ubuntu-out-of-tree-new-driver

The new driver is on by default now, so this builder does the same thing
as flang-aarch64-ubuntu-out-of-tree.

Differential Revision: https://reviews.llvm.org/D102319
The file was modifiedbuildbot/osuosl/master/config/workers.py
The file was modifiedbuildbot/osuosl/master/config/builders.py