SuccessChanges

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

Summary

  1. [InstCombine] Add test for infinite combine loop (NFC) (details)
  2. [InstSimplify] Clarify SimplifyWithOpReplaced() return value (details)
  3. Reapply [InstCombine] Simplify select operand based on equality condition (details)
  4. [gn build] Port 56069b5c71c (details)
  5. [UpdateTestChecks] Allow $ in function names (details)
  6. [aarch64][tests] Add tests which show current lack of implicit null support (details)
  7. [flang][msvc] Work around if constexpr (false) evaluation. NFC. (details)
  8. [X86] Add test case for a masked load mask becoming all ones after type legalization. (details)
  9. [DAGCombiner] Teach visitMLOAD to replace an all ones mask with an unmasked load (details)
  10. [lsan] Share platform allocator settings between ASan and LSan (details)
  11. Revert "[lsan] Share platform allocator settings between ASan and LSan" (details)
  12. [ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings. (details)
  13. Revert "Do not apply calling conventions to MSVC entry points" (details)
  14. [AMDGPU] gfx1030 test update. NFC. (details)
  15. [NFC][LSAN] Change SuspendedThreadsList interface (details)
  16. [ELF] Bump the limit of thunk creation passes from 10 to 15 (details)
  17. [NFC][regalloc] type LiveInterval::reg() as Register (details)
  18. [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name. (details)
  19. [lldb/test] Enable faulthandler in dotest (details)
  20. [NFC] Refactor DiagnosticBuilder and PartialDiagnostic (details)
  21. [libunwind] Support for leaf function unwinding. (details)
  22. [flang] Substrings with lower bound greater than upper bound (details)
  23. Disable a large test for EXPENSIVE_CHECKS and debug build (details)
  24. [AArch64] Add -mmark-bti-property flag. (details)
  25. [gn build] (manually) port 1321160a2 (details)
  26. [EarlyCSE] Simplify max/min pattern matching. NFC. (details)
  27. [Flang] Fixed installation permission of the "binary" flang (details)
  28. Commenting out atomics with padding to unbreak MSAN tests (details)
  29. Revert "[AArch64] Add -mmark-bti-property flag." (details)
  30. [AArch64] Add -mmark-bti-property flag. (details)
  31. [DAGCombiner] Teach visitMSTORE to replace an all ones mask with an unmasked store. (details)
  32. [MemorySSA] Rename uses in blocks with Phis. (details)
  33. Canonicalize declaration pointers when forming APValues. (details)
  34. PR47555: Inheriting constructors are implicitly definable. (details)
  35. [NewPM] Port -print-alias-sets to NPM (details)
  36. [IRSim] Adding IR Instruction Mapper (details)
  37. [mlir] expose affine map to C API (details)
  38. [gn build] Port b04c1a9d312 (details)
  39. [libunwind][DWARF] Fix end of .eh_frame calculation (details)
  40. [MachineSink] add one more mir case - nfc (details)
  41. [PowerPC] Fix store-fptoi combine of f128 on Power8 (details)
  42. Use zu rather than llu format specifier for size_t (-Wformat warning fix). (details)
  43. debug_rnglists/symbolizing: reduce memory usage by not caching rnglists (details)
  44. Revert "[IRSim] Adding IR Instruction Mapper" (details)
  45. [gn build] Port a895040eb02 (details)
  46. Flush bitcode incrementally for LTO output (details)
  47. Add the header of std::min (details)
  48. Fix the arguments of std::min (details)
  49. [lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC) (details)
Commit 94d912021ff35d33cde96dacd6f1db925fe9f2b8 by nikita.ppv
[InstCombine] Add test for infinite combine loop (NFC)

Test courtesy of bkramer for the infinite combine loop introduced
by D87480.
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 0bb06f297fe52a5125952cb6f1e264b4e7c48097 by nikita.ppv
[InstSimplify] Clarify SimplifyWithOpReplaced() return value

If SimplifyWithOpReplaced() cannot simplify the value, null should
be returned. Make sure this really does happen in all cases,
including those where SimplifyBinOp() returns the original value.

This does not matter for existing users, but does mattter for
D87480, which would go into an infinite loop otherwise.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h
Commit 222bf3ffbc8419570fc2266a2e7d1c5f58cedaa7 by nikita.ppv
Reapply [InstCombine] Simplify select operand based on equality condition

Reapply after fixing SimplifyWithOpReplaced() to never return
the original value, which would lead to an infinite loop in this
transform.

-----

For selects of the type X == Y ? A : B, check if we can simplify A
by using the X == Y equality and replace the operand if that's
possible. We already try to do this in InstSimplify, but will only
fold if the result of the simplification is the same as B, in which
case the select can be dropped entirely. Here the select will be
retained, just one operand simplified.

As we are performing an actual replacement here, we don't have
problems with refinement / poison values.

Differential Revision: https://reviews.llvm.org/D87480
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
Commit 2a078a977e90481954eef69b489fac650ddbdaf6 by llvmgnsyncbot
[gn build] Port 56069b5c71c
The file was modifiedllvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Commit ce0eb81c72749d1e96cfc6fb68af3c24b63753cc by David A Greene
[UpdateTestChecks] Allow $ in function names

Some compilers generation functions with '$' in their names, so recognize those
functions.

This also requires recognizing function names inside quotes in some contexts in
order to escape certain characters.

Differential Revision: https://reviews.llvm.org/D82995
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/riscv_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/ppc-function-name.test
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/aarch64-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/arm-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/amdgpu-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/mips-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/wasm-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll.expected
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/riscv_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/msp430-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/riscv-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/sparc-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/hexagon-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/lanai-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/systemz-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll.expected
Commit 7af4f44c3e3dfb4483fb4dcc200f9376e96d6208 by listmail
[aarch64][tests] Add tests which show current lack of implicit null support

I will be posting a patch which adds appropriate target support shortly; landing the tests so that the diffs are clear.
The file was addedllvm/test/CodeGen/AArch64/implicit-null-check.ll
Commit dee4686227842aa0e8380c7925049a5df9c4f781 by llvm-project
 [flang][msvc] Work around if constexpr (false) evaluation. NFC.

MSVC tries to expand templates that are in the false-branch of a `if constexpr` construct. In this case, the condition checks whether a tuple has at least one element and then is trying to access it using `std::get<0>`, which fails when the tuple has 0 elements.

The workaround is to extract that case into a separate method.

This patch is part of the series to make flang compilable with MS Visual Studio <http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html>.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D87728
The file was modifiedflang/lib/Parser/basic-parsers.h
Commit 65ef2e50a29630f9f0fba4899045c0058dacfcb0 by craig.topper
[X86] Add test case for a masked load mask becoming all ones after type legalization.

We should be able to turn this into a unmasked load. X86 has an
optimization to detect that the first and last element aren't masked
and then turn the whole thing into an unmasked load and a blend.
That transform is disabled on avx512 though.

But if we know the blend isn't needed, then the unmasked load by
itself should always be profitable.
The file was modifiedllvm/test/CodeGen/X86/masked_load.ll
Commit 89ee4c0314bd08143d954d80bf7678d3a3ecc15a by craig.topper
[DAGCombiner] Teach visitMLOAD to replace an all ones mask with an unmasked load

If we have an all ones mask, we can just a regular masked load. InstCombine already gets this in IR. But the all ones mask can appear after type legalization.

Only avx512 test cases are affected because X86 backend already looks for element 0 and the last element being 1. It replaces this with an unmasked load and blend. The all ones mask is a special case of that where the blend will be removed. That transform is only enabled on avx2 targets. I believe that's because a non-zero passthru on avx2 already requires a separate blend so its more profitable to handle mixed constant masks.

This patch adds a dedicated all ones handling to the target independent DAG combiner. I've skipped extending, expanding, and index loads for now. X86 doesn't use index so I don't know much about it. Extending made me nervous because I wasn't sure I could trust the memory VT had the right element count due to some weirdness in vector splitting. For expanding I wasn't sure if we needed different undef handling.

Differential Revision: https://reviews.llvm.org/D87788
The file was modifiedllvm/test/CodeGen/X86/masked_load.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit c57df3dc09e8b59c55c83ba5c354569a82a5c3b8 by phosek
[lsan] Share platform allocator settings between ASan and LSan

This moves the platform-specific parameter logic from asan into
sanitizer_common so lsan can reuse it.

Patch By: mcgrathr

Differential Revision: https://reviews.llvm.org/D85930
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator.h
The file was modifiedcompiler-rt/lib/lsan/lsan_allocator.h
Commit e3fe203ec7f766ad6028144d266557b0d89b77fe by phosek
Revert "[lsan] Share platform allocator settings between ASan and LSan"

This reverts commit c57df3dc09e8b59c55c83ba5c354569a82a5c3b8 which broke
Windows sanitizer bots.
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
The file was modifiedcompiler-rt/lib/lsan/lsan_allocator.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator.h
Commit 9a0d1b66730c8761a5da59351bf1c7666958130b by Lang Hames
[ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings.
The file was modifiedllvm/include/llvm-c/Orc.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
Commit bebfc3b92d5e8dd1b1d75d40d5d03975957eec14 by akhuang
Revert "Do not apply calling conventions to MSVC entry points"

This reverts commit 4cff1b40dacf6a5489b09657d94ea4757b8cd3b0.

Caused "undefined symbol: _WinMain@16" link errors.
The file was modifiedclang/test/CodeGenCXX/default_calling_conv.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit a45cdb311f6e71fdf5452a4be9037f3fb028f1d1 by Stanislav.Mekhanoshin
[AMDGPU] gfx1030 test update. NFC.
The file was modifiedllvm/test/MC/AMDGPU/smem.s
Commit cd13476ab57b43b66831bba14206a350c5a4a81b by Vitaly Buka
[NFC][LSAN] Change SuspendedThreadsList interface

Remove RegisterCount and let GetRegistersAndSP to resize buffer as needed.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87747
The file was modifiedcompiler-rt/lib/lsan/lsan_common.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
Commit 15f0ad2fa29beaf1dad1548ccb97c2c729ea53cd by maskray
[ELF] Bump the limit of thunk creation passes from 10 to 15

I have noticed that a 374MiB powerpc64le 'ld.lld' requires 11 passes to link.
There is a ThunkSection (whose parent OutputSection is ".text" of 169MiB) with 12867 thunks.
The file was modifiedlld/ELF/Writer.cpp
Commit aa2ba67a8137040b9146d0383c74f0b75ac9683a by mtrofin
[NFC][regalloc] type LiveInterval::reg() as Register

We have the Register type which precisely captures the role of this
member. Storage-wise, it's an unsigned.

This helps readability & maintainability.

Differential Revision: https://reviews.llvm.org/D87768
The file was modifiedllvm/include/llvm/CodeGen/LiveInterval.h
Commit b1cb9d6271263b197ba53cac28a0fc3bf27ec5b8 by rahmanl
[obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name.

Without this patch, obj2yaml decodes the content of only one ".stack_size" section. Other sections are dumped with their full contents.

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D87727
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
Commit dd67581407c1693e43ac8a90b3a20c597614bda8 by rupprecht
[lldb/test] Enable faulthandler in dotest

Register the `faulthandler` module so we can see what lldb tests are doing when they misbehave (e.g. run under a test runner that sets a timeout). This will print a stack trace for the following signals:

- `SIGSEGV`, `SIGFPE`, `SIGABRT`, `SIGBUS`, and `SIGILL` (via `faulthandler.enable()`)
- `SIGTERM` (via `faulthandler.register(SIGTERM)`) [This is what our test runners sends when it times out].

The only signal we currently handle is `SIGINT` (via `unittest2.signals.installHandler()`) so there should be no overlap added by this patch.

Because this import is not available until python3, and the `register()` method is not available on Windows, this is enabled defensively.

This should have absolutely no effect when tests are passing (or even normally failing), but can be observed by running this while ninja is running:

```
kill -s SIGTERM $(ps aux | grep dotest.py | head -1 | awk '{print $2}')
```

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87637
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit ee5519d323571c4a9a7d92cb817023c9b95334cd by Yaxun.Liu
[NFC] Refactor DiagnosticBuilder and PartialDiagnostic

PartialDiagnostic misses some functions compared to DiagnosticBuilder.

This patch refactors DiagnosticBuilder and PartialDiagnostic, extracts
the common functionality so that the streaming << operators are
shared.

Differential Revision: https://reviews.llvm.org/D84362
The file was modifiedclang/include/clang/Basic/PartialDiagnostic.h
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/include/clang/AST/NestedNameSpecifier.h
The file was modifiedclang/lib/Basic/Diagnostic.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/AST/TemplateBase.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/include/clang/AST/TemplateBase.h
The file was modifiedclang/include/clang/AST/DeclarationName.h
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/lib/AST/TemplateName.cpp
The file was modifiedclang/include/clang/Sema/ParsedAttr.h
The file was modifiedclang/include/clang/AST/CanonicalType.h
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/include/clang/AST/Attr.h
The file was modifiedclang/include/clang/AST/TemplateName.h
The file was modifiedclang/include/clang/Basic/Diagnostic.h
The file was modifiedclang/include/clang/Sema/Ownership.h
Commit 23bef7ee9923b1262326981960397e8cd95d6923 by daniel.kiss
[libunwind] Support for leaf function unwinding.

Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.

Ryan Prichard provided code for the tests.

Reviewed By: #libunwind, mstorsjo

Differential Revision: https://reviews.llvm.org/D83573
The file was modifiedlibunwind/src/DwarfInstructions.hpp
The file was addedlibunwind/test/signal_unwind.pass.cpp
The file was modifiedlibunwind/src/DwarfParser.hpp
The file was modifiedlibunwind/test/lit.site.cfg.in
The file was addedlibunwind/test/unwind_leaffunction.pass.cpp
Commit dd3eb3f33239b23a12dd8864ae236390adf79550 by psteinfeld
[flang] Substrings with lower bound greater than upper bound

According to section 9.4.1, paragraph 3,
If the starting point is greater than the ending point, the substring has
length zero

But the compilers code for substring processing was failing a call to `CHECK()`
in this case.  I fixed this by just setting the number of items in the
resulting string to 0 for this situation.

Differential Revision: https://reviews.llvm.org/D87799
The file was modifiedflang/test/Semantics/resolve49.f90
The file was modifiedflang/lib/Evaluate/variable.cpp
Commit 1321160a26e7e489baf9b10d6de90a342f898960 by jasonliu
Disable a large test for EXPENSIVE_CHECKS and debug build

Summary:
When running a large test in LLVM_ENABLE_EXPENSIVE_CHECKS=ON mode,
buildbot could hit timeout.
Disable the test when this mode is on.
Also disable it for debug so that the test won't hang for too long.

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D87794
The file was modifiedllvm/test/CMakeLists.txt
The file was modifiedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py
The file was modifiedllvm/test/lit.cfg.py
The file was modifiedllvm/test/lit.site.cfg.py.in
Commit 95e43f84b7b9c61011aece7583c0367297dd67d8 by daniel.kiss
[AArch64] Add -mmark-bti-property flag.

Writing the .note.gnu.property manually is error prone and hard to
maintain in the assembly files.
The -mmark-bti-property is for the assembler to emit the section with the
GNU_PROPERTY_AARCH64_FEATURE_1_BTI. To be used when C/C++ is compiled
with -mbranch-protection=bti.

This patch refactors the .note.gnu.property handling.

Reviewed By: chill, nickdesaulniers

Differential Revision: https://reviews.llvm.org/D81930
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
The file was addedclang/test/Driver/arm64-markbti.S
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedclang/include/clang/Driver/Options.td
Commit 0c6a56e41dbeb9ffc47ca0b03357f15cb5d30689 by thakis
[gn build] (manually) port 1321160a2
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
Commit 4e4c89b22c3fc1200ee0d6d1074173c7c53d87bc by michael.hliao
[EarlyCSE] Simplify max/min pattern matching. NFC.
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
Commit d89c5ae8577264f5dd660906f12577c5fdadf49e by tianshilei1992
[Flang] Fixed installation permission of the "binary" flang

Under current configuration, the permission of `flang` after installation is 700.
This could bring a problem for system administrators who build and install flang
for other users, which only the user who builds LLVM can execute it, and others
can not. In this patch, the explicit permission setting in the `install` command
is removed, and let CMake determine what perssion to be used like other components.

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D87783
The file was modifiedflang/tools/f18/CMakeLists.txt
Commit 5b205ff474120e086435724dc04f784b784fdd1a by ogiroux
Commenting out atomics with padding to unbreak MSAN tests
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h
Commit 60e244f82c1f97c1b7d65c06d2b0b4f634f8d696 by daniel.kiss
Revert "[AArch64] Add -mmark-bti-property flag."

This reverts commit 95e43f84b7b9c61011aece7583c0367297dd67d8.
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
The file was removedclang/test/Driver/arm64-markbti.S
Commit f70baaf71f62ba8623b3522345527271add74f6b by daniel.kiss
[AArch64] Add -mmark-bti-property flag.

Writing the .note.gnu.property manually is error prone and hard to
maintain in the assembly files.
The -mmark-bti-property is for the assembler to emit the section with the
GNU_PROPERTY_AARCH64_FEATURE_1_BTI. To be used when C/C++ is compiled
with -mbranch-protection=bti.

This patch refactors the .note.gnu.property handling.

Reviewed By: chill, nickdesaulniers

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

Reland with test dependency on aarch64 target.
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
The file was addedclang/test/Driver/arm64-markbti.S
Commit e30371d99d5157ac9718c803dd1101f9cbb1b224 by craig.topper
[DAGCombiner] Teach visitMSTORE to replace an all ones mask with an unmasked store.

Similar to what done in D87788 for MLOAD.

Again I've skipped indexed, truncating, and compressing stores.
The file was modifiedllvm/test/CodeGen/X86/masked_store.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 344a3d0bc0fb0868b519c3342b4982d6121eece3 by asbirlea
[MemorySSA] Rename uses in blocks with Phis.

Renaming should include blocks with existing Phis.

Resolves PR45927.

Differential Revision: https://reviews.llvm.org/D87661
The file was modifiedllvm/lib/Analysis/MemorySSAUpdater.cpp
The file was addedllvm/test/Analysis/MemorySSA/pr45927.ll
Commit 905b9ca26c94fa86339451a528cedde5004fc1bb by richard
Canonicalize declaration pointers when forming APValues.

References to different declarations of the same entity aren't different
values, so shouldn't have different representations.

Recommit of e6393ee813178e9d3306b8e3c6949a4f32f8a2cb with fixed
handling for weak declarations. We now look for attributes on the most
recent declaration when determining whether a declaration is weak.
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/OpenMP/ordered_messages.cpp
The file was modifiedclang/lib/AST/DeclBase.cpp
Commit 7337f296194483e0959ff980049e2835e226f396 by richard
PR47555: Inheriting constructors are implicitly definable.

Don't forget to define them if they're constexpr and used inside a
template; we might try to evaluate a call to them before the template is
instantiated.
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaCXX/cxx11-inheriting-ctors.cpp
Commit f4ea0f98142a97666cd0478757570e819923a829 by aeubanks
[NewPM] Port -print-alias-sets to NPM

Really it should be named print<alias-sets>, but for the sake of
changing fewer tests, added a TODO to rename after NPM switch and test
cleanup.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D87713
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/include/llvm/Analysis/AliasSetTracker.h
The file was modifiedllvm/test/Analysis/AliasSet/guards.ll
The file was modifiedllvm/lib/Analysis/AliasSetTracker.cpp
Commit b04c1a9d3127730c05e8a22a0e931a12a39528df by andrew_litteken
[IRSim] Adding IR Instruction Mapper

This introduces the IRInstructionMapper, and the associated wrapper for
instructions, IRInstructionData, that maps IR level Instructions to
unsigned integers.

Mapping is done mainly by using the "isSameOperationAs" comparison
between two instructions.  If they return true, the opcode, result type,
and operand types of the instruction are used to hash the instruction
with an unsigned integer.  The mapper accepts instruction ranges, and
adds each resulting integer to a list, and each wrapped instruction to
a separate list.

At present, branches, phi nodes are not mapping and exception handling
is illegal.  Debug instructions are not considered.

The different mapping schemes are tested in
unittests/Analysis/IRSimilarityIdentifierTest.cpp

Differential Revision: https://reviews.llvm.org/D86968
The file was addedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was addedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was addedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Commit b76f523be6ea606d9cf494e247546cec1cd7f209 by zhanghb97
[mlir] expose affine map to C API

This patch provides C API for MLIR affine map.
- Implement C API for AffineMap class.
- Add Utils.h to include/mlir/CAPI/, and move the definition of the CallbackOstream to Utils.h to make sure mlirAffineMapPrint work correct.
- Add TODO for exposing the C API related to AffineExpr and mutable affine map.

Differential Revision: https://reviews.llvm.org/D87617
The file was modifiedmlir/include/mlir-c/AffineMap.h
The file was addedmlir/include/mlir/CAPI/Utils.h
The file was modifiedmlir/lib/CAPI/IR/AffineMap.cpp
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/test/CAPI/ir.c
Commit 436a43afb2cf85ae6e61b4c1ac09e944a6566646 by llvmgnsyncbot
[gn build] Port b04c1a9d312
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
Commit fb1abe00635c1ec28e55921709904d5ca2e86a74 by rprichard
[libunwind][DWARF] Fix end of .eh_frame calculation

* When .eh_frame is located using .eh_frame_hdr (PT_GNU_EH_FRAME), the
   start of .eh_frame is known, but not the size. In this case, the
   unwinder must rely on a terminator present at the end of .eh_frame.
   Set dwarf_section_length to UINTPTR_MAX to indicate this.

* Add a new field, text_segment_length, that the FrameHeaderCache uses
   to track the size of the PT_LOAD segment indicated by dso_base.

* Compute ehSectionEnd by adding sectionLength to ehSectionStart,
   never to fdeHint.

Fixes PR46829.

Differential Revision: https://reviews.llvm.org/D87750
The file was modifiedlibunwind/src/FrameHeaderCache.hpp
The file was modifiedlibunwind/src/AddressSpace.hpp
The file was modifiedlibunwind/test/frameheadercache_test.pass.cpp
The file was modifiedlibunwind/src/DwarfParser.hpp
The file was modifiedlibunwind/src/UnwindCursor.hpp
Commit 5782ab0f52db1b1914d8ee5fe3828b0a5de9d685 by czhengsz
[MachineSink] add one more mir case - nfc
The file was addedllvm/test/CodeGen/PowerPC/sink-down-more-instructions-1.mir
Commit ebfbdebe9678f4a42ec35396eb517eefd85d2b4c by qiucofan
[PowerPC] Fix store-fptoi combine of f128 on Power8

llc would crash for (store (fptosi-f128-i32)) when -mcpu=pwr8, we should
not generate FP_TO_(S|U)INT_IN_VSR for f128 types at this time. This
patch fixes it.

Reviewed By: steven.zhang

Differential Revision: https://reviews.llvm.org/D86686
The file was modifiedllvm/test/CodeGen/PowerPC/store_fptoi.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit c140322819806cb292e079d62f2e9dbab697c08c by echristo
Use zu rather than llu format specifier for size_t (-Wformat warning fix).
The file was modifiedlldb/source/Expression/REPL.cpp
Commit 6a07f1edf8e6a172734286cd3ab5988313313d8f by dblaikie
debug_rnglists/symbolizing: reduce memory usage by not caching rnglists

This matches the debug_ranges behavior - though is currently implemented
differently. (the debug_ranges parsing was handled by creating a new
ranges parser during DIE address querying, and just destroying it after
the query - whereas the rnglists parser is a member of the DWARFUnit
currently - so the API doesn't cache anymore)

I think this could/should be improved by not parsing debug_rnglists
headers at all when dumping debug_info or symbolizing - do it the way
DWARF (roughly) intended: take the rnglists_base, add addr*index to it,
read the offset, parse the list at rnglists_base+offset. This would have
no error checking for valid index (because the number of valid indexes
is stored in the header, which has a negative offset from rnglists_base
- and is sort of only intended for use by dumpers, not by parsers going
from debug_info to a rnglist) or out of contribution bounds access
(since it wouldn't know the length of the contribution, also in the
header) - nor any error-checking that the rnglist contribution was using
the same properties as the debug_info (version, DWARF32/64, address
size, etc).
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h
Commit a895040eb022b8a621d8e85754f113d82e232ab1 by stilis
Revert "[IRSim] Adding IR Instruction Mapper"

This reverts commit b04c1a9d3127730c05e8a22a0e931a12a39528df.
The file was removedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was removedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was removedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Commit 0dd4d70ec20cebb951bd2e0e6525b056fb8dc86c by llvmgnsyncbot
[gn build] Port a895040eb02
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
Commit 11201315d5881a135faa5aa87f415ce03f99eb96 by jianzhouzh
Flush bitcode incrementally for LTO output

Bitcode writer does not flush buffer until the end by default. This is
fine to small bitcode files. When -flto,--plugin-opt=emit-llvm,-gmlt are
used, the final bitcode file is large, for example, >8G. Keeping all
data in memory consumes a lot of memory.

This change allows bitcode writer flush data to disk early when buffered
data size is above some threshold. This is only enabled when lld emits
LLVM bitcode.

One issue to address is backpatching bitcode: subblock length, function
body indexes, meta data indexes need to backfill. If buffer can be
flushed partially, we introduced raw_fd_stream that supports
read/seek/write, and enables backpatching bitcode flushed in disk.

Reviewed-by: tejohnson, MaskRay

Differential Revision: https://reviews.llvm.org/D86905
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedlld/ELF/LTO.cpp
The file was modifiedllvm/include/llvm/Bitcode/BitcodeWriter.h
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit 352a55ef06a9dcb3dfeb45302e9789da24b513c3 by jianzhouzh
Add the header of std::min

fixing
https://github.com/llvm/llvm-project/commit/11201315d5881a135faa5aa87f415ce03f99eb96
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit aec80c5cfd1bda8e630fca0f3ed2a84659f68635 by jianzhouzh
Fix the arguments of std::min

fixing
https://github.com/llvm/llvm-project/commit/11201315d5881a135faa5aa87f415ce03f99eb96
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit 57dd92746a53526bd7a86c1cfc7c0dce57a2e170 by Jonas Devlieghere
[lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC)

Smart pointers should be returned by value.
The file was modifiedlldb/source/Core/IOHandler.cpp
The file was modifiedlldb/include/lldb/Core/IOHandler.h