SuccessChanges

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

Summary

  1. [llvm] Set the default for -bbsections-cold-text-prefix to .text.split. (details)
  2. [clang] Add -fc++-abi= flag for specifying which C++ ABI to use (details)
  3. [mlir] Linalg refactor for using "bufferize" terminology. (details)
  4. [mlir] Rename ShapeTypeConversion to ShapeBufferize (details)
  5. [mlir] Refactor code out of BufferPlacement.cpp (details)
  6. [mlir][bufferize] Rename BufferAssignment* to Bufferize* (details)
  7. [mlir] Fix some style comments from D89268 (details)
  8. [llvm] Update default cutoff threshold for machine function splitter. (details)
  9. clang/Basic: Replace ContentCache::getBuffer with Optional semantics (details)
  10. Make header self-contained. NFC. (details)
  11. [mlir][Linalg] Rethink fusion of linalg ops with reshape ops. (details)
  12. Register TargetCXXABI.def as a textual header (details)
  13. [Format/ObjC] Add NS_SWIFT_NAME() and CF_SWIFT_NAME() to WhitespaceSensitiveMacros (details)
  14. [clang][NFC] Change diagnostic to start with lowercase letter (details)
  15. [ADT] Use alignas + sizeof for inline storage, NFC (details)
  16. [AArch64][GlobalISel] Don't use explicit zero registers for compare results. (details)
  17. [VE] Change to expand SHL_PARTS/SRA_PARTS/SRL_PARTS (details)
  18. Revert "[ASTImporter] Fix crash caused by unset AttributeSpellingListIndex" (details)
  19. [VE] Add vector load/store instructions (details)
  20. PR47805: Use a single object for a function parameter in the caller and (details)
  21. [CMake] Avoid accidental C++ standard library dependency in sanitizers (details)
  22. Revert "[CMake] Avoid accidental C++ standard library dependency in sanitizers" (details)
  23. [AMDGPU] Correct typos in SIMemoryLegalizer.cpp comments (details)
  24. [LLD] Set alignment as part of Characteristics in TLS table. (details)
  25. Fix style warnings. (details)
  26. Update tests. (details)
  27. Mask out existing alignment bits. (details)
  28. Nit: Use early return to reduce indentation. (details)
  29. [LLD] Set alignment as part of Characteristics in TLS table. (details)
  30. clang/Basic: Stop using SourceManager::getBuffer, NFC (details)
  31. [dsymutil] Fix handling of aliases to private external symbols (details)
  32. clang/Frontend: Mostly stop using SourceManager::getBuffer, NFC (details)
  33. clang/CodeGen: Stop using SourceManager::getBuffer, NFC (details)
  34. [AArch64] Combine UADDVs to generate vector add (details)
  35. clang/StaticAnalyzer: Stop using SourceManager::getBuffer (details)
  36. clang-{tools,unittests}: Stop using SourceManager::getBuffer, NFC (details)
  37. Perform lvalue conversions on the left of a pseudo-destructor call 'p->~T()'. (details)
  38. llvm-dwarfdump: Exit non-zero on an error path (details)
  39. [mlir][SPIRV] Adding an attribute to capture configuration for cooperative matrix operations. (details)
  40. llvm-symbolizer: Ensure non-zero exit when an error is printed (details)
  41. [AMDGPU] Pre-commit test for D89187 (details)
  42. Fix typeo in attach failed error message. (details)
  43. llvm-symbolizer: Exit non-zero when DWARF parsing errors have been rendered (details)
  44. Fix llvm-symbolizer assembly-based test to require x86 and specify x86 when assembling (details)
Commit 77638a5343d5b4c1a87ec2b7fb3671ccb108a059 by snehasishk
[llvm] Set the default for -bbsections-cold-text-prefix to .text.split.

After using this for a while, we find that it is generally useful to
have it set to .text.split. by default, removing the need for an
additional -mllvm option.

Differential Revision: https://reviews.llvm.org/D88997
The file was modifiedllvm/test/CodeGen/X86/machine-function-splitter.ll
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-cold.ll
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-clusters.ll
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp
Commit 683b308c07bf827255fe1403056413f790e03729 by leonardchan
[clang] Add -fc++-abi= flag for specifying which C++ ABI to use

This implements the flag proposed in RFC http://lists.llvm.org/pipermail/cfe-dev/2020-August/066437.html.

