SuccessChanges

Summary

  1. Reapply "[clang][cli] Allow users to specify a conditional to prevent parsing options with MarshallingInfo" (details)
  2. [clang][ASTImporter] Fix a possible assertion failure `NeedsInjectedClassNameType(Decl)'. (details)
  3. [lldb][ARM/AArch64] Update disasm flags to latest v8.7a ISA (details)
  4. [clang][cli] Port a CommaJoined option to the marshalling infrastructure (details)
  5. [flang][driver] Add support for `-c` and `-emit-obj` (details)
  6. [clang][cli] Port getAllArgumentValues to the marshalling infrastructure (details)
  7. [libc++] [CI] Install Tip-of-Trunk clang. (details)
  8. [clang][cli] Report the actual argument parsing result (details)
  9. [DAG] Simplify OR(X,SHL(Y,BW/2)) eq/ne 0/-1 'all/any-of' style patterns (details)
  10. [libcxx] Mark a test as unsupported for C++03 (details)
Commit 67a4c672b02359fa6f723249f633ffc76aff2174 by jan_svoboda
Reapply "[clang][cli] Allow users to specify a conditional to prevent parsing options with MarshallingInfo"

This reverts commit d0fa7a05 and fixes failing OptionMarshallingTest by adding the SHOULD_PARSE macro argument
The file was modifiedllvm/unittests/Option/OptionMarshallingTest.cpp
The file was modifiedllvm/include/llvm/Option/OptParser.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/utils/TableGen/OptParserEmitter.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit 0877b963ef2d3c384b47f7a6161c9d9ab106a7f2 by 1.int32
[clang][ASTImporter] Fix a possible assertion failure `NeedsInjectedClassNameType(Decl)'.

The assertion can happen if ASTImporter imports a CXXRecordDecl in a template
and then imports another redeclaration of this declaration, while the first import is in progress.
The process of first import did not set the "described template" yet
and the second import finds the first declaration at setting the injected types.
Setting the injected type requires in the assertion that the described template is set.
The exact assertion was:
clang/lib/AST/ASTContext.cpp:4411:
clang::QualType clang::ASTContext::getInjectedClassNameType(clang::CXXRecordDecl*, clang::QualType) const:
Assertion `NeedsInjectedClassNameType(Decl)' failed.

Reviewed By: shafik

Differential Revision: https://reviews.llvm.org/D94067
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit 801c7866e6d4fba81c97d27ca56c9e05ba7b157a by david.spickett
[lldb][ARM/AArch64] Update disasm flags to latest v8.7a ISA

Add optional memory tagging extension on AArch64.

Use isAArch64() instead of listing the AArch64 triples,
which fixes us not recognising aarch64_be.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D94084
The file was modifiedlldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
Commit a828fb463ed9f6085849bb3a4f225b3c84e7cf29 by jan_svoboda
[clang][cli] Port a CommaJoined option to the marshalling infrastructure

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D93698
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit e5cdb6c56edf656d03f57c5c285cfa8c6b7b6f57 by andrzej.warzynski
[flang][driver] Add support for `-c` and `-emit-obj`

This patch adds a frontend action for emitting object files. While Flang
does not support code-generation, this action remains a placeholder.
This patch simply provides glue-code to connect the compiler driver
with the appropriate frontend action.

The new action is triggered with the `-c` compiler driver flag, i.e.
`flang-new -c`. This is then translated to `flang-new -fc1 -emit-obj`,
so `-emit-obj` has to be marked as supported as well.

As code-generation is not available yet, `flang-new -c` results in a
driver error:
```
error: code-generation is not available yet
```
Hopefully this will help communicating the level of available
functionality within Flang.

The definition of `emit-obj` is updated so that it can be shared between
Clang and Flang. As the original definition was enclosed within a
Clang-specific TableGen `let` statement, it is extracted into a new `let`
statement. That felt like the cleanest option.

I also commented out `-triple` in Flang::ConstructJob and updated some
comments there. This is similar to https://reviews.llvm.org/D93027. I
wanted to make sure that it's clear that we can't support `-triple`
until we have code-generation. However, once code-generation is
available we _will need_ `-triple`.

As this patch adds `-emit-obj`, the emit-obj.f90 becomes irrelevant and
is deleted. Instead, phases.f90 is added to demonstrate that users can
control compilation phases (indeed, `-c` is a phase control flag).

Reviewed By: SouraVX, clementval

Differential Revision: https://reviews.llvm.org/D93301
The file was addedflang/test/Flang-Driver/phases.f90
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was addedflang/test/Flang-Driver/code-gen.f90
The file was removedflang/test/Flang-Driver/emit-obj.f90
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/Flang.cpp
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/test/Flang-Driver/driver-help-hidden.f90
The file was modifiedflang/test/Flang-Driver/driver-help.f90
The file was modifiedflang/include/flang/Frontend/FrontendActions.h
The file was modifiedflang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
The file was modifiedflang/include/flang/Frontend/FrontendOptions.h
Commit b6ba59830796b4efad69a3d3c1fae56c20029f30 by jan_svoboda
[clang][cli] Port getAllArgumentValues to the marshalling infrastructure

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D93679
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit b6fb0209b6d4e93126f613eca335db84886bf939 by marek.kurdej
[libc++] [CI] Install Tip-of-Trunk clang.

* Check created symlinks.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D93520
The file was modifiedlibcxx/utils/ci/Dockerfile
Commit 33f90f38e11c7c23d6e2a23ca526f8b0d8f53771 by jan_svoboda
[clang][cli] Report the actual argument parsing result

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D93700
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit 350ab7aa1c6735c0a136c118f7b43773fd74bf2d by llvm-dev
[DAG] Simplify OR(X,SHL(Y,BW/2)) eq/ne 0/-1 'all/any-of' style patterns

Attempt to simplify all/any-of style patterns that concatenate 2 smaller integers together into an and(x,y)/or(x,y) + icmp 0/-1 instead.

This is mainly to help some bool predicate reduction patterns where we end up concatenating bool vectors that have been bitcasted to integers.

Differential Revision: https://reviews.llvm.org/D93599
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-op.ll
The file was modifiedllvm/test/CodeGen/X86/cmp-concat.ll
The file was modifiedllvm/test/CodeGen/X86/movmsk-cmp.ll
Commit 7da3e3a8983a079cbed874b924dd34dd6b6a4001 by mikhail.maltsev
[libcxx] Mark a test as unsupported for C++03

The nullptr_t_integral_cast.pass.cpp test is currently xfailed for
C++03, but actually, it only fails with the first version of libc++
ABI.

This patch changes XFAIL to UNSUPPORTED to avoid unexpected passes
with ABI v2 or later.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D93941
The file was modifiedlibcxx/test/std/language.support/support.types/nullptr_t_integral_cast.pass.cpp