Changes

Summary

  1. [AArch64][SVE] NFC: Remove unnecessary if (details)
  2. [lldb/win] Fix TestIRMemoryMapWindows.test when running tests in git bash (details)
  3. [clang-cl] Add a /diasdkdir flag and make /winsysroot imply it (details)
  4. [OpenCL] Supports optional program scope global variables in C++ for OpenCL 2021 (details)
  5. [ARM][CMSE] Clear the secure fp-registers when using softfp abi. (details)
  6. [ARM] Mitigate the cve-2021-35465 security vulnurability. (details)
  7. [hwasan] print globals in symbolizer-friendly format. (details)
  8. [SLP] Add additional memory versioning tests. (details)
  9. [clang-cl] Fix test after 951f362e256 on systems where default target isn't x86_64 (details)
  10. [NewPM] Use a separate struct for ModuleMemorySanitizerPass (details)
  11. [NewPM] Use a separate struct for ModuleThreadSanitizerPass (details)
  12. [NewPM] Replace 'kasan-module' by 'asan-module<kernel>' (details)
  13. [PowerPC][AIX] Add support for varargs for complex types on AIX (details)
  14. Add a new API seek for the Cursor class in the DataExtractor.cpp (details)
  15. Add a command-line flag to control the Swift extended async  frame info. (details)
  16. Increase expected line number for ExtDebugInfo.cpp (details)
  17. [clangd] Dont work on diags if we are not going to emit (details)
  18. Fix vtbl field addr space (details)
  19. [clangd] PreamblePatch should be no-op if includes arent patched (details)
  20. Remove trailing whitespace in ASTReaderDecl.cpp (details)
  21. Fix warning on `llvm-else-after-return`. NFC. (details)
  22. [llvm] Use drop_begin (NFC) (details)
  23. Add a new frontend flag `-fswift-async-fp={auto|always|never}` (details)
  24. [test] Fix test failure in Clang :: Lexer/char-escapes-delimited.c (details)
  25. [libcxx][libcxxabi] CMAKE_REQUIRED_FLAGS is a string, not a list (details)
  26. [LLVM][CMake][NFC] Resolve FIXME: Rename LLVM_CMAKE_PATH to LLVM_CMAKE_DIR throughout the project (details)
  27. [OpenMP] Support construct trait set for Clang (details)
  28. [mlir][Linalg] Cleanup doc and improve logging and readability in ComprehensiveBufferize.cpp - NFC (details)
  29. [FuncSpec] Add force flag to test case to trigger the transform. NFC. (details)
  30. [mlir][sparse] add more asserts to sparse support lib (details)
  31. Removing some spurious whitespace; NFC (details)
  32. [OpenMP] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off build after D109635 (details)
  33. Support Unicode 14 identifiers (details)
  34. [llvm-profgen] Use context-sensitive byte size cost for preinliner decisions by default (details)
  35. [NFC] Added tests for llvm.powi optimizations (details)
  36. [InstCombine] Added llvm.powi optimizations (details)
  37. docs: correct SPHNIX document reference (details)
  38. [SimplifyCFG] Add bonus when seeing vector ops to branch fold to common dest (details)
  39. [AMDGPU] Inline non-kernel functions using extern lds (details)
  40. [lldb] Remove SBExecutionContext::reset (NFC) (details)
  41. [LLD] Remove global state in lld/COFF (details)
  42. [RISCV] Select (srl (sext_inreg X, i32), uimm5) to SRAIW if only lower 32 bits are used. (details)
  43. [AIX][ZOS] Disable LIT tests on AIX and z/OS due to lack of Objective-C support (details)
  44. [CUDA] Pass ExecConfig through BuildCallToMemberFunction (details)
  45. [lld] Add test to check for timer output (details)
  46. [mlir][tosa] Relax ranked constraint on quantization builder (details)
  47. [fuzzer][fuchsia] Close exception channel before exiting. (details)
  48. Temporarily revert "[LLD] Remove global state in lld/COFF" and "[lld] Add test to (details)
  49. [IR] Return AAMDNodes from Instruction::getMetadata() (NFC) (details)
  50. autogen a SCEV test for ease of update (details)
  51. [MemProf] Don't instrument stack accesses unless requested (details)
  52. [OpenMP] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off build after D109635 (details)
  53. [lldb] Skip TestAppleSimulatorOSType if json parsing fails (details)
Commit 17f1ccc7590872a4fba6b2194f5fa1203b893ba4 by cullen.rhodes
[AArch64][SVE] NFC: Remove unnecessary if
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
Commit 99ece01a0f571f0df129a55bf679f7fbd0b01b75 by thakis
[lldb/win] Fix TestIRMemoryMapWindows.test when running tests in git bash

lit.util.which('link') picks up the wrong link.exe in git bash, leading
to this error:

  # command stderr:
  /usr/bin/link: extra operand '/LIBPATH:C:\\Progra....'
  Try '/usr/bin/link --help' for more information.

Instead, assume that link.exe is next to cl.exe.