The goal is to add a way to override the default target C++ ABI through
a compiler flag. This makes it easier to test and transition between different
C++ ABIs through compile flags rather than build flags.

In this patch:
- Store `-fc++-abi=` in a LangOpt. This isn't stored in a
  CodeGenOpt because there are instances outside of codegen where Clang
  needs to know what the ABI is (particularly through
  ASTContext::createCXXABI), and we should be able to override the
  target default if the flag is provided at that point.
- Expose the existing ABIs in TargetCXXABI as values that can be passed
  through this flag.
  - Create a .def file for these ABIs to make it easier to check flag
    values.
  - Add an error for diagnosing bad ABI flag values.

Differential Revision: https://reviews.llvm.org/D85802
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/Frontend/invalid-cxx-abi.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was addedclang/include/clang/Basic/TargetCXXABI.def
The file was modifiedclang/include/clang/Basic/TargetCXXABI.h
Commit 9ca97cde8508b92856d22e2164c8b6fb6756696e by silvasean
[mlir] Linalg refactor for using "bufferize" terminology.

Part of the refactor discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89261
The file was removedmlir/lib/Dialect/Linalg/Transforms/TensorsToBuffers.cpp
The file was addedmlir/test/Dialect/Linalg/bufferize.mlir
The file was removedmlir/test/Dialect/Linalg/tensors-to-buffers.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-tensor-matmul.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-tensor-e2e.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was addedmlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
Commit 6b30fb7653948fec80ca0cea19d8691495c96c28 by silvasean
[mlir] Rename ShapeTypeConversion to ShapeBufferize

Once we have tensor_to_memref ops suitable for type materializations,
this pass can be split into a generic type conversion pattern.

Part of the refactor discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89258
The file was removedmlir/lib/Dialect/Shape/Transforms/ShapeTypeConversion.cpp
The file was modifiedmlir/lib/Dialect/Shape/Transforms/CMakeLists.txt
The file was addedmlir/test/Dialect/Shape/bufferize.mlir
The file was modifiedmlir/include/mlir/Dialect/Shape/Transforms/Passes.td
The file was removedmlir/test/Dialect/Shape/shape-type-conversion.mlir
The file was modifiedmlir/include/mlir/Dialect/Shape/Transforms/Passes.h
The file was addedmlir/lib/Dialect/Shape/Transforms/Bufferize.cpp
Commit 1cca0f323efab386300f19902faa6337dccae1c1 by silvasean
[mlir] Refactor code out of BufferPlacement.cpp

Now BufferPlacement.cpp doesn't depend on Bufferize.h.

Part of the refactor discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89268
The file was addedmlir/lib/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Transforms/BufferPlacement.cpp
The file was modifiedmlir/include/mlir/Transforms/Bufferize.h
The file was modifiedmlir/lib/Transforms/CMakeLists.txt
Commit 9a14cb53cb4cd92b2c261a040a8750973b991b9f by silvasean
[mlir][bufferize] Rename BufferAssignment* to Bufferize*

Part of the refactor discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89271
The file was modifiedmlir/test/Transforms/buffer-placement-preparation.mlir
The file was modifiedmlir/include/mlir/Dialect/Shape/Transforms/Passes.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
The file was modifiedmlir/test/lib/Transforms/TestBufferPlacement.cpp
The file was modifiedmlir/include/mlir/Transforms/Bufferize.h
The file was modifiedmlir/lib/Dialect/Shape/Transforms/Bufferize.cpp
Commit dd378739d731c81ded5209d70e2313c24811434d by silvasean
[mlir] Fix some style comments from D89268

That change was a pure move, so split out the stylistic changes into
this patch.

Differential Revision: https://reviews.llvm.org/D89272
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
Commit 24bf6ff4e08f88df0b6c01ef87aa384276636901 by snehasishk
[llvm] Update default cutoff threshold for machine function splitter.

Based on internal testing at Google we found that setting the profile
summary cutoff threshold to 999950 yields the best results in terms of
itlb and icache metrics (as observed on Intel CPUs).

*default* = Split out code if no profile count available for block
*size-%*  = The fraction of bytes split out of .text and .text.hot
*itlb*    = Misses per kilo instructions (MPKI) for itlb
*icache*  = Misses per kilo instructions (MPKI) for L1 icache

