FailedChanges

Summary

  1. [SLP] respect target register width for GEP vectorization (PR43578) We failed to account for the target register width (max vector factor) when vectorizing starting from GEPs. This causes vectorization to proceed to obviously illegal widths as in: https://bugs.llvm.org/show_bug.cgi?id=43578 For x86, this also means that SLP can produce rogue AVX or AVX512 code even when the user specifies a narrower vector width. The AArch64 test in ext-trunc.ll appears to be better using the narrower width. I'm not exactly sure what getelementptr.ll is trying to do, but it's testing with "-slp-threshold=-18", so I'm not worried about those diffs. The x86 test is an over-reduction from SPEC h264; this patch appears to restore the perf loss caused by SLP when using -march=haswell. Differential Revision: https://reviews.llvm.org/D68667
  2. [AArch64] Ensure no tagged memory is left in the unallocated portion of the stack This patch makes sure that if we tag some memory, we untag that memory before the function returns/throws via any exit, reachable from the tag operation. For that we place the untag operation either at: a) the lifetime end call for the alloca, if that call post-dominates the lifetime start call (where the tag operation is placed), or it (the lifetime end call) dominates all reachable exits, otherwise b) at the reachable exits Differential Revision: https://reviews.llvm.org/D68469
  3. [NFC] Remove files got accidentally upload in llvm-svn 374179
  4. [AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength. Summary: According the the XCOFF document, If Then XTY_SD x_scnlen contains the csect length. XTY_LD x_scnlen contains the symbol table index of the containing csect. XTY_CM x_scnlen contains the csect length. XTY_ER x_scnlen contains 0. Change the SectionLen member name to SectionOrLength is more reasonable. Authored By: DiggerLin Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D68650
  5. Re-land "[dsymutil] Fix handling of common symbols in multiple object files." The original patch got reverted because it hit a long-standing legacy issue on Windows that prevents files from being named `com`. Thanks Kristina & Jeremy for pointing this out.
  6. [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent. Summary: The rule for the moveAllAfterMergeBlocks API si for all instructions from `From` to have been moved to `To`, while keeping the CFG edges (and block terminators) unchanged. Update all the callsites for moveAllAfterMergeBlocks to follow this. Pending follow-up: since the same behavior is needed everytime, merge all callsites into one. The common denominator may be the call to `MergeBlockIntoPredecessor`. Resolves PR43569. Reviewers: george.burgess.iv Subscribers: Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68659
  7. [NFC] Reverting changes from test commit. llvm commit access test succeeded.
  8. [NFC] Test commit. Testing llvm commit access only.
  9. [scudo][standalone] Get statistics in a char buffer Summary: Following up on D68471, this CL introduces some `getStats` APIs to gather statistics in char buffers (`ScopedString` really) instead of printing them out right away. Ultimately `printStats` will just output the buffer, but that allows us to potentially do some work on the intermediate buffer, and can be used for a `mallocz` type of functionality. This allows us to pretty much get rid of all the `Printf` calls around, but I am keeping the function in for debugging purposes. This changes the existing tests to use the new APIs when required. I will add new tests as suggested in D68471 in another CL. Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris Reviewed By: morehouse Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68653
  10. [clang-format] Update noexcept reference qualifiers detection Summary: r373165 fixed an issue where a templated noexcept member function with a reference qualifier would be indented more than expected: ``` // Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes // before r373165: struct f { template <class T> void bar() && noexcept {} }; // after: struct f { template <class T> void bar() && noexcept {} }; ``` The way this is done is that in the AnnotatingParser in `lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&` (the line in determineTokenType ``` Current.Type = determineStarAmpUsage(... ``` is not performed in some cases anymore, combining with a few additional related checks afterwards. The net effect of these checks results in the `&` or `&&` token to start being classified as `TT_Unknown` in cases where before `r373165` it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by `determineStarAmpUsage`. This inadvertently caused 2 classes of regressions I'm aware of: - The address-of `&` after a function assignment would be classified as `TT_Unknown`, causing spaces to surround it, disregarding style options: ``` // before r373165: void (*fun_ptr)(void) = &fun; // after: void (*fun_ptr)(void) = & fun; ``` - In cases where there is a function declaration list -- looking macro between a template line and the start of the function declaration, an `&` as part of the return type would be classified as `TT_Unknown`, causing spaces to surround it: ``` // before r373165: template <class T> DEPRECATED("lala") Type& foo(); // after: template <class T> DEPRECATED("lala") Type & foo(); ``` In these cases the problems are rooted in the skipping of the classification of a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting decisions later in the pipeline. I've looked into the goal of r373165 and noticed that replacing `noexcept` with `const` in the given example produces no extra indentation with the old code: ``` // before r373165: struct f { template <class T> int foo() & const {} }; struct f { template <class T> int foo() & noexcept {} }; ``` I investigated how clang-format annotated these two examples differently to determine the places where the processing of both diverges in the pipeline. There were two places where the processing diverges, causing the extra indent in the `noexcept` case: 1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept` is annotated as `TT_Unknown`. I've updated the `determineTokenType` function to account for this by adding a missing `tok:kw_noexcept` to the clause that marks a token as `TT_TrailingAnnotation`. 2. The `&` in the second example is wrongly identified as `TT_BinaryOperator` in `determineStarAmpUsage`. This is the reason for the extra indentation -- clang-format gets confused and thinks this is an expression. I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`. With these two updates in place, the additional parsing introduced by r373165 becomes unnecessary and all added tests pass (with updates, as now clang-format respects the style configuration for spaces around the `&` in the test examples). I've removed these additions and added regression tests for the cases above. Reviewers: AndWass, MyDeveloperDay Reviewed By: MyDeveloperDay Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D68695
  11. Fix Wdocumentation unknown parameter warning. NFCI.
  12. [llvm-exegesis] Ensure that ExecutableFunction are aligned. Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68703
  13. Add and adjust saturating tests. NFC This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64 tests and adds equivalent tests for ARM.
  14. [clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex Summary: After rL374163, replycallbacks might have a cancellable context, which will try to access RequestCancellers on destruction. See http://45.33.8.238/mac/1245/step_7.txt for a sample failure. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis Tags: #clang Differential Revision: https://reviews.llvm.org/D68702
  15. [clang-offload-bundler] Support `.cui` and `.d`. Reviewers: tra, yaxunl Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68663
  16. [LV] Emitting SCEV checks with OptForSize When optimising for size and SCEV runtime checks need to be emitted to check overflow behaviour, the loop vectorizer can run in this assert: LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks( llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize() && "Cannot SCEV check stride or overflow when opt We should not generate predicates while optimising for size because code will be generated for predicates such as these SCEV overflow runtime checks. This should fix PR43371. Differential Revision: https://reviews.llvm.org/D68082
  17. [mips] Rename local variable. NFC
  18. [mips] Split expandLoadImmReal into multiple methods. NFC The `expandLoadImmReal` handles four different and almost non-overlapping cases: loading a "single" float immediate into a GPR, loading a "single" float immediate into a FPR, and the same couple for a "double" float immediate. It's better to move each `else if` branch into separate methods.
  19. [clangd] Propagate context into reply handlers
  20. [llvm-exegesis] Fix r374158 Some bots complain about missing 'class': LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive] std::unique_ptr<const TargetMachine> TargetMachine;
  21. [CostModel][X86] Add tests for insertelement to non-immediate vector element indices
  22. [CostModel][X86] Add tests for extractelement from non-immediate vector element indices
  23. [ARM] Add saturating arithmetic tests for MVE. NFC
Revision 374183 by spatel:
[SLP] respect target register width for GEP vectorization (PR43578)

We failed to account for the target register width (max vector factor)
when vectorizing starting from GEPs. This causes vectorization to
proceed to obviously illegal widths as in:
https://bugs.llvm.org/show_bug.cgi?id=43578

For x86, this also means that SLP can produce rogue AVX or AVX512
code even when the user specifies a narrower vector width.

The AArch64 test in ext-trunc.ll appears to be better using the
narrower width. I'm not exactly sure what getelementptr.ll is trying
to do, but it's testing with "-slp-threshold=-18", so I'm not worried
about those diffs. The x86 test is an over-reduction from SPEC h264;
this patch appears to restore the perf loss caused by SLP when using
-march=haswell.

Differential Revision: https://reviews.llvm.org/D68667
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cppllvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/AArch64/ext-trunc.llllvm.src/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/AArch64/getelementptr.llllvm.src/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/load-merge.llllvm.src/test/Transforms/SLPVectorizer/X86/load-merge.ll
Revision 374182 by chill:
[AArch64] Ensure no tagged memory is left in the unallocated portion of the
stack

This patch makes sure that if we tag some memory, we untag that memory before
the function returns/throws via any exit, reachable from the tag operation. For
that we place the untag operation either at:

  a) the lifetime end call for the alloca, if that call post-dominates the
     lifetime start call (where the tag operation is placed), or it (the
     lifetime end call) dominates all reachable exits, otherwise
  b) at the reachable exits

Differential Revision: https://reviews.llvm.org/D68469
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64StackTagging.cppllvm.src/lib/Target/AArch64/AArch64StackTagging.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-ex-1.llllvm.src/test/CodeGen/AArch64/stack-tagging-ex-1.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-ex-2.llllvm.src/test/CodeGen/AArch64/stack-tagging-ex-2.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-untag-placement.llllvm.src/test/CodeGen/AArch64/stack-tagging-untag-placement.ll
Revision 374181 by jasonliu:
[NFC] Remove files got accidentally upload in llvm-svn 374179
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/D68650.diffllvm.src/D68650.diff
Revision 374179 by jasonliu:
[AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength.

Summary:
According the the XCOFF document,
If
Then
XTY_SD
x_scnlen contains the csect length.
XTY_LD
x_scnlen contains the symbol table index of the containing csect.
XTY_CM
x_scnlen contains the csect length.
XTY_ER
x_scnlen contains 0.

Change the SectionLen member name to SectionOrLength is more reasonable.

Authored By: DiggerLin

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D68650
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/D68650.diffllvm.src/D68650.diff
The file was modified/llvm/trunk/include/llvm/Object/XCOFFObjectFile.hllvm.src/include/llvm/Object/XCOFFObjectFile.h
The file was modified/llvm/trunk/tools/llvm-readobj/XCOFFDumper.cppllvm.src/tools/llvm-readobj/XCOFFDumper.cpp
Revision 374178 by Jonas Devlieghere:
Re-land "[dsymutil] Fix handling of common symbols in multiple object files."

The original patch got reverted because it hit a long-standing legacy
issue on Windows that prevents files from being named `com`. Thanks
Kristina & Jeremy for pointing this out.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/privatellvm.src/test/tools/dsymutil/Inputs/private
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmpllvm.src/test/tools/dsymutil/Inputs/private/tmp
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/commonllvm.src/test/tools/dsymutil/Inputs/private/tmp/common
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common.x86_64llvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common.x86_64
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common1.ollvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common1.o
The file was added/llvm/trunk/test/tools/dsymutil/Inputs/private/tmp/common/common2.ollvm.src/test/tools/dsymutil/Inputs/private/tmp/common/common2.o
The file was added/llvm/trunk/test/tools/dsymutil/X86/common-sym-multi.testllvm.src/test/tools/dsymutil/X86/common-sym-multi.test
The file was modified/llvm/trunk/tools/dsymutil/MachODebugMapParser.cppllvm.src/tools/dsymutil/MachODebugMapParser.cpp
Revision 374177 by asbirlea:
[MemorySSA] Make the use of moveAllAfterMergeBlocks consistent.

Summary:
The rule for the moveAllAfterMergeBlocks API si for all instructions
from `From` to have been moved to `To`, while keeping the CFG edges (and
block terminators) unchanged.
Update all the callsites for moveAllAfterMergeBlocks to follow this.

Pending follow-up: since the same behavior is needed everytime, merge
all callsites into one. The common denominator may be the call to
`MergeBlockIntoPredecessor`.

Resolves PR43569.

Reviewers: george.burgess.iv

Subscribers: Prazek, sanjoy.google, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68659
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/MemorySSAUpdater.cppllvm.src/lib/Analysis/MemorySSAUpdater.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cppllvm.src/lib/Transforms/Scalar/LoopUnswitch.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/BasicBlockUtils.cppllvm.src/lib/Transforms/Utils/BasicBlockUtils.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/LoopRotationUtils.cppllvm.src/lib/Transforms/Utils/LoopRotationUtils.cpp
The file was added/llvm/trunk/test/Analysis/MemorySSA/pr43569.llllvm.src/test/Analysis/MemorySSA/pr43569.ll
Revision 374175 by mitchell:
[NFC] Reverting changes from test commit.
llvm commit access test succeeded.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ClangFormatStyleOptions.rstclang.src/docs/ClangFormatStyleOptions.rst
Revision 374174 by mitchell:
[NFC] Test commit.
Testing llvm commit access only.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ClangFormatStyleOptions.rstclang.src/docs/ClangFormatStyleOptions.rst
Revision 374173 by cryptoad:
[scudo][standalone] Get statistics in a char buffer

Summary:
Following up on D68471, this CL introduces some `getStats` APIs to
gather statistics in char buffers (`ScopedString` really) instead of
printing them out right away. Ultimately `printStats` will just
output the buffer, but that allows us to potentially do some work
on the intermediate buffer, and can be used for a `mallocz` type
of functionality. This allows us to pretty much get rid of all the
`Printf` calls around, but I am keeping the function in for
debugging purposes.

This changes the existing tests to use the new APIs when required.

I will add new tests as suggested in D68471 in another CL.

Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris

Reviewed By: morehouse

Subscribers: delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D68653
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/scudo/standalone/combined.hcompiler-rt.src/lib/scudo/standalone/combined.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/crc32_hw.cppcompiler-rt.src/lib/scudo/standalone/crc32_hw.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/primary32.hcompiler-rt.src/lib/scudo/standalone/primary32.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/primary64.hcompiler-rt.src/lib/scudo/standalone/primary64.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/quarantine.hcompiler-rt.src/lib/scudo/standalone/quarantine.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/secondary.cppcompiler-rt.src/lib/scudo/standalone/secondary.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/secondary.hcompiler-rt.src/lib/scudo/standalone/secondary.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/size_class_map.hcompiler-rt.src/lib/scudo/standalone/size_class_map.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/string_utils.cppcompiler-rt.src/lib/scudo/standalone/string_utils.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/string_utils.hcompiler-rt.src/lib/scudo/standalone/string_utils.h
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/combined_test.cppcompiler-rt.src/lib/scudo/standalone/tests/combined_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/primary_test.cppcompiler-rt.src/lib/scudo/standalone/tests/primary_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/quarantine_test.cppcompiler-rt.src/lib/scudo/standalone/tests/quarantine_test.cpp
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/secondary_test.cppcompiler-rt.src/lib/scudo/standalone/tests/secondary_test.cpp
Revision 374172 by krasimir:
[clang-format] Update noexcept reference qualifiers detection

Summary:
r373165 fixed an issue where a templated noexcept member function with a
reference qualifier would be indented more than expected:
```
// Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes

// before r373165:
struct f {
  template <class T>
      void bar() && noexcept {}
};

// after:
struct f {
  template <class T>
  void bar() && noexcept {}
};

```
The way this is done is that in the AnnotatingParser in
`lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&`
(the line in determineTokenType

```
Current.Type = determineStarAmpUsage(...
```
is not performed in some cases anymore, combining with a few additional related
checks afterwards. The net effect of these checks results in the `&` or `&&`
token to start being classified as `TT_Unknown` in cases where before `r373165`
it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by
`determineStarAmpUsage`.

This inadvertently caused 2 classes of regressions I'm aware of:

- The address-of `&` after a function assignment would be classified as
  `TT_Unknown`, causing spaces to surround it, disregarding style options:
```
// before r373165:
void (*fun_ptr)(void) = &fun;

// after:
void (*fun_ptr)(void) = & fun;
```

- In cases where there is a function declaration list -- looking macro between
  a template line and the start of the function declaration, an `&` as part of
  the return type would be classified as `TT_Unknown`, causing spaces to
  surround it:
```
// before r373165:
template <class T>
DEPRECATED("lala")
Type& foo();

// after:
template <class T>
DEPRECATED("lala")
Type & foo();
```

In these cases the problems are rooted in the skipping of the classification of
a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting
decisions later in the pipeline.

I've looked into the goal of r373165 and noticed that replacing `noexcept` with
`const` in the given example produces no extra indentation with the old code:
```
// before r373165:
struct f {
  template <class T>
  int foo() & const {}
};

struct f {
  template <class T>
      int foo() & noexcept {}
};
```

I investigated how clang-format annotated these two examples differently to
determine the places where the processing of both diverges in the pipeline.
There were two places where the processing diverges, causing the extra indent in
the `noexcept` case:
1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept`
   is annotated as `TT_Unknown`. I've updated the `determineTokenType` function
   to account for this by adding a missing `tok:kw_noexcept` to the clause that
   marks a token as `TT_TrailingAnnotation`.
2. The `&` in the second example is wrongly identified as `TT_BinaryOperator`
   in `determineStarAmpUsage`. This is the reason for the extra indentation --
   clang-format gets confused and thinks this is an expression.
   I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`.

With these two updates in place, the additional parsing introduced by r373165
becomes unnecessary and all added tests pass (with updates, as now clang-format
respects the style configuration for spaces around the `&` in the test
examples).
I've removed these additions and added regression tests for the cases above.

Reviewers: AndWass, MyDeveloperDay

Reviewed By: MyDeveloperDay

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https://reviews.llvm.org/D68695
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/TokenAnnotator.cppclang.src/lib/Format/TokenAnnotator.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cppclang.src/unittests/Format/FormatTest.cpp
Revision 374171 by rksimon:
Fix Wdocumentation unknown parameter warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm-c/DebugInfo.hllvm.src/include/llvm-c/DebugInfo.h
Revision 374170 by courbet:
[llvm-exegesis] Ensure that ExecutableFunction are aligned.

Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it.

Reviewers: gchatelet

Subscribers: tschuett, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68703
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/Assembler.cppllvm.src/tools/llvm-exegesis/lib/Assembler.cpp
Revision 374169 by dmgreen:
Add and adjust saturating tests. NFC

This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64
tests and adds equivalent tests for ARM.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AArch64/sadd_sat.llllvm.src/test/CodeGen/AArch64/sadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/ssub_sat.llllvm.src/test/CodeGen/AArch64/ssub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/uadd_sat.llllvm.src/test/CodeGen/AArch64/uadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/usub_sat.llllvm.src/test/CodeGen/AArch64/usub_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/sadd_sat.llllvm.src/test/CodeGen/ARM/sadd_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/ssub_sat.llllvm.src/test/CodeGen/ARM/ssub_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/uadd_sat.llllvm.src/test/CodeGen/ARM/uadd_sat.ll
The file was added/llvm/trunk/test/CodeGen/ARM/usub_sat.llllvm.src/test/CodeGen/ARM/usub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sadd_sat.llllvm.src/test/CodeGen/X86/sadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/ssub_sat.llllvm.src/test/CodeGen/X86/ssub_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/uadd_sat.llllvm.src/test/CodeGen/X86/uadd_sat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/usub_sat.llllvm.src/test/CodeGen/X86/usub_sat.ll
Revision 374168 by kadircet:
[clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex

Summary:
After rL374163, replycallbacks might have a cancellable context, which
will try to access RequestCancellers on destruction. See
http://45.33.8.238/mac/1245/step_7.txt for a sample failure.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68702
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cppclang-tools-extra.src/clangd/ClangdLSPServer.cpp
Revision 374167 by hliao:
[clang-offload-bundler] Support `.cui` and `.d`.

Reviewers: tra, yaxunl

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68663
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cppclang.src/tools/clang-offload-bundler/ClangOffloadBundler.cpp
Revision 374166 by sjoerdmeijer:
[LV] Emitting SCEV checks with OptForSize

When optimising for size and SCEV runtime checks need to be emitted to check
overflow behaviour, the loop vectorizer can run in this assert:

  LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks(
  llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize()
  && "Cannot SCEV check stride or overflow when opt

We should not generate predicates while optimising for size because
code will be generated for predicates such as these SCEV overflow runtime
checks.

This should fix PR43371.

Differential Revision: https://reviews.llvm.org/D68082
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorizationLegality.cppllvm.src/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/optsize.llllvm.src/test/Transforms/LoopVectorize/optsize.ll
Revision 374165 by atanasyan:
[mips] Rename local variable. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cppllvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Revision 374164 by atanasyan:
[mips] Split expandLoadImmReal into multiple methods. NFC

The `expandLoadImmReal` handles four different and almost non-overlapping
cases: loading a "single" float immediate into a GPR, loading a "single"
float immediate into a FPR, and the same couple for a "double" float
immediate.

It's better to move each `else if` branch into separate methods.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cppllvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Revision 374163 by kadircet:
[clangd] Propagate context into reply handlers
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.hclang-tools-extra.src/clangd/ClangdLSPServer.h
Revision 374162 by courbet:
[llvm-exegesis] Fix r374158

Some bots complain about missing 'class':

LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive]
   std::unique_ptr<const TargetMachine> TargetMachine;
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.cppllvm.src/tools/llvm-exegesis/lib/LlvmState.cpp
The file was modified/llvm/trunk/tools/llvm-exegesis/lib/LlvmState.hllvm.src/tools/llvm-exegesis/lib/LlvmState.h
Revision 374161 by rksimon:
[CostModel][X86] Add tests for insertelement to non-immediate vector element indices
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/vector-insert.llllvm.src/test/Analysis/CostModel/X86/vector-insert.ll
Revision 374160 by rksimon:
[CostModel][X86] Add tests for extractelement from non-immediate vector element indices
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Analysis/CostModel/X86/vector-extract.llllvm.src/test/Analysis/CostModel/X86/vector-extract.ll
Revision 374159 by dmgreen:
[ARM] Add saturating arithmetic tests for MVE. NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-saturating-arith.llllvm.src/test/CodeGen/Thumb2/mve-saturating-arith.ll