Differential Revision: https://reviews.llvm.org/D109832
The file was modifiedlldb/test/Shell/helper/toolchain.py (diff)
Commit 951f362e2560fe1c9c05f487107fd9882d45d867 by thakis
[clang-cl] Add a /diasdkdir flag and make /winsysroot imply it

D109708 added "DIA SDK" to our win sysroot for hermetic builds
that use LLVM_ENABLE_DIA_SDK. But the build system still has to
manually pass flags pointing to it.

Since we have a /winsysroot flag, make it look at DIA SDK in
the sysroot.

With this, the following is enough to compile the DIA2Dump example:

out\gn\bin\clang-cl ^
  "sysroot\DIA SDK\Samples\DIA2Dump\DIA2Dump.cpp" ^
  "sysroot\DIA SDK\Samples\DIA2Dump\PrintSymbol.cpp" ^
  "sysroot\DIA SDK\Samples\DIA2Dump\regs.cpp" ^
  /diasdkdir "sysroot\DIA SDK" ^
  ole32.lib oleaut32.lib diaguids.lib

Differential Revision: https://reviews.llvm.org/D109828
The file was modifiedclang/test/Driver/cl-sysroot.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
Commit 054e331d9dbd3ce98b19625b75ba38dd9ebc34cc by Justas.Janickas
[OpenCL] Supports optional program scope global variables in C++ for OpenCL 2021

Adds support for macro `__opencl_c_program_scope_global_variables`
in C++ for OpenCL 2021 enabling a respective optional core feature
from OpenCL 3.0.

This change aims to achieve compatibility between C++ for OpenCL
2021 and OpenCL 3.0.

Differential Revision: https://reviews.llvm.org/D109305
The file was modifiedclang/test/SemaOpenCL/storageclass.cl (diff)
The file was modifiedclang/include/clang/Basic/OpenCLOptions.h (diff)
Commit 61f25daa8d1b69dd5138facd5d57a8e3dfa0c5cc by alexandros.lamprineas
[ARM][CMSE] Clear the secure fp-registers when using softfp abi.

When expanding the non-secure call instruction we are emiting code
to clear the secure floating-point registers only if the targeted
architecture has floating-point support. The potential problem is
when the source code containing non-secure calls are built with
-mfloat-abi=soft but some other part of the system has been built
with -mfloat-abi=softfp (soft and softfp are compatible as they use
the same procedure calling standard). In this case floating-point
registers could leak to non-secure state as the non-secure won't
have cleared them assuming no floating point has been used.

Differential Revision: https://reviews.llvm.org/D109153
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp (diff)
The file was modifiedllvm/test/CodeGen/ARM/cmse.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/cmse-clear.ll (diff)
Commit 1bd5ea968e9262a09512a64bca1624818640bc5b by alexandros.lamprineas
[ARM] Mitigate the cve-2021-35465 security vulnurability.

Recently a vulnerability issue is found in the implementation of VLLDM
instruction in the Arm Cortex-M33, Cortex-M35P and Cortex-M55. If the
VLLDM instruction is abandoned due to an exception when it is partially
completed, it is possible for subsequent non-secure handler to access
and modify the partial restored register values. This vulnerability is
identified as CVE-2021-35465.

The mitigation sequence varies between v8-m and v8.1-m as follows:

v8-m.main
---------
mrs        r5, control
tst        r5, #8       /* CONTROL_S.SFPA */
it         ne
.inst.w    0xeeb00a40   /* vmovne s0, s0 */
1:
vlldm      sp           /* Lazy restore of d0-d16 and FPSCR. */

v8.1-m.main
-----------
vscclrm    {vpr}        /* Clear VPR. */
vlldm      sp           /* Lazy restore of d0-d16 and FPSCR. */

More details on
developer.arm.com/support/arm-security-updates/vlldm-instruction-security-vulnerability