Search1

| cutoff  | size-%  | itlb      | icache  |
|---------|---------|-----------|---------|
| default | 42.5861 | 0.0822151 | 2.46363 |
|  999999 | 44.9350 | 0.0767194 | 2.44416 |
|  999950 | 50.0660 |  0.075744 |  2.4091 |
|  999500 | 56.9158 |  0.082564 |  2.4188 |
|  995000 | 63.8625 | 0.0814927 | 2.42832 |
|  990000 | 71.7314 |  0.106906 | 2.57785 |

Search2

| cutoff  | size-% | itlb     | icache  |
|---------|--------|----------|---------|
| default | 2.8845 | 0.626712 | 4.73245 |
|  999999 | 3.3291 | 0.602309 | 4.70045 |
|  999950 | 3.8577 | 0.587842 | 4.71632 |
|  999500 | 4.4170 |  0.63577 | 4.68351 |
|  995000 | 5.1020 | 0.657969 | 4.82272 |
|  990000 | 5.7153 | 0.719122 | 5.39496 |

Differential Revision: https://reviews.llvm.org/D89085
The file was modifiedllvm/test/CodeGen/X86/machine-function-splitter.ll
The file was modifiedllvm/lib/CodeGen/MachineFunctionSplitter.cpp
Commit d758f79e5d381bd4f5122193a9538d89c907c812 by Duncan P. N. Exon Smith
clang/Basic: Replace ContentCache::getBuffer with Optional semantics

Remove `ContentCache::getBuffer`, which always returned a
dereferenceable `MemoryBuffer*` and had a `bool*Invalid` out parameter,
and replace it with:

- `ContentCache::getBufferOrNone`, which returns
  `Optional<MemoryBufferRef>`. This is the new API that consumers should
  use. Later it could be renamed to `getBuffer`, but intentionally using
  a different name to root out any unexpected callers.
- `ContentCache::getBufferPointer`, which returns `MemoryBuffer*` with
  "optional" semantics. This is `private` to avoid growing callers and
  `SourceManager` has temporarily been made a `friend` to access it.
  Later paches will update the transitive callers to not need a raw
  pointer, and eventually this will be deleted.

No functionality change intended here.

Differential Revision: https://reviews.llvm.org/D89348
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
Commit 633f9fcb820bf01d59cdcdd8038889eec61cf2f2 by benny.kra
Make header self-contained. NFC.
The file was modifiedclang/include/clang/Basic/TargetCXXABI.h
Commit de2568aab819f4ae97a9d92ea68ef1a8ab56ae8c by ravishankarm
[mlir][Linalg] Rethink fusion of linalg ops with reshape ops.

The current fusion on tensors fuses reshape ops with generic ops by
linearizing the indexing maps of the fused tensor in the generic
op. This has some limitations
- It only works for static shapes
- The resulting indexing map has a linearization that would be
  potentially prevent fusion later on (for ex. tile + fuse).

Instead, try to fuse the reshape consumer (producer) with generic op
producer (consumer) by expanding the dimensionality of the generic op
when the reshape is expanding (folding).  This approach conflicts with
the linearization approach. The expansion method is used instead of
the linearization method.

Further refactoring that changes the fusion on tensors to be a
collection of patterns.

Differential Revision: https://reviews.llvm.org/D89002
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was addedmlir/test/Dialect/Linalg/reshape_fusion.mlir
The file was addedmlir/test/Dialect/Linalg/reshape_linearization_fusion.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
Commit 0ff9116b36781d6fa61c25841edd53dc8f366bec by Adrian Prantl
Register TargetCXXABI.def as a textual header
The file was modifiedclang/include/clang/module.modulemap
Commit e7b4feea8e1bf520b34ad8c116abab6677344b74 by benhamilton
[Format/ObjC] Add NS_SWIFT_NAME() and CF_SWIFT_NAME() to WhitespaceSensitiveMacros

The argument passed to the preprocessor macros `NS_SWIFT_NAME(x)` and
`CF_SWIFT_NAME(x)` is stringified before passing to
`__attribute__((swift_name("x")))`.

ClangFormat didn't know about this stringification, so its custom parser
tried to parse the argument(s) passed to the macro as if they were
normal function arguments.

That means ClangFormat currently incorrectly inserts whitespace
between `NS_SWIFT_NAME` arguments with colons and dots, so:

