FailedChanges

Summary

  1. [mlir][Linalg] Print both types for linalg.transpose (details)
  2. [CodeGenPrepare] Simplify code. NFCI. (details)
  3. [AMDGPU] Make movreld-bug test case more robust (details)
  4. [clangd][NFC] Get rid of an `else after return` (details)
  5. BasicTTIImpl.h - remove unused MCSchedule.h include. NFCI. (details)
  6. [X86] Keep variables from getDataLayout/getDebugLoc calls as const reference. NFCI. (details)
  7. [clang][aarch64] Fix ILP32 ABI for arm_sve_vector_bits (details)
  8. [flang][driver] Add the new flang compiler and frontend drivers (details)
  9. [clang][aarch64] Fix mangling of bfloat16 neon vectors (details)
  10. [DFSan] XFail a test that's suffering too much optimization (details)
  11. PluginLoader.h - only include CommandLine.h if required. NFCI. (details)
  12. Attributor.h - remove unused includes. NFCI. (details)
  13. [IPO] Remove unnecessary Module.h includes. NFCI. (details)
  14. [LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests (details)
  15. [analyzer][MacroExpansion] Add a few dumps functions (details)
  16. [analyzer][MacroExpansion][NFC] Fix incorrectly calling parameters arguments (details)
  17. [NFC] Fix the signature and definition of findByPrefix (details)
  18. [analyzer][MacroExpansion][NFC] Fix a missing test output check (details)
  19. [mlir][Linalg] Refactor StructuredOpInterface - NFC (details)
  20. [analyzer][MacroExpansion] Fix a crash where multiple parameters resolved to __VA_ARGS__ (details)
  21. [MLIR][Linalg] Undo spurious parameter name change (details)
  22. [libTooling] Fix use of `char` in comparison. (details)
  23. [ARM] Update arm-storebytesmerge.ll test. NFC (details)
  24. [flang] Add new documentation main page (details)
  25. [libcxx] Handle target triples with dashes in platform name (details)
  26. [ConstraintSystem] Add helpers to deal with linear constraints. (details)
  27. [gn build] Port 3eb141e5078 (details)
  28. Revert "[ConstraintSystem] Add helpers to deal with linear constraints." (details)
  29. [gn build] Port 8da6ae4ce1b (details)
  30. [analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait (details)
  31. [libc++] NFC: Add missing license to test (details)
  32. [NFC] Fix compiler warnings due to integer comparison of different signedness (details)
  33. [LiveDebugValues][NFC] Add additional tests (details)
  34. [InstCombine] add/move tests for ptr diff; NFC (details)
  35. [InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430) (details)
  36. [SyntaxTree] Rename functions to start with verb (details)
  37. Revert "[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)" (details)
  38. [DSE] Make sure that DSE+MSSA can handle masked stores (details)
  39. [NFC] Follow up on D87111 - Add an option for unrolling loops up to a factor - CR issues addressed. (details)
  40. [flang] Fix build issue with BUILD_SHARED_LIBS=ON (details)
  41. [gn build] slightly improve libcxx_needs_site_config (details)
  42. [examples] Adjust ThinLtoInstrumentationLayer for emit signature change (details)
  43. [libcxx] Remove the 'availability' Lit feature (details)
  44. [SLP] add test for missed store vectorization; NFC (details)
  45. [SLP] further limit bailout for load combine candidate (PR47450) (details)
  46. [docs] Fix typos (details)
  47. [DFSan] Re-enable event_callbacks test. (details)
  48. [ELF][PowerPC] Define NOP as 0x60000000 to tidy up code. NFC (details)
  49. Revert "[examples] Adjust ThinLtoInstrumentationLayer for emit signature change" (details)
  50. [FPEnv] [Clang] Enable constrained FP support for PowerPC (details)
  51. [ARM] Extra MLA reductions tests. NFC (details)
  52. [SVE] Regenerate sve vector bits tests. NFC (details)
  53. [mlir][spirv] OpConvertSToF support operands with different bitwidth. (details)
  54. [mlir] Fix some edge cases around 0-element TensorFromElementsOp (details)
  55. [lldb/API] Add Breakpoint::SerializeToStructuredData to SBAPI (details)
  56. [WebAssembly] Add assembly syntax for mutable globals (details)
  57. [CMake][OpenMP] Simplify getting CUDA library directory (details)
  58. [SyntaxTree][Synthesis] Add support for simple Leafs and test based on tree dump (details)
  59. [SyntaxTree] Reduce visibility of `Arena::lexBuffer`. (details)
  60. [SyntaxTree] Add const qualifiers, from [llvm-qualified-auto] (details)
  61. [flang] Fix bug for forward referenced type (details)
  62. Re-split integral & pointer overloads. Add tests. (details)
  63. [ThinLTO] Make -lto-embed-bitcode an enum (details)
  64. [Coroutine][Sema] Tighten the lifetime of symmetric transfer returned handle (details)
  65. [SyntaxTree][Synthesis] Add support for Tree. (details)
  66. Re-apply "[ORC] Make MaterializationResponsibility immovable..." with fixes. (details)
  67. Fix -gz=zlib options for linker (details)
  68. Sema: add support for `__attribute__((__swift_error__))` (details)
  69. [lld][WebAssembly] Convert a objyaml-using test to assembly (details)
  70. Fix test hip-gz-options.hip (details)
  71. CodeGen: Require SSA to run PeepholeOptimizer (details)
  72. RegAllocFast: Fix typo in comment (details)
  73. docs: add a newline to appease Sphinx (details)
  74. [MC] Allow .org directives in SHT_NOBITS sections (details)
  75. [NFC][Asan] Early return from GetBlockBegin (details)
  76. Fix clang Wrange-loop-analysis in BuildTree.cpp (details)
  77. [lldb] Add test for CFMutableDictionaryRef (details)
  78. [MS ABI] Add mangled type for auto template parameter whose argument kind is Integeral (details)
  79. [NFC][Asan] Add another lsan test (details)
  80. [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline (details)
  81. [ConstantFold] Fold binary arithmetic on scalable vector splats. (details)
  82. [NFC] Remove unused static function (details)
  83. Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e (details)
  84. [gn build] Port 31ecf8d29d8 (details)
  85. [ConstantFold] Make areGlobalsPotentiallyEqual less aggressive. (details)
  86. [lldb] Use GetNonKVOClassDescriptor to get the NSDictionary class descriptor (details)
  87. Fix a couple of tests that relied on the clang binary having 'clang' somewhere in the name (details)
  88. [gn] Remove unneeded MC dep from llvm-tblgen (details)
  89. Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline" (details)
  90. [gn build] Port ad99e34c59b (details)
  91. [PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD (details)
  92. [Power10] Enable the heuristic for Power10 and switch the sched model (details)
  93. [AST][FPEnv] Keep FP options in trailing storage of CastExpr (details)
  94. Add raw_fd_stream that supports reading/seeking/writing (details)
  95. Add raw_fd_stream_test.cpp into CMakeLists.txt (details)
  96. Missing change from previous commit (details)
  97. Add a header file to support ssize_t for windows (details)
  98. Revert "[AST][FPEnv] Keep FP options in trailing storage of CastExpr" (details)
  99. [gn build] Port 19531a81f1d (details)
  100. [X86][SSE] lowerShuffleAsDecomposedShuffleBlend - support decomposed unpacks for some vXi8/vXi16 cases (details)
  101. [InstCombine] Fix incorrect SimplifyWithOpReplaced transform (PR47322) (details)
  102. [ARM] Recognize "double extend" reduction patterns (details)
  103. [InstCombine][X86] getNegativeIsTrueBoolVec - use ConstantExpr evaluators. NFCI. (details)
  104. [Intrinsics] define semantics for experimental fmax/fmin vector reductions (details)
  105. [ARM] Fixup single source mla reductions. (details)
  106. [InstCombine][X86] Add tests for masked load/stores with comparisons. (details)
  107. Reland [AssumeBundles] Use operand bundles to encode alignment assumptions (details)
  108. [MachineScheduler] Fix operand scheduling for pre/post-increment loads (details)
  109. [Clang] Add option to allow marking pass-by-value args as noalias. (details)
  110. [InstCombine][X86] Covert masked load/stores with (sign extended) bool vector masks to generic intrinsics. (details)
Commit a0e0d30a29841fe6cc854f3949f12bb523814d7a by benny.kra
[mlir][Linalg] Print both types for linalg.transpose

Previously only the input type was printed, and the parser applied it to
both input and output, creating an invalid transpose. Print and parse
both types, and verify that they match.

Differential Revision: https://reviews.llvm.org/D87462
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir (diff)
The file was modifiedmlir/test/Dialect/Linalg/llvm.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir (diff)
Commit 5405ee553a631dd8cd18eed8ed9e76ec318febcb by benny.kra
[CodeGenPrepare] Simplify code. NFCI.
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp (diff)
Commit 06e356c81e0fce90c9a21f9f5fb7567efa51ee0f by jay.foad
[AMDGPU] Make movreld-bug test case more robust

Without this, future optimizer improvements can optimize the entire
function to "return 0".
The file was modifiedllvm/test/CodeGen/AMDGPU/movreld-bug.ll (diff)
Commit bceca7a996248aba44c3e4b4752634114650e6ac by kadircet
[clangd][NFC] Get rid of an `else after return`
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
Commit ff77d165a8161705c8ec3bb3ced2711dce297699 by llvm-dev
BasicTTIImpl.h - remove unused MCSchedule.h include. NFCI.
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h (diff)
Commit 70a05ee2880e0ad88416ae4b4bed3cadc53e5cd1 by llvm-dev
[X86] Keep variables from getDataLayout/getDebugLoc calls as const reference. NFCI.

These are only ever used as references in the called functions, so just pass the original reference instead of copying it.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 002f5ab3b171c7d9c9ea192b04a5303be78f6e52 by cullen.rhodes
[clang][aarch64] Fix ILP32 ABI for arm_sve_vector_bits

The element types of scalable vectors are defined in terms of stdint
types in the ACLE. This patch fixes the mapping to builtin types for the
ILP32 ABI when creating VLS types with the arm_sve_vector_bits, where
the mapping is as follows:

  int32_t -> LongTy
  int64_t -> LongLongTy
  uint32_t -> UnsignedLongTy
  uint64_t -> UnsignedLongLongTy

This is implemented by leveraging getBuiltinVectorTypeInfo which is
target agnostic since it calls ASTContext::getIntTypeForBitwidth for
integer types. The element type for svfloat16_t is changed from
Float16Ty to HalfTy when creating VLS types since this is what is used
elsewhere.

For more information, see:

https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#types-varying-by-data-model
https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#appendix-support-for-scalable-vectors

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87358
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-types.c (diff)
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp (diff)
The file was modifiedclang/lib/AST/Type.cpp (diff)
Commit 257b29715bb27b7d9f6c3c40c481b6a4af0b37e5 by caroline.concatto
[flang][driver] Add the new flang compiler and frontend drivers

Summary:

This is the first patch implementing the new Flang driver as outlined in [1],
[2] & [3]. It creates Flang driver (`flang-new`) and Flang frontend driver
(`flang-new -fc1`). These will be renamed as `flang` and `flang -fc1` once the
current Flang throwaway driver, `flang`, can be replaced with `flang-new`.

Currently only 2 options are supported: `-help` and `--version`.

`flang-new` is implemented in terms of libclangDriver, defaulting the driver
mode to `FlangMode` (added to libclangDriver in [4]). This ensures that the
driver runs in Flang mode regardless of the name of the binary inferred from
argv[0].

The design of the new Flang compiler and frontend drivers is inspired by it
counterparts in Clang [3]. Currently, the new Flang compiler and frontend
drivers re-use Clang libraries: clangBasic, clangDriver and clangFrontend.

To identify Flang options, this patch adds FlangOption/FC1Option enums.
Driver::printHelp is updated so that `flang-new` prints only Flang options.
The new Flang driver is disabled by default. To enable it, set
`-DBUILD_FLANG_NEW_DRIVER=ON` when configuring CMake and add clang to
`LLVM_ENABLE_PROJECTS` (e.g. -DLLVM_ENABLE_PROJECTS=“clang;flang;mlir”).

[1] “RFC: new Flang driver - next steps”
http://lists.llvm.org/pipermail/flang-dev/2020-July/000470.html
[2] “RFC: Adding a fortran mode to the clang driver for flang”
http://lists.llvm.org/pipermail/cfe-dev/2019-June/062669.html
[3] “RFC: refactoring libclangDriver/libclangFrontend to share with Flang”
http://lists.llvm.org/pipermail/cfe-dev/2020-July/066393.html
[4] https://reviews.llvm.org/rG6bf55804924d5a1d902925ad080b1a2b57c5c75c

co-authored-by: Andrzej Warzynski <andrzej.warzynski@arm.com>

Reviewed By: richard.barton.arm, sameeranjoshi

Differential Revision: https://reviews.llvm.org/D86089
The file was modifiedclang/test/Driver/flang/multiple-inputs.f90 (diff)
The file was addedflang/lib/Frontend/FrontendOptions.cpp
The file was addedflang/unittests/Frontend/CompilerInstanceTest.cpp
The file was modifiedflang/tools/CMakeLists.txt (diff)
The file was modifiedflang/CMakeLists.txt (diff)
The file was addedflang/lib/FrontendTool/CMakeLists.txt
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp (diff)
The file was modifiedclang/unittests/Driver/SanitizerArgsTest.cpp (diff)
The file was modifiedclang/lib/Frontend/CreateInvocationFromCommandLine.cpp (diff)
The file was addedflang/test/Flang-Driver/emit-obj.f90
The file was modifiedllvm/include/llvm/Option/OptTable.h (diff)
The file was modifiedflang/test/CMakeLists.txt (diff)
The file was addedflang/include/flang/Frontend/FrontendOptions.h
The file was addedflang/test/Flang-Driver/driver-version.f90
The file was addedflang/tools/flang-driver/driver.cpp
The file was modifiedclang/test/Driver/flang/multiple-inputs-mixed.f90 (diff)
The file was addedflang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
The file was modifiedflang/test/lit.site.cfg.py.in (diff)
The file was addedflang/include/flang/Frontend/CompilerInstance.h
The file was addedflang/test/Flang-Driver/driver-error-cc1.cpp
The file was addedflang/unittests/Frontend/CMakeLists.txt
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/include/clang/Driver/Options.h (diff)
The file was modifiedclang/test/Driver/flang/flang.f90 (diff)
The file was modifiedflang/lib/CMakeLists.txt (diff)
The file was modifiedflang/unittests/CMakeLists.txt (diff)
The file was modifiedclang/include/clang/Driver/Driver.h (diff)
The file was addedflang/test/Flang-Driver/driver-error-cc1.c
The file was addedflang/lib/Frontend/CMakeLists.txt
The file was modifiedclang/lib/Tooling/Tooling.cpp (diff)
The file was addedflang/lib/Frontend/CompilerInvocation.cpp
The file was addedflang/lib/Frontend/CompilerInstance.cpp
The file was addedflang/include/flang/Frontend/CompilerInvocation.h
The file was addedflang/tools/flang-driver/fc1_main.cpp
The file was addedflang/include/flang/FrontendTool/Utils.h
The file was modifiedclang/test/Driver/flang/flang_ucase.F90 (diff)
The file was modifiedclang/lib/Driver/ToolChains/Flang.cpp (diff)
The file was modifiedclang/lib/Driver/Driver.cpp (diff)
The file was addedflang/tools/flang-driver/CMakeLists.txt
The file was addedflang/test/Flang-Driver/driver-help.f90
The file was addedflang/test/Flang-Driver/missing-input.f90
The file was modifiedflang/README.md (diff)
The file was modifiedflang/test/lit.cfg.py (diff)
Commit cabd60c26b5df34f096cccca5a915bde3b1d8ee1 by cullen.rhodes
[clang][aarch64] Fix mangling of bfloat16 neon vectors

The AAPCS64 specifies the internal type is used for c++ mangling. For
bfloat16 it was defined as `BFloat16` when it should be `Bfloat16`, i.e.
lowercase 'f'.

For more information, see:

https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#appendix-support-for-advanced-simd-extensions

Reviewed By: stuij

Differential Revision: https://reviews.llvm.org/D87463
The file was modifiedclang/test/CodeGenCXX/mangle-neon-vectors.cpp (diff)
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
Commit 82390454f0c4dfc57dbb82a2cad77de1260868a4 by jeremy.morse
[DFSan] XFail a test that's suffering too much optimization

See https://bugs.llvm.org/show_bug.cgi?id=47488 , rGfb109c42d9 is
optimizing out part of this test.
The file was modifiedcompiler-rt/test/dfsan/event_callbacks.c (diff)
Commit 95c7b66abe594116789dd21b32c8ef4c677d18c8 by llvm-dev
PluginLoader.h - only include CommandLine.h if required. NFCI.

We only need this if DONT_GET_PLUGIN_LOADER_OPTION isn't defined.
The file was modifiedllvm/include/llvm/Support/PluginLoader.h (diff)
Commit e9a777c4ec7c86043cf82b29cc78da52585bec25 by llvm-dev
Attributor.h - remove unused includes. NFCI.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
Commit e17219b15f7528c8240a93fd9385b3a9f3290aa5 by llvm-dev
[IPO] Remove unnecessary Module.h includes. NFCI.

Uses of Module are all implicit to PassInfoMixin<> so we can guarantee PassManager.h to handle it for us.
The file was modifiedllvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h (diff)
The file was modifiedllvm/include/llvm/Transforms/IPO/CalledValuePropagation.h (diff)
The file was modifiedllvm/include/llvm/Transforms/IPO/CrossDSOCFI.h (diff)
Commit 0caeaff123768020c7b0e1a648d6b6ba67ad6d87 by jeremy.morse
[LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests

This was landed but reverted in 5b9c2b1bea7 due to asan picking up a memory
leak. This is fixed in the change to InstrRefBasedImpl.cpp. Original
commit message follows:

[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests

This patch adds a few tests in DebugInfo/MIR/InstrRef/ of interesting
behaviour that the instruction referencing implementation of
LiveDebugValues has. Mostly, these tests exist to ensure that if you
give the "-experimental-debug-variable-locations" command line switch,
the right implementation runs; and to ensure it behaves the same way as
the VarLoc LiveDebugValues implementation.

I've also touched roughly 30 other tests, purely to make the tests less
rigid about what output to accept. DBG_VALUE instructions are usually
printed with a trailing !debug-location indicating its scope:

  !debug-location !1234

However InstrRefBasedLDV produces new DebugLoc instances on the fly,
meaning there sometimes isn't a numbered node when they're printed,
making the output:

  !debug-location !DILocation(line: 0, blah blah)

Which causes a ton of these tests to fail. This patch removes checks for
that final part of each DBG_VALUE instruction. None of them appear to
be actually checking the scope is correct, just that it's present, so
I don't believe there's any loss in coverage here.

Differential Revision: https://reviews.llvm.org/D83054
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-bad-transfer.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/kill-after-spill.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/live-debug-values.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir (diff)
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues-ignores-metaInstructions.mir (diff)
The file was modifiedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir (diff)
Commit 1c08da38676d15600b5c707cf7522eb4273a5347 by dkszelethus
[analyzer][MacroExpansion] Add a few dumps functions
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff)
Commit 26d9a94681056f88bd3e892f8113093268fa0907 by dkszelethus
[analyzer][MacroExpansion][NFC] Fix incorrectly calling parameters arguments
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff)
Commit 4eed800b18abaeba3082bf950fbe5c3020c4b592 by andrzej.warzynski
[NFC] Fix the signature and definition of findByPrefix

In https://reviews.llvm.org/rG257b29715bb27b7d9f6c3c40c481b6a4af0b37e5,
the definition of OptTable::Info::Flags was changed from `unsigned
short` to `unsigned int`, but the definition/declaration of
OptTable::findByPrefix wasn't updated to reflect that.

This patch updates findByPrefix accordingly.
The file was modifiedllvm/lib/Option/OptTable.cpp (diff)
The file was modifiedllvm/include/llvm/Option/OptTable.h (diff)
Commit 7527898fef47da929e70c81100a0248c2f445762 by dkszelethus
[analyzer][MacroExpansion][NFC] Fix a missing test output check
The file was modifiedclang/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist (diff)
The file was modifiedclang/test/Analysis/plist-macros-with-expansion.cpp (diff)
Commit e6f2f17f05a1248b069ba830c4afffd61ee2f297 by ntv
[mlir][Linalg] Refactor StructuredOpInterface - NFC

This revision refactors and cleans up a bunch of things to simplify StructuredOpInterface
before work can proceed on Linalg on tensors:
- break out pieces of the StructuredOps trait that are part of the StructuredOpInterface,
- drop referenceIterators and referenceIndexingMaps that end up being more confusing than useful,
- drop NamedStructuredOpTrait
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff)
The file was modifiedmlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc (diff)
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td (diff)
Commit be0d79f32930fe780dc89ba96dac0ba163f7ec50 by dkszelethus
[analyzer][MacroExpansion] Fix a crash where multiple parameters resolved to __VA_ARGS__

In short, macro expansions handled the case where a variadic parameter mapped to
multiple arguments, but not the other way around. An internal ticket was
submitted that demonstrated that we fail an assertion. Macro expansion so far
worked by lexing the source code token-by-token and using the Preprocessor to
turn these tokens into identifiers or just get their proper spelling, but what
this counter intuitively doesn't do, is actually expand these macros, so we have
to do the heavy lifting -- in this case, figure out what __VA_ARGS__ expands
into. Since this case can only occur in a nested macro, the information we
gathered from the containing macro does contain this information. If a parameter
resolves to __VA_ARGS__, we need to temporarily stop getting our tokens from the
lexer, and get the tokens from what __VA_ARGS__ maps to.

Differential Revision: https://reviews.llvm.org/D86135
The file was modifiedclang/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist (diff)
The file was modifiedclang/test/Analysis/plist-macros-with-expansion.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff)
Commit 1851bab176bba70fb6c6452b7ae55c2dc97f7bb9 by ntv
[MLIR][Linalg] Undo spurious parameter name change
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td (diff)
Commit a5cefd95cc60318fbf8610ee782bd22b492692a2 by yitzhakm
[libTooling] Fix use of `char` in comparison.

Fixes Transformer's `Range` parser to handle `char` in a platform-independent way.

Differential Revision: https://reviews.llvm.org/D87409
The file was modifiedclang/lib/Tooling/Transformer/Parsing.cpp (diff)
Commit 9fda213ac0e2af05fdae69c60d2cdde316c31cd6 by david.green
[ARM] Update arm-storebytesmerge.ll test. NFC

This test was using a very odd combination of cortex-m7 and Neon. I have
changed it to thumbv7em only.
The file was modifiedllvm/test/CodeGen/ARM/arm-storebytesmerge.ll (diff)
Commit 271a7bb144d3f51d29a465329c3614eaa15a6a3c by richard.barton
[flang] Add new documentation main page

Add a new index page to be the Flang documentation mainpage instead of
Overview.md, which jumps straight into the compiler Design. The index file
needs to be in .rst format to use the toctree directive to create table of
contents.

Also use the sphinx_markdown_tables extension to generate html tables form
markdown.

A number of additional style changes to the existing docs were needed to make
this work well:
* Convert all headings to the # style, which works better with toctree's
   titlesonly option. Ensure that there is only one top-level heading per
   document.
* Add a title to documents that don't have one for rendering on the index.
* Convert the grammar docs from .txt to .md. for better rendering
* Fixed broken link to a section in another document - sphinx does not seem to
   support anchor links in markdown files.

Depends on D87226

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D87242
The file was modifiedflang/docs/Calls.md (diff)
The file was modifiedflang/docs/PullRequestChecklist.md (diff)
The file was modifiedflang/docs/C++17.md (diff)
The file was modifiedflang/docs/Extensions.md (diff)
The file was addedflang/docs/index.md
The file was modifiedflang/docs/Semantics.md (diff)
The file was modifiedflang/docs/C++style.md (diff)
The file was addedflang/docs/OpenMP-4.5-grammar.md
The file was modifiedflang/docs/FortranIR.md (diff)
The file was modifiedflang/docs/Preprocessing.md (diff)
The file was modifiedflang/docs/OpenMP-semantics.md (diff)
The file was modifiedflang/docs/Intrinsics.md (diff)
The file was modifiedflang/docs/Directives.md (diff)
The file was modifiedflang/docs/ArrayComposition.md (diff)
The file was modifiedflang/docs/ParserCombinators.md (diff)
The file was modifiedflang/docs/BijectiveInternalNameUniquing.md (diff)
The file was modifiedflang/docs/ModFiles.md (diff)
The file was addedflang/docs/f2018-grammar.md
The file was modifiedflang/docs/OptionComparison.md (diff)
The file was removedflang/docs/OpenMP-4.5-grammar.txt
The file was removedflang/docs/f2018-grammar.txt
The file was modifiedflang/docs/conf.py (diff)
The file was modifiedflang/docs/FortranForCProgrammers.md (diff)
The file was modifiedflang/docs/LabelResolution.md (diff)
The file was modifiedflang/docs/ImplementingASemanticCheck.md (diff)
The file was modifiedflang/docs/RuntimeDescriptor.md (diff)
The file was modifiedflang/docs/Parsing.md (diff)
The file was modifiedflang/docs/Character.md (diff)
The file was modifiedflang/docs/Overview.md (diff)
The file was modifiedflang/docs/ControlFlowGraph.md (diff)
The file was modifiedflang/docs/IORuntimeInternals.md (diff)
Commit 6af8758ba4d7c42298a14fcc2433f9ab49215ac1 by mikhail.maltsev
[libcxx] Handle target triples with dashes in platform name

Target triples may contain a dash in the platform name (e.g.
"aarch64-arm-none-eabi"). Account for it when splitting the triple
into components.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D87508
The file was modifiedlibcxx/utils/libcxx/test/config.py (diff)
Commit 3eb141e5078a0ce9d92eadc721bc49d214d23056 by flo
[ConstraintSystem] Add helpers to deal with linear constraints.

This patch introduces a new ConstraintSystem class, that maintains a set
of linear constraints and uses Fourier–Motzkin elimination to eliminate
constraints to check if there are solutions for the system.

It also adds a convert-constraint-log-to-z3.py script, which can parse
the debug output of the constraint system and convert it to a python
script that feeds the constraints into Z3 and checks if it produces the
same result as the LLVM implementation. This is for verification
purposes.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D84544
The file was addedllvm/lib/Analysis/ConstraintSystem.cpp
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt (diff)
The file was addedllvm/utils/convert-constraint-log-to-z3.py
The file was modifiedllvm/lib/Analysis/CMakeLists.txt (diff)
The file was addedllvm/include/llvm/Analysis/ConstraintSystem.h
The file was addedllvm/unittests/Analysis/ConstraintSystemTest.cpp
Commit bbb6392c1471aa4c7b7433be6dc572444005f617 by llvmgnsyncbot
[gn build] Port 3eb141e5078
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn (diff)
Commit 8da6ae4ce1b686c5c13698e4c5ee937811fda6f7 by flo
Revert "[ConstraintSystem] Add helpers to deal with linear constraints."

This reverts commit 3eb141e5078a0ce9d92eadc721bc49d214d23056.

This uses __builtin_mul_overflow which is not available everywhere.
The file was modifiedllvm/lib/Analysis/CMakeLists.txt (diff)
The file was removedllvm/include/llvm/Analysis/ConstraintSystem.h
The file was removedllvm/lib/Analysis/ConstraintSystem.cpp
The file was removedllvm/unittests/Analysis/ConstraintSystemTest.cpp
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt (diff)
The file was removedllvm/utils/convert-constraint-log-to-z3.py
Commit de2adfaf2575b3193bdef5bde7dd19ac338e1f2e by llvmgnsyncbot
[gn build] Port 8da6ae4ce1b
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn (diff)
Commit b9bca883c970d36f408db80df21838c713c326db by dkszelethus
[analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait

Based on the discussion in D82598#2171312. Thanks @NoQ!

D82598 is titled "Get rid of statement liveness, because such a thing doesn't
exist", and indeed, expressions express a value, non-expression statements
don't.

if (a && get() || []{ return true; }())
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ has a value
    ~ has a value
    ~~~~~~~~~~ has a value
                  ~~~~~~~~~~~~~~~~~~~~ has a value
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ doesn't have a value

That is simple enough, so it would only make sense if we only assigned symbolic
values to expressions in the static analyzer. Yet the interface checkers can
access presents, among other strange things, the following two methods:

ProgramState::BindExpr(const Stmt *S, const LocationContext *LCtx, SVal V,
                       bool Invalidate=true)
ProgramState::getSVal(const Stmt *S, const LocationContext *LCtx)

So, what gives? Turns out, we make an exception for ReturnStmt (which we'll
leave for another time) and ObjCForCollectionStmt. For any other loops, in order
to know whether we should analyze another iteration, among other things, we
evaluate it's condition. Which is a problem for ObjCForCollectionStmt, because
it simply doesn't have one (CXXForRangeStmt has an implicit one!). In its
absence, we assigned the actual statement with a concrete 1 or 0 to indicate
whether there are any more iterations left. However, this is wildly incorrect,
its just simply not true that the for statement has a value of 1 or 0, we can't
calculate its liveness because that doesn't make any sense either, so this patch
turns it into a GDM trait.

Fixing this allows us to reinstate the assert removed in
https://reviews.llvm.org/rG032b78a0762bee129f33e4255ada6d374aa70c71.

Differential Revision: https://reviews.llvm.org/D86736
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp (diff)
The file was addedclang/test/Analysis/objc-live-crash.mm
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/Environment.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp (diff)
Commit 4d12d6149ced575be5386889b27f3bb1891052ab by Louis Dionne
[libc++] NFC: Add missing license to test
The file was modifiedlibcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/function_type_default_deleter.fail.cpp (diff)
Commit 48b510c4bc0fe090e635ee0440e46fc176527d7e by llvm-dev
[NFC] Fix compiler warnings due to integer comparison of different signedness

Fix by directly using INT_MAX and INT32_MAX.

Patch by: @nullptr.cpp (Yang Fan)

Differential Revision: https://reviews.llvm.org/D87347
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp (diff)
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp (diff)
The file was modifiedclang/lib/Lex/Pragma.cpp (diff)
Commit 0825fa9526818d7d9c94fa47e1fbe19de91003d1 by jeremy.morse
[LiveDebugValues][NFC] Add additional tests

These were supposed to be in 0caeaff1237 and D83054, but a fat-fingered
error when git-adding missed them. Ooops.
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_load_in_loop.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_many_loop_heads.mir
Commit 6b5b6511a52276820d4a2e8529370a67cf0bd746 by spatel
[InstCombine] add/move tests for ptr diff; NFC
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll (diff)
Commit 324a53205a3af979e3de109fdd52f91781816cba by spatel
[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)

There's no signed wrap if both geps have 'inbounds':
https://alive2.llvm.org/ce/z/nZkQTg
https://alive2.llvm.org/ce/z/7qFauh
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll (diff)
Commit 4c14ee61b73746b314d83e7c52e03d6527b78105 by ecaldas
[SyntaxTree] Rename functions to start with verb

According to LLVM coding standards:
https://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly

Differential Revision: https://reviews.llvm.org/D87498
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/ComputeReplacements.cpp (diff)
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Mutations.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp (diff)
The file was modifiedclang/unittests/Tooling/Syntax/TreeTestBase.cpp (diff)
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
Commit 6aa3fc4a5b88bd0175212e06b183c87cf87c306c by spatel
Revert "[InstCombine] propagate 'nsw' on pointer difference of 'inbounds' geps (PR47430)"

This reverts commit 324a53205a3af979e3de109fdd52f91781816cba.

On closer examination of at least one of the test diffs,
this does not appear to be correct in all cases. Even the
existing 'nsw' creation may be wrong based on this example:
https://alive2.llvm.org/ce/z/uL4Hw9
https://alive2.llvm.org/ce/z/fJMKQS
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll (diff)
Commit f92908cc749ead7a14960343636549409380d12b by kparzysz
[DSE] Make sure that DSE+MSSA can handle masked stores

Differential Revision: https://reviews.llvm.org/D87414
The file was modifiedllvm/test/Transforms/DeadStoreElimination/masked-dead-store.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
Commit 320624784c49ccaa0fb6dc5147a9c94d9170afb7 by Lubomir.Litchev
[NFC] Follow up on D87111 - Add an option for unrolling loops up to a factor - CR issues addressed.

Addressed some CR issues pointed out in D87111. Formatting and other nits.
The original Diff D87111 - Add an option for unrolling loops up to a factor.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D87313
The file was modifiedmlir/test/Dialect/SCF/loop-unroll.mlir (diff)
The file was modifiedmlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Affine/Passes.td (diff)
Commit d2c69c2f4947b38832a34cab14fe32c6b94dd4d2 by richard.barton
[flang] Fix build issue with BUILD_SHARED_LIBS=ON

Define Fortran::Semantics::Scope::GetName in the header so it is available
to Fortran::Evaluate::Tool::AttachDeclaration without a circular dependency
introduced in 82edd42.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D87505
The file was modifiedflang/include/flang/Semantics/scope.h (diff)
The file was modifiedflang/lib/Semantics/scope.cpp (diff)
Commit 87494def4830f0b20af6cb8a4d8b3b668c8d3ec5 by thakis
[gn build] slightly improve libcxx_needs_site_config

The write_cmake_config() here still looks busted, but at least
the value that's explicitly set is now set correctly.
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn (diff)
Commit bfbaf172ce9978d8367ff08fdf90eb05fff5759d by Jonas Devlieghere
[examples] Adjust ThinLtoInstrumentationLayer for emit signature change

Emit now takes a std::unique_ptr<MaterializationResponsibility> instead
of a MaterializationResponsibility directly.

This should fix:
http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-standalone/
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp (diff)
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h (diff)
Commit f980ed4184f9d9139961e21739d7692ea86b0ccf by Louis Dionne
[libcxx] Remove the 'availability' Lit feature

Instead, use with_system_cxx_lib with various compile-only tests to ensure
that we're getting compile-time errors, as expected. This follows the
lead of ec46cfefe80d5.
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/thread/semaphore.availability.verify.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/thread/latch.availability.verify.cpp (diff)
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/utilities/charconv/charconv.to.chars/availability.fail.cpp (diff)
The file was addedlibcxx/test/libcxx/memory/aligned_allocation_macro.compile.pass.cpp
The file was addedlibcxx/test/libcxx/language.support/support.dynamic/aligned_alloc_availability.verify.cpp
The file was modifiedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp (diff)
The file was modifiedlibcxx/utils/libcxx/test/config.py (diff)
The file was modifiedlibcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp (diff)
The file was modifiedlibcxx/test/libcxx/thread/atomic.availability.verify.cpp (diff)
The file was removedlibcxx/test/libcxx/memory/aligned_allocation_macro.pass.cpp
The file was modifiedlibcxx/test/libcxx/thread/barrier.availability.verify.cpp (diff)
The file was modifiedlibcxx/docs/DesignDocs/AvailabilityMarkup.rst (diff)
Commit 54680591e8bf13322d265478d10f043a503fb4f2 by spatel
[SLP] add test for missed store vectorization; NFC
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll (diff)
Commit 40f12ef621d9fd2fb2dfe24f82b3f4f8c091f4ba by spatel
[SLP] further limit bailout for load combine candidate (PR47450)

The test example based on PR47450 shows that we can
match non-byte-sized shifts, but those won't ever be
bswap opportunities. This isn't a full fix (we'd still
match if the shifts were by 8-bits for example), but
this should be enough until there's evidence that we
need to do more (this is a borderline case for
vectorization in the first place).
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll (diff)
Commit f2bb4b88550a04be977d85e2efe0bef1664c9b31 by sebastian.neubauer
[docs] Fix typos

Differential Revision: https://reviews.llvm.org/D87356
The file was modifiedllvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst (diff)
Commit 2df6efedef5c7647f966ba238a2901eb4b98204d by mascasa
[DFSan] Re-enable event_callbacks test.

Mark the dest pointers for memcpy and memmove as volatile, to avoid dead
store elimination.  Fixes https://bugs.llvm.org/show_bug.cgi?id=47488.
The file was modifiedcompiler-rt/test/dfsan/event_callbacks.c (diff)
Commit 560188ddcccb4e5ca2261c1990f085101238c8df by i
[ELF][PowerPC] Define NOP as 0x60000000 to tidy up code. NFC

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D87483
The file was modifiedlld/ELF/Arch/PPC64.cpp (diff)
Commit bd2f7ad6036caf214c4e3f46bcea9d4aa70bb810 by Jonas Devlieghere
Revert "[examples] Adjust ThinLtoInstrumentationLayer for emit signature change"

I raced with Florian and he had already reverted the original patch.
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h (diff)
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp (diff)
Commit 8ecc8520bc5bc20ae00c13e5ae13f8edbb80642e by qiucofan
[FPEnv] [Clang] Enable constrained FP support for PowerPC

d4ce862f introduced HasStrictFP to disable generating constrained FP
operations for platforms lacking support. Since work for enabling
constrained FP on PowerPC is almost done, we'd like to enable it.

Reviewed By: kpn, steven.zhang

Differential Revision: https://reviews.llvm.org/D87223
The file was modifiedclang/test/CodeGen/builtins-ppc-fpconstrained.c (diff)
The file was modifiedclang/lib/Basic/Targets/PPC.h (diff)
Commit 40b72c9c792057f71319cfde3d7c7904dd8df6bc by david.green
[ARM] Extra MLA reductions tests. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll (diff)
Commit ab2ed8bce9e924a2fc734ca4369419c18d124043 by david.green
[SVE] Regenerate sve vector bits tests. NFC
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c (diff)
Commit aeb4314391f2afa865fc6650666ea29d9b6afc8a by thomasraoux
[mlir][spirv] OpConvertSToF support operands with different bitwidth.

close SameBitWidth check in verifier.

Differential Revision: https://reviews.llvm.org/D87265
The file was modifiedmlir/test/Dialect/SPIRV/ops.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVCastOps.td (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp (diff)
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/cast-ops.mlir (diff)
Commit 84a6da67e6b2a76b15ad1862f4cbb7625fe318df by silvasean
[mlir] Fix some edge cases around 0-element TensorFromElementsOp

This introduces a builder for the more general case that supports zero
elements (where the element type can't be inferred from the ValueRange,
since it might be empty).

Also, fix up some cases in ShapeToStandard lowering that hit this. It
happens very easily when dealing with shapes of 0-D tensors.

The SameOperandsAndResultElementType is redundant with the new
TypesMatchWith and prevented having zero elements.

Differential Revision: https://reviews.llvm.org/D87492
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
The file was modifiedmlir/test/IR/core-ops.mlir (diff)
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp (diff)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir (diff)
Commit 4da8fa45a0968a1f98010777d3731a921431ee55 by medismail.bennani
[lldb/API] Add Breakpoint::SerializeToStructuredData to SBAPI

This patch adds a way to fetch breakpoint metadatas as a serialized
`Structured` Data format (JSON). This can be used by IDEs to update
their UI when a breakpoint is set or modified from the console.

rdar://11013798

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py (diff)
The file was modifiedlldb/bindings/interface/SBBreakpoint.i (diff)
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h (diff)
The file was modifiedlldb/source/API/SBBreakpoint.cpp (diff)
Commit fa2a8acc71ffc3632b7c5ed584af8709639443f2 by sbc
[WebAssembly] Add assembly syntax for mutable globals

This adds and optional ", immutable" to the end of a `.globaltype`
declaration.  I would have prefered to match the `.wat` syntax
where immutable is the default and `mut` is the signifier for
mutable globals.  Sadly changing the default would break backwards
compat with existing assembly in the wild so I think its best
to stick with this approach.

Differential Revision: https://reviews.llvm.org/D87515
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp (diff)
The file was modifiedllvm/test/MC/WebAssembly/globals.s (diff)
The file was modifiedlld/test/wasm/globals.s (diff)
Commit c42f96cb23bedb0e4bc31d2e88b60275083a420d by raul.tambre
[CMake][OpenMP] Simplify getting CUDA library directory

LLVM now requires CMake 3.13.4 so we can simplify this.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D87195
The file was modifiedopenmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake (diff)
Commit 5d152127d48fbcf47a8d059aa68a84c365ae3cb9 by ecaldas
[SyntaxTree][Synthesis] Add support for simple Leafs and test based on tree dump

Differential Revision: https://reviews.llvm.org/D87495
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp (diff)
Commit 515238d5b1133f87f85445b9f35783ca2d3a2e7b by ecaldas
[SyntaxTree] Reduce visibility of `Arena::lexBuffer`.

Differential Revision: https://reviews.llvm.org/D87523
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
Commit 238ae4eee05187758e42c00af237592612d585c2 by ecaldas
[SyntaxTree] Add const qualifiers, from [llvm-qualified-auto]

Differential Revision: https://reviews.llvm.org/D87522
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/ComputeReplacements.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
Commit 398fcf224b8dd0968f27cdcc7e75bb0bc8ed6d09 by psteinfeld
[flang] Fix bug for forward referenced type

A type name in an IMPLICIT declaration that was later used in a PARAMETER
statement caused problems because the default symbol scope had not yet been
initialized.  I avoided dereferencing in the situation where the default scope
was uninitialized and added a test that triggers the problem.

Differential Revision: https://reviews.llvm.org/D87535
The file was modifiedflang/test/Semantics/bad-forward-type.f90 (diff)
The file was modifiedflang/lib/Semantics/symbol.cpp (diff)
Commit 59fc86779038b19cf85f87b51052d468286788f2 by ogiroux
Re-split integral & pointer overloads. Add tests.
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp (diff)
The file was modifiedlibcxx/include/atomic (diff)
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp (diff)
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp (diff)
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp (diff)
Commit 9a2bab5ea2f4aacbb267e634ff1189fa64143b76 by mtrofin
[ThinLTO] Make -lto-embed-bitcode an enum

The current behavior of -lto-embed-bitcode is not quite the same as that
of -fembed-bitcode. While both populate .llvmbc with bitcode, the latter
populates it with pre-optimized bitcode(*), while the former with
post-optimized. The scenarios driving them are different - the latter's
goal is to allow re-compilation, while the former, IIUC, is execution.

I plan to add a third mode for thinlto cases, closely-related to
-fembed-bitcode's scenario: adding the bitcode pre-optimization, but
post-merging. This would allow re-compilation without requiring the
other .bc files that were merged (akin to how -fembed-bitcode allows
recompilation without all the .h files)

The third mode can't co-exist with the current -lto-embed-bitcode mode,
because the latter would overwrite it. For clarity, we change
-lto-embed-bitcode to be an enum.

(*) That's the compiler semantics. The driver splits compilation in 2
phases, so if -fembed-bitcode is given to the driver, the .llvmbc is
optimized bitcode; if the option is passed to the compiler (after -cc1),
the section is pre-optimized.

Differential Revision: https://reviews.llvm.org/D87477
The file was modifiedllvm/lib/LTO/LTOBackend.cpp (diff)
The file was modifiedllvm/test/LTO/X86/embed-bitcode.ll (diff)
Commit df477db5f9e0ea2a4890040b65002d93e33209b0 by xun
[Coroutine][Sema] Tighten the lifetime of symmetric transfer returned handle

In generating the code for symmetric transfer, a temporary object is created to store the returned handle from await_suspend() call of the awaiter. Previously this temp won't be cleaned up until very later, which ends up causing this temp to be spilled to the heap. However, we know that this temp will no longer be needed after the coro_resume call. We can clean it up right after.

Differential Revision: https://reviews.llvm.org/D87470
The file was modifiedclang/test/CodeGenCoroutines/Inputs/coroutine.h (diff)
The file was modifiedclang/lib/Sema/SemaCoroutine.cpp (diff)
The file was addedclang/test/CodeGenCoroutines/coro-semmetric-transfer.cpp
Commit 7c37b82f5ba5883b331608b0077c0b30bf301874 by ecaldas
[SyntaxTree][Synthesis] Add support for Tree.

In a future patch
* Implement helper function to generate Trees for tests
* and test Tree methods, namely `findFirstLeaf` and `findLastLeaf`

Differential Revision: https://reviews.llvm.org/D87533
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp (diff)
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp (diff)
Commit 7dcd0042e8b8581751bd9b915207058d2ab88e1d by Lang Hames
Re-apply "[ORC] Make MaterializationResponsibility immovable..." with fixes.

Re-applies c74900ca672 with fixes for the ThinLtoJIT example.
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp (diff)
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp (diff)
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoJIT.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (diff)
The file was modifiedllvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h (diff)
Commit ccb4124a4172bf2cb2e1cd7c253f0f1654fce294 by Yaxun.Liu
Fix -gz=zlib options for linker

gcc translates -gz=zlib to --compress-debug-options=zlib for both assembler and linker
but clang only does this for assembler.

The linker needs --compress-debug-options=zlib option to compress the debug sections
in the generated executable or shared library.

Due to this bug, -gz=zlib has no effect on the generated executable or shared library.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D87321
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp (diff)
The file was addedclang/test/Driver/amdgcn-gz-options.cl
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.h (diff)
The file was modifiedclang/lib/Driver/ToolChains/HIP.cpp (diff)
The file was addedclang/test/Driver/hip-gz-options.hip
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was modifiedclang/test/Driver/compress.c (diff)
Commit f5ab5b20fb2aae5567e6c50cc642ff63eb2146d4 by Saleem Abdulrasool
Sema: add support for `__attribute__((__swift_error__))`

Introduce a new attribute that is used to indicate the error handling
convention used by a function.  This is used to translate the error
semantics from the decorated interface to a compatible Swift interface.

The supported error convention is one of:
- none: no error handling
- nonnull_error: a non-null error parameter indicates an error signifier
- null_result: a return value of NULL is an error signifier
- zero_result: a return value of 0 is an error signifier
- nonzero_result: a non-zero return value is an error signifier

Since this is the first of the attributes needed to support the semantic
annotation for Swift, this change also includes the necessary supporting
infrastructure for a new category of attributes (Swift).

This is based on the work of the original changes in
https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c

Differential Revision: https://reviews.llvm.org/D87331
Reviewed By: John McCall, Aaron Ballman, Dmitri Gribenko
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test (diff)
The file was addedclang/test/SemaObjC/attr-swift-error.m
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp (diff)
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/include/clang/Basic/Attr.td (diff)
Commit e3e3d6eecfa5003bf431d8223bcc968e2ce291c8 by sbc
[lld][WebAssembly] Convert a objyaml-using test to assembly

Differential Revision: https://reviews.llvm.org/D87536
The file was removedlld/test/wasm/gc-imports.ll
The file was addedlld/test/wasm/gc-imports.s
The file was removedlld/test/wasm/Inputs/undefined-globals.yaml
The file was addedlld/test/wasm/Inputs/undefined-globals.s
Commit ee13ae030e21d584c72d384ea463896400ccee1c by Yaxun.Liu
Fix test hip-gz-options.hip
The file was modifiedclang/test/Driver/hip-gz-options.hip (diff)
Commit e21bb31eb6c6fcff652ecfb338e8558362473150 by Matthew.Arsenault
CodeGen: Require SSA to run PeepholeOptimizer
The file was modifiedllvm/lib/CodeGen/PeepholeOptimizer.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir (diff)
Commit 382b2b1b5183cdcc4c57b0650e25f4f107619099 by Matthew.Arsenault
RegAllocFast: Fix typo in comment
The file was modifiedllvm/lib/CodeGen/RegAllocFast.cpp (diff)
Commit 43e6c59f1c1fc3c1b9cdcddfe9826b9abf2cfb73 by Saleem Abdulrasool
docs: add a newline to appease Sphinx

Sphinx expects an empty newline after the bulleted list.
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
Commit 45d0343900d3005d1d00cbb1a87c419c085dec71 by maskray
[MC] Allow .org directives in SHT_NOBITS sections

This is used by kvm-unit-tests and can be trivially supported.
The file was modifiedllvm/lib/MC/MCAssembler.cpp (diff)
The file was modifiedllvm/test/MC/ELF/org.s (diff)
Commit 658475897b14781070549f72483fd283e3fe50aa by Vitaly Buka
[NFC][Asan] Early return from GetBlockBegin
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h (diff)
Commit e10df779f097e3a1fb02d901117ce71a5dd9dda2 by gribozavr
Fix clang Wrange-loop-analysis in BuildTree.cpp

Building on Mac OS with clang 12:

```
jhemphill@jhemphill-mbp build % clang --version
Apple clang version 12.0.0 (clang-1200.0.26.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
```

yields one warning:

```
/Users/jhemphill/oss/llvm-project/clang/lib/Tooling/Syntax/BuildTree.cpp:1126:22: warning: loop variable 'Arg' is always a copy because the range of type 'llvm::iterator_range<clang::Stmt::CastIterator<clang::Expr, clang::Expr *, clang::Stmt *> >' does not return a reference [-Wrange-loop-analysis]
    for (const auto &Arg : Args) {
                     ^
/Users/jhemphill/oss/llvm-project/clang/lib/Tooling/Syntax/BuildTree.cpp:1126:10: note: use non-reference type 'clang::Expr *'
    for (const auto &Arg : Args) {
```

It appears that `Arg` is an `Expr*`, passed by value rather than by const reference.

Reviewed By: eduucaldas, gribozavr2

Differential Revision: https://reviews.llvm.org/D87482
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
Commit 76e3a27c16d2a8171454cf12a33e35e3ae6f9dc2 by Jonas Devlieghere
[lldb] Add test for CFMutableDictionaryRef

While writing a test for a change in Foundation I noticed we didn't yet
test CFMutableDictionaryRef.
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py (diff)
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m (diff)
Commit 83286a1a8f059d1664b64341854676a36a85cecd by zequanwu
[MS ABI] Add mangled type for auto template parameter whose argument kind is Integeral
The file was modifiedclang/include/clang/Basic/LangOptions.h (diff)
The file was addedclang/test/CodeGenCXX/mangle-ms-auto-templates.cpp
The file was modifiedclang/lib/AST/MicrosoftMangle.cpp (diff)
Commit 12292c8b27aca8d173a3a2825f2e8aeb383cc695 by Vitaly Buka
[NFC][Asan] Add another lsan test
The file was addedcompiler-rt/test/asan/TestCases/leaks.cpp
Commit 31ecf8d29d81d196374a562c6d2bd2c25a62861e by Yuanfang Chen
[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline

Following up on D67687.
Please refer to the RFC here http://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html

`CodeGenPassBuilder` is the NPM counterpart of `TargetPassConfig` with below differences.
- Debugging features (MIR print/verify, disable pass, start/stop-before/after, etc.) living in `TargetPassConfig` are moved to use PassInstrument as much as possible. (Implementation also lives in `TargetPassConfig.cpp`)
- `TargetPassConfig` is a polymorphic base (virtual inheritance) to build the target-dependent pipeline whereas `CodeGenPassBuilder` is the CRTP base/helper to implement the target-dependent pipeline. The motivation is flexibility for targets to customize the pipeline, inlining opportunity, and fits the overall NPM value semantics design.
- `TargetPassConfig` is a legacy immutable pass to declare hooks for targets to customize some target-independent codegen layer behavior. This is partially ported to TargetMachine::options. The rest, such as `createMachineScheduler/createPostMachineScheduler`, are left out for now. They should be implemented in LLVMTargetMachine in the future.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D83608
The file was addedllvm/lib/CodeGen/CodeGenPassBuilder.cpp
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp (diff)
The file was addedllvm/include/llvm/CodeGen/CGPassBuilderOption.h
The file was addedllvm/include/llvm/CodeGen/MachinePassRegistry.def
The file was modifiedllvm/include/llvm/Target/TargetMachine.h (diff)
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt (diff)
The file was addedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp (diff)
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h (diff)
Commit 37f2776d1af27a38ba4fabf3b356d71590f70d90 by efriedma
[ConstantFold] Fold binary arithmetic on scalable vector splats.

It's a nice simplification, and it confuses instcombine if we don't do
it.

Differential Revision: https://reviews.llvm.org/D87422
The file was modifiedllvm/lib/IR/ConstantFold.cpp (diff)
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vscale.ll (diff)
Commit a8503b87f739776cc9d5738f69aa0990db952340 by Vitaly Buka
[NFC] Remove unused static function
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (diff)
Commit 3fdaa8602a086a3fca5f0fc8527536ac659079d0 by Yuanfang Chen
Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e
The file was modifiedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h (diff)
Commit c931dc0bf596ed0a6c4531b0e1f05bd8bda566a6 by llvmgnsyncbot
[gn build] Port 31ecf8d29d8
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (diff)
Commit d751f86189a7f7ef2a6fe06974a5da3349b02f20 by efriedma
[ConstantFold] Make areGlobalsPotentiallyEqual less aggressive.

In particular, we shouldn't make assumptions about globals which are
unnamed_addr: we can fold them together with other globals.

Also while I'm here, use isInterposable() instead of trying to
explicitly name all the different kinds of weak linkage.

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

Differential Revision: https://reviews.llvm.org/D87123
The file was modifiedllvm/lib/IR/ConstantFold.cpp (diff)
The file was modifiedllvm/test/Assembler/ConstantExprNoFold.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/2010-03-03-ExtElim.ll (diff)
Commit 33eb64704292dc2fc8585b8aa7459f96482c6cf9 by Jonas Devlieghere
[lldb] Use GetNonKVOClassDescriptor to get the NSDictionary class descriptor

On macOS Big Sur the class descriptor contains the NSKVONotifying_
prefix. This is covered by TestDataFormatterObjCKVO.

Differential revision: https://reviews.llvm.org/D87545
The file was modifiedlldb/source/Plugins/Language/ObjC/NSDictionary.cpp (diff)
Commit 928d419797ea173090e26f624f08801c7d6661e3 by dblaikie
Fix a couple of tests that relied on the clang binary having 'clang' somewhere in the name

Because why would that be necessary? (I joke - I hadn't actually
expected this to be an issue but a content-hash-named filesystem means
the clang binary's just a bunch of numbers, and doesn't have 'clang'
anywhere in the name)
The file was modifiedclang/test/Driver/compress.c (diff)
The file was modifiedclang/test/Driver/amdgcn-gz-options.cl (diff)
Commit 12a281d368e3ae115b2340c45f93b62e20759811 by rnk
[gn] Remove unneeded MC dep from llvm-tblgen

Tablegen does not have link time dependencies on MC. Having llvm-tblgen
depend on it causes it to be rebuilt in the gn build every time somebody
touches any cpp file in llvm/lib/MC* or llvm/lib/DebugInfo/Codeview*.
Touching tablegen invalidates most of the rest of the build, and
re-running it takes a while. This is is annoying for me when swapping
between branches that touch CodeView logic.

This dep was added to LLVMBuild.txt back in 2018, and presumably it was
carried over into the gn build.

Differential Revision: https://reviews.llvm.org/D87553
The file was modifiedllvm/utils/TableGen/LLVMBuild.txt (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/utils/TableGen/BUILD.gn (diff)
Commit ad99e34c59b80fd094a6acdbcde4869ff37dac87 by Yuanfang Chen
Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline"

This reverts commit 31ecf8d29d81d196374a562c6d2bd2c25a62861e.
This reverts commit 3fdaa8602a086a3fca5f0fc8527536ac659079d0.

There is laying violation for Target->CodeGen.
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt (diff)
The file was removedllvm/lib/CodeGen/CodeGenPassBuilder.cpp
The file was removedllvm/include/llvm/CodeGen/CGPassBuilderOption.h
The file was removedllvm/include/llvm/CodeGen/MachinePassRegistry.def
The file was modifiedllvm/include/llvm/Target/TargetMachine.h (diff)
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp (diff)
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h (diff)
The file was removedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
Commit 0e0d93e2f09a3e84cee0e77f0f2510001c2f064a by llvmgnsyncbot
[gn build] Port ad99e34c59b
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (diff)
Commit 528554c39b098e2d9a9c7ec51c77717aa07db2a2 by qshanz
[PowerPC] Set the mayRaiseFPException for FCMPUS/FCMPUD

From ISA, fcmpu will raise the Floating-Point Invalid Operation
Exception (SNaN) if either of the operands is a Signaling NaN by setting
the bit VXSNAN. But the instruction description didn't set the
mayRaiseFPException which might have impact on the scheduling or some
backend optimization.

Reviewed By: qiucf

Differential Revision: https://reviews.llvm.org/D83937
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td (diff)
The file was addedllvm/test/CodeGen/PowerPC/nofpexcept.ll
Commit 0680a3d56d8b5bcb6647a1149f0de156f72edf91 by qshanz
[Power10] Enable the heuristic for Power10 and switch the sched model
with P9 Model

Enable the pre-ra and post-ra scheduler strategy for Power10 as we want
to customize the heuristic later. And switch the scheduler model with P9
model before P10 Model is available. The NoSchedModel is modelled as
in-order cpu and the pre-ra scheduler is not bi-directional which will
have big impact on the scheduler.

Reviewed By: jji

Differential Revision: https://reviews.llvm.org/D86865
The file was modifiedllvm/lib/Target/PowerPC/PPC.td (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll (diff)
Commit 6c8041aa0ffed827636935e59c489b1e390c8542 by sepavloff
[AST][FPEnv] Keep FP options in trailing storage of CastExpr

This change allow a CastExpr to have optional FPOptionsOverride object,
stored in trailing storage. Of all cast nodes only ImplicitCastExpr,
CStyleCastExpr, CXXFunctionalCastExpr and CXXStaticCastExpr are allowed
to have FPOptions.

Differential Revision: https://reviews.llvm.org/D85960
The file was modifiedclang/include/clang/AST/Expr.h (diff)
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp (diff)
The file was modifiedclang/lib/AST/TextNodeDumper.cpp (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (diff)
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDecl.cpp (diff)
The file was modifiedclang/include/clang/AST/TextNodeDumper.h (diff)
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was modifiedclang/lib/Sema/SemaInit.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCast.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGObjC.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp (diff)
The file was modifiedclang/lib/Sema/SemaLambda.cpp (diff)
The file was modifiedclang/lib/AST/Expr.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprObjC.h (diff)
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/include/clang/AST/Stmt.h (diff)
The file was modifiedclang/lib/Analysis/BodyFarm.cpp (diff)
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplate.cpp (diff)
The file was modifiedclang/include/clang/Basic/LangOptions.h (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp (diff)
Commit 0ece51c60c51f0d4c285dbda3b6cff794041bdd7 by jianzhouzh
Add raw_fd_stream that supports reading/seeking/writing

This is used by https://reviews.llvm.org/D86905 to support bitcode
writer's incremental flush.
The file was modifiedllvm/lib/Support/raw_ostream.cpp (diff)
The file was addedllvm/unittests/Support/raw_fd_stream_test.cpp
The file was modifiedllvm/include/llvm/Support/raw_ostream.h (diff)
Commit 19531a81f1de8ef8ee219765c74c32c6fcd3323f by jianzhouzh
Add raw_fd_stream_test.cpp into CMakeLists.txt

Fixing https://github.com/llvm/llvm-project/commit/0ece51c60c51f0d4c285dbda3b6cff794041bdd7
The file was modifiedllvm/unittests/Support/CMakeLists.txt (diff)
Commit 9c651c231f3144f53e13cd0a1747589e1b2edccd by sepavloff
Missing change from previous commit
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp (diff)
Commit b3f364e8561caeb704f48e962df9c4c0bdad4aa2 by jianzhouzh
Add a header file to support ssize_t for windows

fixing
https://github.com/llvm/llvm-project/commit/0ece51c60c51f0d4c285dbda3b6cff794041bdd7
The file was modifiedllvm/include/llvm/Support/raw_ostream.h (diff)
Commit de044f756286edebf86044d5172016d87f49fda0 by sepavloff
Revert "[AST][FPEnv] Keep FP options in trailing storage of CastExpr"

This reverts commit 6c8041aa0ffed827636935e59c489b1e390c8542.
It caused some fails on buildbots.
The file was modifiedclang/lib/CodeGen/CGObjC.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDecl.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp (diff)
The file was modifiedclang/include/clang/Basic/LangOptions.h (diff)
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp (diff)
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was modifiedclang/lib/AST/Expr.cpp (diff)
The file was modifiedclang/lib/AST/TextNodeDumper.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/lib/Sema/SemaCast.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/include/clang/AST/Stmt.h (diff)
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp (diff)
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp (diff)
The file was modifiedclang/include/clang/AST/ExprObjC.h (diff)
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp (diff)
The file was modifiedclang/lib/Sema/SemaInit.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOverload.cpp (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/lib/Sema/SemaLambda.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplate.cpp (diff)
The file was modifiedclang/include/clang/AST/Expr.h (diff)
The file was modifiedclang/lib/Analysis/BodyFarm.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-fpfeatures.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/include/clang/AST/TextNodeDumper.h (diff)
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp (diff)
Commit 4ede83c06831adf5bf5e4a2abffd752615f643d0 by llvmgnsyncbot
[gn build] Port 19531a81f1d
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn (diff)
Commit 35dc91aee2013ce1a57dfee965fa5fdee1987ee0 by llvm-dev
[X86][SSE] lowerShuffleAsDecomposedShuffleBlend - support decomposed unpacks for some vXi8/vXi16 cases

Follow up to D86429 to handle the remaining regressions.

This patch generalizes lowerShuffleAsDecomposedShuffleBlend to lowerShuffleAsDecomposedShuffleMerge, and attempts to use an UNPCKL shuffle mask instead of a blend for the cases where the inputs are coming from alternating vXi8/vXi16 sources. Technically they don't have to be alternating (just as long as they can fit into a lower lane half for the unpack) but I didn't find as many general cases and it needed a lot more of the function to be altered.

For vXi32/vXi64 cases this could still be beneficial but in most cases the existing permute+blend approach was better.

Differential Revision: https://reviews.llvm.org/D87405
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v16.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v32.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-128-v16.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v32.ll (diff)
Commit 36e2e2e12efb6b02ad07f502d61b9a95937edb08 by nikita.ppv
[InstCombine] Fix incorrect SimplifyWithOpReplaced transform (PR47322)

This is a followup to D86834, which partially fixed this issue in
InstSimplify. However, InstCombine repeats the same transform while
dropping poison flags -- which does not cover cases where poison is
introduced in some other way.

The fix here is a bit more comprehensive, because things are quite
entangled, and it's hard to only partially address it without
regressing optimization. There are really two changes here:

* Export the SimplifyWithOpReplaced API from InstSimplify, with an
   added AllowRefinement flag. For replacements inside the TrueVal
   we don't actually care whether refinement occurs or not, the
   replacement is always legal. This part of the transform is now
   done in InstSimplify only. (It should be noted that the current
   AllowRefinement check is not sufficient -- that's an issue we
   need to address separately.)
* Change the InstCombine fold to work by temporarily dropping
   poison generating flags, running the fold and then restoring the
   flags if it didn't work out. This will ensure that the InstCombine
   fold is correct as long as the InstSimplify fold is correct.

Differential Revision: https://reviews.llvm.org/D87445
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll (diff)
Commit c437446d90be17c3fe8a216a90ee442222f2fe9d by david.green
[ARM] Recognize "double extend" reduction patterns

We can sometimes get code that does:
  xe = zext i16 x to i32
  ye = zext i16 y to i32
  m = mul i32 xe, ye
  me = zext i32 m to i64
  r = vecreduce.add(me)
This "double extend" can trip up the reduction identification, but
should give identical results.

This extends the pattern matching to handle them.

Differential Revision: https://reviews.llvm.org/D87276
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll (diff)
Commit 50ee0b99ec2902f5cf7a62a5e9b4a4f882b17031 by llvm-dev
[InstCombine][X86] getNegativeIsTrueBoolVec - use ConstantExpr evaluators. NFCI.

Don't do this manually, we can just use the ConstantExpr evaluators to do it more tidily for us.
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp (diff)
Commit 3a8ea8609b82b7e5401698b7c63df6680e1257a8 by spatel
[Intrinsics] define semantics for experimental fmax/fmin vector reductions

As discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-April/140729.html

This is hopefully the final remaining showstopper before we can remove
the 'experimental' from the reduction intrinsics.

No behavior was specified for the FP min/max reductions, so we have a
mess of different interpretations.

There are a few potential options for the semantics of these max/min ops.
I think this is the simplest based on current behavior/implementation:
make the reductions inherit from the existing llvm.maxnum/minnum intrinsics.
These correspond to libm fmax/fmin, and those are similar to the (now
deprecated?) IEEE-754 maxNum/minNum functions (NaNs are treated as missing
data). So the default expansion creates calls to libm functions.

Another option would be to inherit from llvm.maximum/minimum (NaNs propagate),
but most targets just crash in codegen when given those nodes because no
default expansion was ever implemented AFAICT.

We could also just assume 'nnan' semantics by default (we are already
assuming 'nsz' semantics in the maxnum/minnum intrinsics), but some targets
(AArch64, PowerPC) support the more defined behavior, so it doesn't make much
sense to not allow a tighter spec. Fast-math-flags (nnan) can be used to
loosen the semantics.

(Note that D67507 was proposed to update the LangRef to acknowledge the more
recent IEEE-754 2019 standard, but that patch seems to have stalled. If we do
update based on the new standard, the reduction instructions can seamlessly
inherit from whatever updates are made to the max/min intrinsics.)

x86 sees a regression here on 'nnan' tests because we have underlying,
longstanding bugs in FMF creation/propagation. Those need to be fixed apart
from this change (for example: https://llvm.org/PR35538). The expansion
sequence before this patch may not have been correct.

Differential Revision: https://reviews.llvm.org/D87391
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization-nan.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-fminmax.ll (diff)
The file was modifiedllvm/lib/CodeGen/ExpandReductions.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax.ll (diff)
The file was modifiedllvm/docs/LangRef.rst (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/Generic/expand-experimental-reductions.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll (diff)
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll (diff)
Commit 6cfd38d03d5fc3cde929ebf82529415595e8ef8e by david.green
[ARM] Fixup single source mla reductions.

This fixes a complication on top of D87276. If we are sign extending
around a mul with the two operands that are the same, instcombine will
helpfully convert one of the sext to a zext. Reverse that so that we
again generate a reduction.

Differnetial Revision: https://reviews.llvm.org/D87287
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
Commit d030aad7893a8cf7a68877b8b55eed1cd632411a by llvm-dev
[InstCombine][X86] Add tests for masked load/stores with comparisons.

As detailed on PR11210, if the mask is known to come from a (sign extended) bool vector (e.g. comparisons) then we can represent with a generic masked load/store without losing anything.
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-masked-memops.ll (diff)
Commit 78de7297abe2e8fa782682168989c70e3cb34a5c by tyker
Reland [AssumeBundles] Use operand bundles to encode alignment assumptions

NOTE: There is a mailing list discussion on this: http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html

Complemantary to the assumption outliner prototype in D71692, this patch
shows how we could simplify the code emitted for an alignemnt
assumption. The generated code is smaller, less fragile, and it makes it
easier to recognize the additional use as a "assumption use".

As mentioned in D71692 and on the mailing list, we could adopt this
scheme, and similar schemes for other patterns, without adopting the
assumption outlining.
The file was modifiedllvm/lib/Analysis/AssumeBundleQueries.cpp (diff)
The file was modifiedclang/test/CodeGen/align_value.cpp (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp (diff)
The file was modifiedclang/test/CodeGen/builtin-align-array.c (diff)
The file was modifiedllvm/test/Transforms/InstCombine/assume.ll (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-openmp.cpp (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff)
The file was modifiedclang/test/OpenMP/simd_codegen.cpp (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function-two-params.cpp (diff)
The file was modifiedllvm/lib/IR/IRBuilder.cpp (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function-variable.cpp (diff)
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp (diff)
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple.ll (diff)
The file was modifiedclang/test/OpenMP/simd_metadata.c (diff)
The file was modifiedllvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h (diff)
The file was modifiedclang/test/CodeGen/assume-aligned-and-alloc-align-attributes.c (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function.cpp (diff)
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple32.ll (diff)
The file was modifiedllvm/test/Verifier/assume-bundles.ll (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function.cpp (diff)
The file was modifiedllvm/lib/IR/Verifier.cpp (diff)
The file was modifiedclang/test/CodeGen/builtin-align.c (diff)
The file was modifiedllvm/test/Transforms/Inline/align.ll (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp (diff)
The file was modifiedllvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp (diff)
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp (diff)
The file was modifiedclang/test/CodeGen/alloc-align-attr.c (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp (diff)
The file was modifiedllvm/test/Transforms/Inline/byref-align.ll (diff)
The file was modifiedllvm/include/llvm/IR/IRBuilder.h (diff)
The file was modifiedllvm/unittests/Analysis/AssumeBundleQueriesTest.cpp (diff)
The file was modifiedclang/test/CodeGen/builtin-assume-aligned.c (diff)
The file was modifiedclang/test/CodeGen/non-power-of-2-alignment-assumptions.c (diff)
The file was modifiedclang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-lvalue.cpp (diff)
Commit 2e61cd1295e0031b2379af2b65373e2798a551cb by eleviant
[MachineScheduler] Fix operand scheduling for pre/post-increment loads

Differential revision: https://reviews.llvm.org/D87557
The file was modifiedllvm/test/tools/llvm-mca/AArch64/Exynos/load.s (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td (diff)
Commit a874d63344093752c912d01de60211f65745ea6f by flo
[Clang] Add option to allow marking pass-by-value args as noalias.

After the recent discussion on cfe-dev 'Can indirect class parameters be
noalias?' [1], it seems like using using noalias is problematic for
current C++, but should be allowed for C-only code.

This patch introduces a new option to let the user indicate that it is
safe to mark indirect class parameters as noalias. Note that this also
applies to external callers, e.g. it might not be safe to use this flag
for C functions that are called by C++ functions.

In targets that allocate indirect arguments in the called function, this
enables more agressive optimizations with respect to memory operations
and brings a ~1% - 2% codesize reduction for some programs.

[1] : http://lists.llvm.org/pipermail/cfe-dev/2020-July/066353.html

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D85473
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp (diff)
The file was addedclang/test/CodeGen/pass-by-value-noalias.c
The file was modifiedclang/lib/CodeGen/CGCall.cpp (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was addedclang/test/CodeGenObjC/pass-by-value-noalias.m
The file was addedclang/test/CodeGenCXX/pass-by-value-noalias.cpp
Commit 3170d54842655d6d936aae32b7d0bc92fce7f22e by llvm-dev
[InstCombine][X86] Covert masked load/stores with (sign extended) bool vector masks to generic intrinsics.

As detailed on PR11210, if the mask is known to come from a (sign extended) bool vector (e.g. comparisons) then we can represent with a generic masked load/store without losing anything.

We already do something similar for BLENDV -> SELECT conversion.
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-masked-memops.ll (diff)