Differential Revision: https://reviews.llvm.org/D109157
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h (diff)
The file was modifiedllvm/test/CodeGen/ARM/cmse-vlldm-no-reorder.mir (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was addedclang/test/Driver/arm-cmse-cve-2021-35465.c
The file was modifiedllvm/lib/Target/ARM/ARM.td (diff)
The file was addedllvm/test/CodeGen/ARM/cmse-cve-2021-35465-return.ll
The file was addedllvm/test/CodeGen/ARM/cmse-cve-2021-35465.ll
The file was modifiedclang/docs/ClangCommandLineReference.rst (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp (diff)
Commit 95ba9f957aa9887c0c1d41948529cfe1fc74d889 by fmayer
[hwasan] print globals in symbolizer-friendly format.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D109698
The file was modifiedcompiler-rt/test/hwasan/TestCases/global.c (diff)
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp (diff)
Commit 2f97ff8e7bcf35595682b53fce8ecb7b4aabee6d by flo
[SLP] Add additional memory versioning tests.
The file was addedllvm/test/Transforms/SLPVectorizer/AArch64/memory-runtime-checks-in-loops.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/memory-runtime-checks.ll (diff)
Commit 05ea321f716390abda1632cca71dc9441662cf62 by thakis
[clang-cl] Fix test after 951f362e256 on systems where default target isn't x86_64
The file was modifiedclang/test/Driver/cl-sysroot.cpp (diff)
Commit ab41eef9aca3ad5e9321e045a57d36e288a75d17 by bjorn.a.pettersson
[NewPM] Use a separate struct for ModuleMemorySanitizerPass

Split MemorySanitizerPass into MemorySanitizerPass (as a function
pass) and ModuleMemorySanitizerPass (as a module pass).
Main reason is to make sure that we have a unique mapping from
ClassName to PassName in the new passmanager framework, making it
possible to correctly identify the passes when dealing with options
such as -print-after and -print-pipeline-passes.

This is a follow-up to D105006 and D105007.
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was modifiedllvm/test/Other/new-pm-print-pipeline.ll (diff)
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp (diff)
Commit 8f8616655c4d643d73601c6bf4b492fb9d3b52c8 by bjorn.a.pettersson
[NewPM] Use a separate struct for ModuleThreadSanitizerPass

Split ThreadSanitizerPass into ThreadSanitizerPass (as a function
pass) and ModuleThreadSanitizerPass (as a module pass).
Main reason is to make sure that we have a unique mapping from
ClassName to PassName in the new passmanager framework, making it
possible to correctly identify the passes when dealing with options
such as -print-after and -print-pipeline-passes.

This is a follow-up to D105006 and D105007.
The file was modifiedllvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp (diff)
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
Commit d9fc3d879e6da153f9b892642e2fe28bed6254a7 by bjorn.a.pettersson
[NewPM] Replace 'kasan-module' by 'asan-module<kernel>'

Change the asan-module pass into a MODULE_PASS_WITH_PARAMS in the
pass registry, and add a single parameter called 'kernel' that
can be set instead of having a special pass name 'kasan-module'
to trigger that special pass config.

Main reason is to make sure that we have a unique mapping from
ClassName to PassName in the new passmanager framework, making it
possible to correctly identify the passes when dealing with options
such as -print-after and -print-pipeline-passes.

This is a follow-up to D105006 and D105007.
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h (diff)
The file was modifiedllvm/lib/Passes/PassBuilder.cpp (diff)
The file was modifiedllvm/lib/Passes/PassRegistry.def (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp (diff)
Commit 1b0a71c5fc052322a45a8cb9a9fcaa2c36105b89 by zarko
[PowerPC][AIX] Add support for varargs for complex types on AIX

Remove the previous error and add support for special handling of small
complex types as in PPC64 ELF ABI. As in, generate code to load from
varargs location and pack it in a temp variable, then return a pointer to
the struct.

Reviewed By: sfertile

Differential Revision: https://reviews.llvm.org/D106393
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp (diff)
The file was addedclang/test/CodeGen/aix32-complex-varargs.c
The file was modifiedclang/test/CodeGen/ppc64-varargs-complex.c (diff)
Commit baa18ee63e83ee534a5844e6219665ce42b57707 by zhijian
Add a new API seek for the Cursor class in the DataExtractor.cpp

Summary:

add a new API seek for the Cursor class in the DataExtractor.cpp

Reviewers: James Henderson, Fangrui Song

Differential Revision: https://reviews.llvm.org/D109603
The file was modifiedllvm/include/llvm/Support/DataExtractor.h (diff)
The file was modifiedllvm/unittests/Support/DataExtractorTest.cpp (diff)
Commit a773db7d76222ccf4365979e01dd582fd2b5b3df by aschwaighofer
Add a command-line flag to control the Swift extended async  frame info.

Introduce a new command-line flag `-swift-async-fp={auto|always|never}`
that controls how code generation sets the Swift extended async frame
info bit. There are three possibilities:

* `auto`: which determines how to set the bit based on deployment target, either
statically or dynamically via `swift_async_extendedFramePointerFlags`.
* `always`: the default, always set the bit statically, regardless of deployment
target.
* `never`: never set the bit, regardless of deployment target.

Patch by Doug Gregor <dgregor@apple.com>

Reviewed By: doug.gregor

Differential Revision: https://reviews.llvm.org/D109392
The file was modifiedllvm/test/CodeGen/X86/swift-dynamic-async-frame.ll (diff)
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/swift-dynamic-async-frame.ll (diff)
The file was modifiedllvm/include/llvm/Target/TargetOptions.h (diff)
The file was modifiedllvm/include/llvm/CodeGen/CommandFlags.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp (diff)
Commit 45a738363ee39754a0e93d9f779bda2cad83fa18 by Jake.Egan
Increase expected line number for ExtDebugInfo.cpp

This patch increases the expected line number for one of the checks so that it doesn't have to be updated for any added/removed lines in the RUN section.

This change is in preparation for the following patch: https://reviews.llvm.org/D109060

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D109541
The file was modifiedclang/test/Modules/ExtDebugInfo.cpp (diff)
Commit ea79b77da3eeba926e16c3dd8a4f6626c139e185 by kadircet
[clangd] Dont work on diags if we are not going to emit

Don't install clang-tidy checks and IncludeFixer or process clang diags
when they're going to be dropped. Also disables analysis for some
warnings completely.

Differential Revision: https://reviews.llvm.org/D109884
The file was modifiedclang-tools-extra/clangd/unittests/ParsedASTTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ParsedAST.cpp (diff)
Commit abe8b354e37d8d6a163a6402d8e68ddcfc462dfc by Yaxun.Liu
Fix vtbl field addr space

Storing the vtable field of an object should use the same address space as
the this pointer. Currently it is assumed to be addr space 0 but this may not
be true.

This assumption (added in 054cc3b1b469de4b0cb25d1dc3af43c679c5dc44) caused
issues for the out-of-tree CHERI targets.

Reviewed by: John McCall, Alexander Richardson

Differential Revision: https://reviews.llvm.org/D109841
The file was modifiedclang/lib/CodeGen/CGClass.cpp (diff)
Commit 64fe0458866d7bcadacb776a1fa7d827ba8ab916 by kadircet
[clangd] PreamblePatch should be no-op if includes arent patched

Don't create a useless functional patch with only filename in it when
there is only include directives to be patched but they're not
requested.

Differential Revision: https://reviews.llvm.org/D109880
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/PreambleTests.cpp (diff)
Commit 720766a50cab7a143f0aa04e3ae344769072511d by erich.keane
Remove trailing whitespace in ASTReaderDecl.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp (diff)
Commit ffa5c3a555a8d5d9931d1ae6d6c9e873ff8c5510 by michael.hliao
Fix warning on `llvm-else-after-return`. NFC.
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp (diff)
Commit cfc74024195e3be44d023a505d80b7e19f4041fc by kazu
[llvm] Use drop_begin (NFC)
The file was modifiedllvm/lib/TextAPI/TextStub.cpp (diff)
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/lib/Target/MSP430/MSP430FrameLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AVR/AVRFrameLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TailDuplicator.cpp (diff)
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZFrameLowering.cpp (diff)
Commit f670c5aeeef09cd7b88e72cf8c1f2505d044a8ea by aschwaighofer
Add a new frontend flag `-fswift-async-fp={auto|always|never}`

Summary:
Introduce a new frontend flag `-fswift-async-fp={auto|always|never}`
that controls how code generation sets the Swift extended async frame
info bit. There are three possibilities:

* `auto`: which determines how to set the bit based on deployment target, either
statically or dynamically via `swift_async_extendedFramePointerFlags`.
* `always`: default, always set the bit statically, regardless of deployment
target.
* `never`: never set the bit, regardless of deployment target.

Differential Revision: https://reviews.llvm.org/D109451
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h (diff)
The file was addedclang/test/CodeGen/swift-async-extended-fp.c
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
Commit 003fed8269b3f6d2b1618b670fc73d28972999e4 by matthew.voss
[test] Fix test failure in Clang :: Lexer/char-escapes-delimited.c

Specify the C and C++ standards explicitly for this test. This avoids
failures for drivers that default to older standards.

Differential Revision: https://reviews.llvm.org/D109857
The file was modifiedclang/test/Lexer/char-escapes-delimited.c (diff)
Commit 1613ab8a4a3e6f8ab74fadd7e9a2dfe2219e3b43 by koraq
[libcxx][libcxxabi] CMAKE_REQUIRED_FLAGS is a string, not a list

When `libcxx` or `libcxxabi` is built with `-DLLVM_USE_SANITIZER=MemoryWithOrigins`
**and** `-DLIBCXX[ABI]_USE_COMPILER_RT=ON`, all of the `LIBCXX[ABI]_SUPPORTS_*_FLAG`
checks fail, since the value of `CMAKE_REQUIRED_FLAGS` is not set correctly.

Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=51774

Reviewed By: #libc, #libc_abi, compnerd, ldionne

Differential Revision: https://reviews.llvm.org/D109342
The file was modifiedlibcxxabi/cmake/config-ix.cmake (diff)
The file was modifiedlibcxx/cmake/config-ix.cmake (diff)
Commit a2c319fdc6b35ae6d8578459f07c89042775e5ec by koraq
[LLVM][CMake][NFC] Resolve FIXME: Rename LLVM_CMAKE_PATH to LLVM_CMAKE_DIR throughout the project

This way, we do not need to set LLVM_CMAKE_PATH to LLVM_CMAKE_DIR when (NOT LLVM_CONFIG_FOUND)

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D107717
The file was modifiedclang/CMakeLists.txt (diff)
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTUtils.cmake (diff)
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTMockLLVMCMakeConfig.cmake (diff)
The file was modifiedflang/CMakeLists.txt (diff)
The file was modifiedlibunwind/CMakeLists.txt (diff)
The file was modifiedllvm/include/llvm/Support/CMakeLists.txt (diff)
The file was modifiedllvm/CMakeLists.txt (diff)
The file was modifiedlld/Common/CMakeLists.txt (diff)
The file was modifiedlldb/cmake/modules/LLDBStandalone.cmake (diff)
The file was modifiedclang/lib/Basic/CMakeLists.txt (diff)
The file was modifiedlibcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake (diff)
The file was modifiedlld/CMakeLists.txt (diff)
The file was modifiedruntimes/CMakeLists.txt (diff)
The file was modifiedlldb/source/CMakeLists.txt (diff)
Commit 976d474bec357d7712884ce4691be45d247325bd by cchen
[OpenMP] Support construct trait set for Clang

This patch supports construct trait set selector by using the existed
declare variant infrastructure inside `OMPContext` and simd selector is
currently not supported. The goal of this patch is to pass the declare variant
test inside sollve test suite.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D109635
The file was modifiedclang/lib/AST/OpenMPClause.cpp (diff)
The file was modifiedclang/test/OpenMP/declare_variant_ast_print.c (diff)
The file was addedclang/test/OpenMP/declare_variant_construct_codegen_1.c
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/test/OpenMP/declare_variant_ast_print.cpp (diff)
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp (diff)
The file was modifiedclang/include/clang/AST/OpenMPClause.h (diff)
The file was modifiedclang/test/OpenMP/declare_variant_messages.c (diff)
Commit ee2e414dde4f2ea2c758d23cedb07b767b8fd891 by nicolas.vasilache
[mlir][Linalg] Cleanup doc and improve logging and readability in ComprehensiveBufferize.cpp - NFC
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp (diff)
Commit 2a1ac2e318c60955aecefb493e4707f0d609c35d by sjoerd.meijer
[FuncSpec] Add force flag to test case to trigger the transform. NFC.
The file was modifiedllvm/test/Transforms/FunctionSpecialization/function-specialization-constant-expression.ll (diff)
Commit 860cbeb15992a385d9a3fffb3f1a8443cc99b663 by ajcbik
[mlir][sparse] add more asserts to sparse support lib

We are having issues running the integration test of the sparse compiler
on AArch64 (crashing in the lib). This revision adds more assertions.

Reviewed By: jsetoain

Differential Revision: https://reviews.llvm.org/D109861
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp (diff)
Commit aefb81a33a6d44048186010677eb1c0e6c6cac12 by aaron
Removing some spurious whitespace; NFC
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp (diff)
Commit c5f480fcbec04f46a9cfcad08914665ff83d8d8a by i
[OpenMP] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off build after D109635
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
Commit afb6223bc53034973379863d08cbee322149569e by aaron
Support Unicode 14 identifiers

This update the UAX tables to support new Unicode 14 identifiers.
The file was modifiedclang/test/Lexer/unicode.c (diff)
The file was modifiedclang/lib/Lex/UnicodeCharSets.h (diff)
Commit 446e21623c285f335714297aa14f13c21b298931 by aktoon
[llvm-profgen] Use context-sensitive byte size cost for preinliner decisions by default

Turn on `use-context-cost-for-preinliner` to use context-sensitive byte size cost for preinliner decisions by default.

This is a more accurate proxy of inline cost than profile size. We tested on our large workload that it delivers measureable CPU improvement.

Differential Revision: https://reviews.llvm.org/D109893
The file was modifiedllvm/tools/llvm-profgen/CSPreInliner.cpp (diff)
The file was modifiedllvm/test/tools/llvm-profgen/cs-preinline-cost.test (diff)
Commit c0afb0092423a534d6a4f81a233845ef65f93930 by Dávid Bolvanský
[NFC] Added tests for llvm.powi optimizations
The file was addedllvm/test/Transforms/InstCombine/powi.ll
Commit a4a426c9e0da06b9ff4c58d3a15a1e789efebfb6 by Dávid Bolvanský
[InstCombine] Added llvm.powi optimizations

If power is even:
powi(-x, p) -> powi(x, p)
powi(fabs(x), p) -> powi(x, p)
powi(copysign(x, y), p) -> powi(x, p)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/powi.ll (diff)
Commit f1e8ceb3054a02f4225ff7ab74cde10b70826707 by Saleem Abdulrasool
docs: correct SPHNIX document reference

The trailing `>` was missing, which resulted in the reference not being
processed properly.
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst (diff)
Commit d49cb5b3035b02ffdd0cc8cf4c69c6e5369558f6 by aeubanks
[SimplifyCFG] Add bonus when seeing vector ops to branch fold to common dest

This makes some tests in vector-reductions-logical.ll more stable when
applying D108837.

The cost of branching is higher when vector ops are involved due to
potential SLP transformations.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D108935
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp (diff)
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll (diff)
Commit 106959acc15c4b98e252af0c43406aa9342a2e05 by Vang.Thao
[AMDGPU] Inline non-kernel functions using extern lds

In https://reviews.llvm.org/D100481, forceful inline of all non-kernel
functions using lds was disabled since AMDGPULowerModuleLDS pass now handles
static lds. However that pass does not handle extern lds so non-kernel
functions using extern lds must sill be inline.

Reviewed By: hsmhsm, arsenm

Differential Revision: https://reviews.llvm.org/D109773
The file was modifiedllvm/test/CodeGen/AMDGPU/hip.extern.shared.array.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp (diff)
Commit c96d45700f6d3cb2b8d1972bb8de03522b3ff8d7 by Jonas Devlieghere
[lldb] Remove SBExecutionContext::reset (NFC)

This is a protected function that's not implemented.
The file was modifiedlldb/include/lldb/API/SBExecutionContext.h (diff)
Commit b4fa71eed34d967195514fe9b0a5211fca2bc5bc by akhuang
[LLD] Remove global state in lld/COFF

This patch removes globals from the lldCOFF library, by moving globals
into a context class (COFFLinkingContext) and passing it around wherever
it's needed.

See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for
context about removing globals from LLD.

I also haven't moved the `driver` or `config` variables yet.

Differential Revision: https://reviews.llvm.org/D109634
The file was modifiedlld/Common/Timer.cpp (diff)
The file was modifiedlld/COFF/SymbolTable.cpp (diff)
The file was modifiedlld/COFF/Driver.h (diff)
The file was modifiedlld/COFF/Chunks.h (diff)
The file was addedlld/COFF/COFFLinkerContext.cpp
The file was modifiedlld/COFF/CallGraphSort.h (diff)
The file was modifiedlld/COFF/MapFile.cpp (diff)
The file was modifiedlld/COFF/DLL.h (diff)
The file was modifiedlld/COFF/MarkLive.h (diff)
The file was modifiedlld/COFF/Chunks.cpp (diff)
The file was modifiedlld/COFF/MinGW.h (diff)
The file was modifiedlld/COFF/DLL.cpp (diff)
The file was modifiedlld/COFF/CallGraphSort.cpp (diff)
The file was modifiedlld/COFF/InputFiles.cpp (diff)
The file was modifiedlld/COFF/InputFiles.h (diff)
The file was modifiedlld/COFF/Writer.cpp (diff)
The file was modifiedlld/COFF/LTO.cpp (diff)
The file was modifiedlld/COFF/DebugTypes.cpp (diff)
The file was modifiedlld/COFF/LLDMapFile.h (diff)
The file was modifiedlld/COFF/MapFile.h (diff)
The file was modifiedlld/COFF/SymbolTable.h (diff)
The file was modifiedlld/COFF/LTO.h (diff)
The file was modifiedlld/COFF/MarkLive.cpp (diff)
The file was modifiedlld/COFF/PDB.cpp (diff)
The file was modifiedllvm/utils/gn/secondary/lld/COFF/BUILD.gn (diff)
The file was modifiedlld/COFF/ICF.h (diff)
The file was modifiedlld/COFF/Driver.cpp (diff)
The file was modifiedlld/COFF/PDB.h (diff)
The file was modifiedlld/COFF/TypeMerger.h (diff)
The file was modifiedlld/COFF/CMakeLists.txt (diff)
The file was modifiedlld/COFF/Writer.h (diff)
The file was modifiedlld/include/lld/Common/Timer.h (diff)
The file was modifiedlld/COFF/MinGW.cpp (diff)
The file was modifiedlld/COFF/LLDMapFile.cpp (diff)
The file was addedlld/COFF/COFFLinkerContext.h
The file was modifiedlld/COFF/ICF.cpp (diff)
The file was modifiedlld/COFF/DebugTypes.h (diff)
Commit 73e5b9ea90ba857dd7f0f6b79dc39dfc90ad66ea by craig.topper
[RISCV] Select (srl (sext_inreg X, i32), uimm5) to SRAIW if only lower 32 bits are used.

SimplifyDemandedBits can turn srl into sra if the bits being shifted
in aren't demanded. This patch can recover the original sra in some cases.

I've renamed the tablegen class for detecting W users since the "overflowing operator"
term I originally borrowed from Operator.h does not include srl.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D109162
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/srem-lkk.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoM.td (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64i-exhaustive-w-insts.ll (diff)
Commit 22f01cd4fc5d2a02a156722e1dab0398fc860e74 by Jake.Egan
[AIX][ZOS] Disable LIT tests on AIX and z/OS due to lack of Objective-C support

AIX and z/OS lack Objective-C support, so mark these tests as unsupported for AIX and z/OS.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D109060
The file was modifiedclang/test/PCH/objc_literals.m (diff)
The file was modifiedclang/test/Modules/ExtDebugInfo.m (diff)
The file was modifiedclang/test/Modules/merge-record-definition-visibility.m (diff)
The file was modifiedclang/test/Import/objc-param-decl/test.m (diff)
The file was modifiedclang/test/PCH/irgen-rdar13114142.mm (diff)
The file was modifiedclang/test/Import/objc-method/test.m (diff)
The file was addedclang/test/CodeGenObjC/lit.local.cfg
The file was modifiedclang/test/Modules/DebugInfoNamespace.cpp (diff)
The file was modifiedclang/test/PCH/objc_literals.mm (diff)
The file was modifiedclang/test/Modules/ModuleModuleDebugInfo.cpp (diff)
The file was modifiedclang/test/Modules/autolinkTBD.m (diff)
The file was modifiedclang/test/Modules/module_file_info.m (diff)
The file was modifiedclang/test/PCH/externally-retained.m (diff)
The file was modifiedclang/test/PCH/objc_container.m (diff)
The file was modifiedclang/test/Import/forward-declared-objc-class/test.m (diff)
The file was modifiedclang/test/Modules/ModuleDebugInfoDwoId.cpp (diff)
The file was modifiedclang/test/Modules/use-exportas-for-link.m (diff)
The file was modifiedclang/test/Modules/DebugInfoTransitiveImport.m (diff)
The file was modifiedclang/test/Modules/cxx-irgen.cpp (diff)
The file was modifiedclang/test/Import/objc-arc/test-cleanup-object.m (diff)
The file was modifiedclang/test/Import/objc-definitions-in-expression/test.m (diff)
The file was modifiedclang/test/PCH/objcxx-ivar-class.mm (diff)
The file was modifiedclang/test/Import/objc-try-catch/test.m (diff)
The file was modifiedclang/test/Modules/merge-record-definition.m (diff)
The file was modifiedclang/test/Modules/objc-initializer.m (diff)
The file was modifiedclang/test/Modules/merge-record-definition-nonmodular.m (diff)
The file was modifiedclang/test/Modules/direct-module-import.m (diff)
The file was modifiedclang/test/PCH/pending-ids.m (diff)
The file was addedclang/test/CodeGenObjCXX/lit.local.cfg
The file was modifiedclang/test/Import/objc-autoreleasepool/test.m (diff)
The file was modifiedclang/test/Modules/pch-used.m (diff)
The file was modifiedclang/test/Modules/debug-info-moduleimport.m (diff)
The file was modifiedclang/test/Modules/autolink.m (diff)
The file was modifiedclang/test/Modules/ExtDebugInfo.cpp (diff)
Commit 6b20ea6963561f2c91490c0993390b7f2ff8f71c by tra
[CUDA] Pass ExecConfig through BuildCallToMemberFunction

Otherwise, we fail to compile calls to CUDA kernels that are static members.

Differential Revision: https://reviews.llvm.org/D108787
The file was modifiedclang/test/SemaCUDA/kernel-call.cu (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
Commit e03c7e367adb8f228332e3c2ef8f45484597b719 by akhuang
[lld] Add test to check for timer output

This test checks that timers are working and printing as expected.

I also seem to have changed the order of the timers in my globals refactoring
patch, so I fixed it here.

Differential Revision: https://reviews.llvm.org/D109904
The file was modifiedlld/COFF/COFFLinkerContext.h (diff)
The file was modifiedlld/COFF/COFFLinkerContext.cpp (diff)
The file was addedlld/test/COFF/timers.ll
Commit 8662a2f2081c2a6bf51a490caa045648c88dd230 by rob.suderman
[mlir][tosa] Relax ranked constraint on quantization builder

TosaOp defintion had an artificial constraint that the input/output types
needed to be ranked to invoke the quantization builder. This is correct as an
unranked tensor could still be quantized.

Reviewed By: NatashaKnk

Differential Revision: https://reviews.llvm.org/D109863
The file was modifiedmlir/lib/Dialect/Tosa/IR/TosaOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/Tosa/Utils/QuantUtils.cpp (diff)
Commit 5de8c7f1387dd5e2ad3b79a145baf41b21fa4952 by mvanotti
[fuzzer][fuchsia] Close exception channel before exiting.

On Fuchsia, killing or exiting a process that has a thread listening to its own process's debugger exception channel can hang. Zircon may kill all the threads, send a synthetic exceptions to debugger, and wait for the debugger to have received them. This means the thread listening to the debug exception channel may be killed even as Zircon is waiting for that thread to drain the exception channel, and the process can become stuck in a half-dead state.

This situation is "weird" as it only arises when a process is trying to debug itself. Unfortunately, this is exactly the scenario for libFuzzer on Fuchsia: FuzzerUtilFuchsia spawns a crash-handling thread that acts like a debugger in order to be able to rewrite the crashed threads stack and resume them into libFuzzer's usual POSIX signal handlers. In practice, approximately 25% of fuzzers appear to hang on exit, after generating output and artifacts. These processes hang around until the platform is torn done, which is typically a ClusterFuzz VM. Thus, real-world impact has been somewhat mitigated. The issue should still be resolved for local users, though.

This change improves the behavior of exit() in libFuzzer by adding an atexit handler which closes an event shared with the crash handling thread. This signals to the crash handler that it should close the exception channel and be joined before the process actually exits.

Reviewed By: charco

Differential Revision: https://reviews.llvm.org/D109258
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp (diff)
Commit a2fd05ada9030eab2258fff25e77a05adccae128 by akhuang
Temporarily revert "[LLD] Remove global state in lld/COFF" and "[lld] Add test to
check for timer output"

Seems to be causing a number of asan test failures.

This reverts commit b4fa71eed34d967195514fe9b0a5211fca2bc5bc
and e03c7e367adb8f228332e3c2ef8f45484597b719.
The file was modifiedlld/COFF/CMakeLists.txt (diff)
The file was modifiedlld/COFF/ICF.cpp (diff)
The file was modifiedlld/COFF/DebugTypes.h (diff)
The file was modifiedlld/COFF/InputFiles.h (diff)
The file was modifiedlld/include/lld/Common/Timer.h (diff)
The file was modifiedlld/COFF/CallGraphSort.h (diff)
The file was modifiedlld/COFF/LLDMapFile.h (diff)
The file was modifiedlld/COFF/MapFile.h (diff)
The file was modifiedlld/COFF/MinGW.h (diff)
The file was modifiedlld/COFF/Chunks.cpp (diff)
The file was modifiedlld/COFF/DLL.cpp (diff)
The file was modifiedlld/COFF/Driver.cpp (diff)
The file was removedlld/test/COFF/timers.ll
The file was modifiedlld/COFF/TypeMerger.h (diff)
The file was removedlld/COFF/COFFLinkerContext.h
The file was modifiedlld/COFF/DLL.h (diff)
The file was modifiedlld/COFF/PDB.cpp (diff)
The file was removedlld/COFF/COFFLinkerContext.cpp
The file was modifiedlld/COFF/CallGraphSort.cpp (diff)
The file was modifiedlld/COFF/LLDMapFile.cpp (diff)
The file was modifiedlld/COFF/MarkLive.h (diff)
The file was modifiedlld/COFF/MinGW.cpp (diff)
The file was modifiedlld/COFF/PDB.h (diff)
The file was modifiedlld/Common/Timer.cpp (diff)
The file was modifiedlld/COFF/MapFile.cpp (diff)
The file was modifiedlld/COFF/Writer.h (diff)
The file was modifiedlld/COFF/LTO.h (diff)
The file was modifiedlld/COFF/Chunks.h (diff)
The file was modifiedlld/COFF/Driver.h (diff)
The file was modifiedllvm/utils/gn/secondary/lld/COFF/BUILD.gn (diff)
The file was modifiedlld/COFF/LTO.cpp (diff)
The file was modifiedlld/COFF/SymbolTable.cpp (diff)
The file was modifiedlld/COFF/InputFiles.cpp (diff)
The file was modifiedlld/COFF/ICF.h (diff)
The file was modifiedlld/COFF/MarkLive.cpp (diff)
The file was modifiedlld/COFF/SymbolTable.h (diff)
The file was modifiedlld/COFF/Writer.cpp (diff)
The file was modifiedlld/COFF/DebugTypes.cpp (diff)
Commit 0fc624f029f568e91caf74d90abc5d8d971151c2 by nikita.ppv
[IR] Return AAMDNodes from Instruction::getMetadata() (NFC)

getMetadata() currently uses a weird API where it populates a
structure passed to it, and optionally merges into it. Instead,
we can return the AAMDNodes and provide a separate merge() API.
This makes usages more compact.

Differential Revision: https://reviews.llvm.org/D109852
The file was modifiedllvm/include/llvm/IR/Instruction.h (diff)
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp (diff)
The file was modifiedllvm/include/llvm/IR/Metadata.h (diff)
The file was modifiedllvm/lib/Analysis/TypeBasedAliasAnalysis.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp (diff)
The file was modifiedpolly/lib/Analysis/ScopDetection.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (diff)
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp (diff)
Commit f79ce5875f560528c801c404b1be1ce3e203c2e1 by listmail
autogen a SCEV test for ease of update
The file was modifiedllvm/test/Analysis/ScalarEvolution/trip-count-implied-addrec.ll (diff)
Commit 88cb3e2cb6fe80dec27d8ed3cad0f63555470910 by tejohnson
[MemProf] Don't instrument stack accesses unless requested

Skip stack accesses unless requested, as the memory profiler runtime
does not currently look at or report accesses for these addresses.

Differential Revision: https://reviews.llvm.org/D109868
The file was addedllvm/test/Instrumentation/HeapProfiler/stack.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/MemProfiler.cpp (diff)
Commit 45a8608d7ba4519ce890b74db20087ba22343c50 by i
[OpenMP] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off build after D109635
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
Commit 47dd1f642846d476e3d789f4aa941699dc0ed3fe by augusto2112
[lldb] Skip TestAppleSimulatorOSType if json parsing fails

xcodebuild, which is invoked by the apple_simulator_test decorator, may
may return a successful status even if it was unable to run due to the
authorization agent denying it. This causes the TestAppleSimulatorOSType
to run when it shouldn't, and throw an excpection when parsing the JSON
that lists the simulators available. Wrap the json parsing in a
try/except block and if it fails, skip the ttest.

Differential Revision: https://reviews.llvm.org/D109336
The file was modifiedlldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py (diff)