```
extern UIWindow *MainWindow(void) NS_SWIFT_NAME(getter:MyHelper.mainWindow());
```

becomes:

```
extern UIWindow *MainWindow(void) NS_SWIFT_NAME(getter : MyHelper.mainWindow());
```

which clang treats as a parser error:

```
error: 'swift_name' attribute has invalid identifier for context name [-Werror,-Wswift-name-attribute]
```

Thankfully, D82620 recently added the ability to treat specific macros
as "whitespace sensitive", meaning their arguments are implicitly
treated as strings (so whitespace is not added anywhere inside).

This diff adds `NS_SWIFT_NAME` and `CF_SWIFT_NAME` to
`WhitespaceSensitiveMacros` so their arguments are implicitly treated
as whitespace-sensitive.

Test Plan:
  New tests added. Ran tests with:
  % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D89425
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/unittests/Format/FormatTestObjC.cpp
Commit 8487bfd4e9ae186f9f588ef989d27a96cc2438c9 by leonardchan
[clang][NFC] Change diagnostic to start with lowercase letter
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/test/Frontend/invalid-cxx-abi.cpp
Commit 8b6d1c0467b2dfa14cb2d2dec7637bf95c78364b by rnk
[ADT] Use alignas + sizeof for inline storage, NFC

AlignedCharArrayUnion is really only needed to handle the "union" case
when we need memory of suitable size and alignment for multiple types.
SmallVector only needs storage for one type, so use that directly.
The file was modifiedllvm/include/llvm/ADT/SmallVector.h
The file was modifiedllvm/include/llvm/ADT/iterator_range.h
The file was modifiedclang/include/clang/AST/APValue.h
Commit 78ccb0359d8da3269636d85933dd8afe50a2211f by Amara Emerson
[AArch64][GlobalISel] Don't use explicit zero registers for compare results.

These cause problems for later optimizations, just using an unused vreg like
SelectionDAG generates better code in the end, and obviates the need for some
GISel specific flag optimizations.

Differential Revision: https://reviews.llvm.org/D89419
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-cbz.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-fp-select.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/opt-and-tbnz-tbz.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-cmp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/tbnz-slt.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-arith-immed-compare.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/tbz-sgt.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/opt-fold-compare.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/fold-select.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/opt-shifted-reg-compare.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-select.mir
Commit 8e7b108e80ff5988c0d5e1db581589e7b37f1bd8 by marukawa
[VE] Change to expand SHL_PARTS/SRA_PARTS/SRL_PARTS

VE doesn't have SHL_PARTS/SRA_PARTS/SRL_PARTS instructions, so need
to expand them.  Add regression tests too.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D89396
The file was addedllvm/test/CodeGen/VE/shl.ll
The file was addedllvm/test/CodeGen/VE/shr.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
Commit 4cb4db11ee1323c5d4bf66d21deb046970f4e516 by davelee.com
Revert "[ASTImporter] Fix crash caused by unset AttributeSpellingListIndex"

This broke the GreenDragon build, due to the following error while running
TestImportBuiltinFileID:

```
Ignored/unknown shouldn't get here
UNREACHABLE executed at tools/clang/include/clang/Sema/AttrSpellingListIndex.inc:13!
```

See http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/24213/

This reverts commit 73c6beb2f7053fe8b5150072c2b5cd930de38a22.
This reverts https://reviews.llvm.org/D89318
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was removedclang/test/ASTMerge/attr/testRestrictAttr.cpp
The file was removedclang/test/ASTMerge/attr/Inputs/RestrictAttr.cpp
Commit 94c18d91d24355ba7274c4f40f3e8754a5f72c41 by marukawa
[VE] Add vector load/store instructions

Add vector registers and vector load/store instructions.  Add
regression tests for vector load/store instructions too.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D89183
The file was modifiedllvm/lib/Target/VE/Disassembler/VEDisassembler.cpp
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.td
The file was addedllvm/lib/Target/VE/VEInstrVec.td
The file was modifiedllvm/lib/Target/VE/VERegisterInfo.td
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.h
The file was addedllvm/test/MC/VE/VLD.s
The file was modifiedllvm/lib/Target/VE/VEInstrFormats.td
The file was addedllvm/test/MC/VE/VST.s
Commit f7f2e4261a98b2da519d58e7f6794b013cda7a4b by richard
PR47805: Use a single object for a function parameter in the caller and
callee in constant evaluation.

We previously made a deep copy of function parameters of class type when
passing them, resulting in the destructor for the parameter applying to
the original argument value, ignoring any modifications made in the
function body. This also meant that the 'this' pointer of the function
parameter could be observed changing between the caller and the callee.

This change completely reimplements how we model function parameters
during constant evaluation. We now model them roughly as if they were
variables living in the caller, albeit with an artificially reduced
scope that covers only the duration of the function call, instead of
modeling them as temporaries in the caller that we partially "reparent"
into the callee at the point of the call. This brings some minor
diagnostic improvements, as well as significantly reduced stack usage
during constant evaluation.
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
The file was modifiedclang/test/SemaCXX/c99-variable-length-array.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
The file was modifiedclang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp
The file was modifiedclang/test/Sema/c89.c
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p6.cpp
The file was modifiedclang/test/Sema/builtin-expect-with-probability-avr.cpp
The file was modifiedclang/test/CXX/except/except.spec/p1.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
The file was modifiedclang/test/SemaCXX/cxx2a-consteval.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_simdlen_messages.cpp
The file was modifiedclang/test/SemaCXX/vla-construct.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx11.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/SemaCUDA/constexpr-variables.cu
The file was modifiedclang/test/Sema/builtin-expect-with-probability.cpp
The file was modifiedclang/test/OpenMP/critical_messages.cpp
The file was modifiedclang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
The file was modifiedclang/test/CXX/expr/expr.const/p2-0x.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_safelen_messages.cpp
The file was modifiedclang/test/SemaCXX/integer-overflow.cpp
The file was modifiedclang/test/SemaCXX/warn-vla.cpp
Commit 287c318690f19fcbe337211278798d97ccf7884e by phosek
[CMake] Avoid accidental C++ standard library dependency in sanitizers

While sanitizers don't use C++ standard library, we could still end
up accidentally including or linking it just by the virtue of using
the C++ compiler. Pass -nostdinc++ and -nostdlib++ to avoid these
accidental dependencies.

Differential Revision: https://reviews.llvm.org/D88922
The file was modifiedcompiler-rt/CMakeLists.txt
The file was modifiedcompiler-rt/lib/asan/CMakeLists.txt
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTUtils.cmake
The file was modifiedcompiler-rt/lib/profile/CMakeLists.txt
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was modifiedcompiler-rt/lib/xray/CMakeLists.txt
The file was modifiedcompiler-rt/lib/hwasan/CMakeLists.txt
Commit 220de1f32add09848009ae2286a1e6fd271abe9e by phosek
Revert "[CMake] Avoid accidental C++ standard library dependency in sanitizers"

This reverts commit 287c318690f19fcbe337211278798d97ccf7884e which broke
sanitizer tests that use C++ standard library.
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTUtils.cmake
The file was modifiedcompiler-rt/lib/hwasan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/profile/CMakeLists.txt
The file was modifiedcompiler-rt/lib/asan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt
The file was modifiedcompiler-rt/lib/xray/CMakeLists.txt
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was modifiedcompiler-rt/CMakeLists.txt
Commit b3a38bc2dcab478e9f1a7e96029393a19cd9357d by Tony.Tye
[AMDGPU] Correct typos in SIMemoryLegalizer.cpp comments
The file was modifiedllvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Commit 8b70d527d7ec1c8b9e921177119a0d906ffad4f0 by me
[LLD] Set alignment as part of Characteristics in TLS table.

Differential Revision: https://reviews.llvm.org/D88637
The file was modifiedlld/COFF/Writer.cpp
The file was modifiedllvm/include/llvm/Object/COFF.h
Commit 0778cad9f325df4d7b32b22f3dba201a16a0b8fe by me
Fix style warnings.
The file was modifiedllvm/include/llvm/Object/COFF.h
Commit f80950a8bb985c082b26534b0e157447bf803935 by me
Update tests.
The file was modifiedlld/test/COFF/tls-alignment-64.ll
The file was modifiedlld/test/COFF/tls-alignment-32.ll
Commit 51fbc1bef657bb0f5808986555ec3517a84768c4 by me
Mask out existing alignment bits.
The file was modifiedllvm/include/llvm/Object/COFF.h
Commit 7fe13af676678815989a6d0ece684687953245e7 by me
Nit: Use early return to reduce indentation.
The file was modifiedlld/COFF/Writer.cpp
Commit 32a4ad3b6ce6028a371b028cf06fa5feff9534bf by me
[LLD] Set alignment as part of Characteristics in TLS table.

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

LLD wasn't previously specifying any specific alignment in the TLS table's Characteristics field so the loader would just assume the default value (16 bytes). This works most of the time except if you have thread locals that want specific higher alignments (e.g. 32 as in the bug) *even* if they specify an alignment on the thread local. This change updates LLD to take the max alignment from tls section.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D88637
The file was modifiedlld/COFF/Writer.cpp
Commit 54c1bcab90102481fe43b73f8547d47446ba2163 by Duncan P. N. Exon Smith
clang/Basic: Stop using SourceManager::getBuffer, NFC

Update clang/lib/Basic to stop relying on a `MemoryBuffer*`, using the
`MemoryBufferRef` from `getBufferOrNone` or `getBufferOrFake` instead of
`getBuffer`.

Differential Revision: https://reviews.llvm.org/D89394
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/lib/Basic/Diagnostic.cpp
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/lib/Basic/SourceLocation.cpp
Commit f9fb9da36c34d2745b74dc30e6c26f7d3f48466c by Jonas Devlieghere
[dsymutil] Fix handling of aliases to private external symbols

dsymutil was incorrectly ignoring aliases to private extern symbols in
the MachODebugMapParser. This resulted in spurious warnings about not
being able to find symbols.

rdar://49652389

Differential revision: https://reviews.llvm.org/D89444
The file was addedllvm/test/tools/dsymutil/Inputs/private/tmp/private_extern/private_extern.o
The file was addedllvm/test/tools/dsymutil/Inputs/private/tmp/private_extern/main.o
The file was addedllvm/test/tools/dsymutil/Inputs/private/tmp/private_extern/private_extern.out
The file was modifiedllvm/tools/dsymutil/MachODebugMapParser.cpp
The file was addedllvm/test/tools/dsymutil/ARM/private-extern-alias.test
Commit 63af2422798188d70a411f76b0f06ab63a783a0d by Duncan P. N. Exon Smith
clang/Frontend: Mostly stop using SourceManager::getBuffer, NFC

Update clang/lib/Frontend to use a `MemoryBufferRef` from
`getBufferOrFake` instead of `MemoryBuffer*` from `getBuffer`, with the
exception of `FrontendInputFile`, which I'm leaving for later.

Differential Revision: https://reviews.llvm.org/D89409
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/lib/Frontend/FrontendActions.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/lib/Frontend/Rewrite/HTMLPrint.cpp
The file was modifiedclang/lib/Frontend/FrontendAction.cpp
Commit dde4e0318c4cd2054ed241bf248fdddb8d1973e3 by Duncan P. N. Exon Smith
clang/CodeGen: Stop using SourceManager::getBuffer, NFC

Update `clang/lib/CodeGen` to use a `MemoryBufferRef` from
`getBufferOrNone` instead of `MemoryBuffer*` from `getBuffer`. No
functionality change here.

Differential Revision: https://reviews.llvm.org/D89411
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
Commit 159b2d8e62b833c472be13f15d19e54cc9c69e70 by vinay
[AArch64] Combine UADDVs to generate vector add

ADD(UADDV a, UADDV b) --> UADDV(ADD a, b)

This partially solves the bug: https://bugs.llvm.org/show_bug.cgi?id=46888
Meta ticket: https://bugs.llvm.org/show_bug.cgi?id=46929

Differential Revision: https://reviews.llvm.org/D88731
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-addv.ll
Commit af4fb416bd355960ce93f271a0591f24f58d25ec by Duncan P. N. Exon Smith
clang/StaticAnalyzer: Stop using SourceManager::getBuffer

Update clang/lib/StaticAnalyzer to stop relying on a `MemoryBuffer*`,
using the `MemoryBufferRef` from `getBufferOrNone` or the
`Optional<MemoryBufferRef>` from `getBufferOrFake`, depending on whether
there's logic for checking validity of the buffer. The change to
clang/lib/StaticAnalyzer/Core/IssueHash.cpp is potentially a
functionality change, since the logic was wrong (it checked for
`nullptr`, which was never returned by the old API), but if that was
reachable the new behaviour should be better.

Differential Revision: https://reviews.llvm.org/D89414
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/IssueHash.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit 006519816689acef5fd971955e21b7ab17ae65d9 by Duncan P. N. Exon Smith
clang-{tools,unittests}: Stop using SourceManager::getBuffer, NFC

Update clang-tools-extra, clang/tools, clang/unittests to migrate from
`SourceManager::getBuffer`, which returns an always dereferenceable
`MemoryBuffer*`, to `getBufferOrNone` or `getBufferOrFake`, both of
which return a `MemoryBufferRef`, depending on whether the call site was
checking for validity of the buffer. No functionality change intended.

Differential Revision: https://reviews.llvm.org/D89416
The file was modifiedclang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
The file was modifiedclang-tools-extra/modularize/PreprocessorTracker.cpp
The file was modifiedclang-tools-extra/clangd/SourceCode.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
The file was modifiedclang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
The file was modifiedclang/tools/clang-diff/ClangDiff.cpp
The file was modifiedclang-tools-extra/clangd/ParsedAST.cpp
The file was modifiedclang/tools/clang-import-test/clang-import-test.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit 9dbb0886ea799061baf79d4dce3203524a8468cc by richard
Perform lvalue conversions on the left of a pseudo-destructor call 'p->~T()'.

Previously we failed to convert 'p' from array/function to pointer type,
and to represent the load of 'p' in the AST. The latter causes problems
for constant evaluation.
The file was modifiedclang/test/SemaCXX/pseudo-destructors.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
Commit 5b346fd8c9949109802a34a8e702d31b6b3e1b70 by dblaikie
llvm-dwarfdump: Exit non-zero on an error path
The file was modifiedllvm/test/tools/llvm-dwarfdump/cmdline.test
The file was modifiedllvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
Commit 6d9a72ec80bbf4cfe10c81c944542ca195fc8d02 by ravishankarm
[mlir][SPIRV] Adding an attribute to capture configuration for cooperative matrix operations.

Each hardware that supports SPV_C_CooperativeMatrixNV has a list of
configurations that are supported natively. Add an attribute to
specify the configurations supported to the `spv.target_env`.

Reviewed By: antiagainst, ThomasRaoux

Differential Revision: https://reviews.llvm.org/D89364
The file was modifiedmlir/include/mlir/Dialect/SPIRV/TargetAndABI.td
The file was modifiedmlir/lib/Dialect/SPIRV/TargetAndABI.cpp
The file was modifiedmlir/test/Dialect/SPIRV/target-and-abi.mlir
Commit 338dd138ea4a70b52ab48e0c8aa38ec152b3569a by dblaikie
llvm-symbolizer: Ensure non-zero exit when an error is printed

(this doesn't cover all cases - libDebugInfoDWARF has a default error
handler that prints errors without any exit code handling - I'll be
following up with a patch for that after this)
The file was modifiedllvm/test/tools/llvm-symbolizer/sym.test
The file was modifiedllvm/test/DebugInfo/symbolize-missing-file.test
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/test/DebugInfo/symbolize-macho-universal-unknown-arch.test
The file was modifiedllvm/test/tools/llvm-symbolizer/input-base.test
Commit 75357ebc5017ac2f8e2be3fd098b23641a15a487 by carl.ritson
[AMDGPU] Pre-commit test for D89187
The file was addedllvm/test/CodeGen/AMDGPU/sgpr-phys-copy.mir
Commit b19856881c1624df8b667d672193be52dfa23846 by Jason Molenda
Fix typeo in attach failed error message.
<rdar://problem/70296751>
The file was modifiedlldb/tools/debugserver/source/RNBRemote.cpp
Commit a7b209a6d40d77b43a38664b1fe64513587f24c6 by dblaikie
llvm-symbolizer: Exit non-zero when DWARF parsing errors have been rendered
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
The file was addedllvm/test/tools/llvm-symbolizer/invalid-dwarf.s
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
Commit 1de0199748ef2a20cd146c100ea1b8e6726c4767 by dblaikie
Fix llvm-symbolizer assembly-based test to require x86 and specify x86 when assembling
The file was modifiedllvm/test/tools/llvm-symbolizer/invalid-dwarf.s